]> rtime.felk.cvut.cz Git - jenkicar/rpp-simulink.git/commitdiff
Merge branch 'maint-rm48' into rm48/master
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 4 Feb 2015 16:28:01 +0000 (17:28 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 4 Feb 2015 16:28:01 +0000 (17:28 +0100)
114 files changed:
.gitmodules
Makefile
doc/.dir-locals.el [new file with mode: 0644]
doc/images/adc_dep_after.png [deleted file]
doc/images/adc_dep_before.png [deleted file]
doc/images/block_library.png
doc/images/blocks.pdf [deleted symlink]
doc/images/blocks.png [new file with mode: 0644]
doc/images/board-photo.png [deleted file]
doc/images/board.png [new file with mode: 0644]
doc/images/demo_adc.png [new file with mode: 0644]
doc/images/demo_analog_passthrough.png [deleted file]
doc/images/demo_analog_sinewave.png [deleted file]
doc/images/demo_board-connection_scheme.svg [deleted file]
doc/images/demo_board.png [new file with mode: 0644]
doc/images/demo_can_demo.png [deleted file]
doc/images/demo_digital_passthrough.png [deleted file]
doc/images/demo_echo_char.png
doc/images/demo_gio.png [new file with mode: 0644]
doc/images/demo_hbridge_analog_control.png [deleted file]
doc/images/demo_hbridge_digital_control.png [deleted file]
doc/images/demo_hbridge_sinewave_control.png [deleted file]
doc/images/demo_irc_input.png [deleted file]
doc/images/demo_led_blink.png [deleted file]
doc/images/demo_led_blink_all.png [deleted file]
doc/images/demo_log_analog_input.png [deleted file]
doc/images/demo_power_toggle.png [deleted file]
doc/images/demo_simple_can.png [new file with mode: 0644]
doc/images/dev_wiring.png [deleted file]
doc/images/dev_wiring.svg [deleted file]
doc/images/external_mode_configuration.png [deleted file]
doc/images/itcr.png [deleted file]
doc/images/layers.pdf.png
doc/images/logo_ctu.pdf [new file with mode: 0644]
doc/images/logos.png [deleted file]
doc/images/logos.svg [deleted file]
doc/images/pinout.pdf [deleted symlink]
doc/images/pinout.pdf.png [deleted file]
doc/images/test_wiring.png [deleted file]
doc/rpp_simulink.bib
doc/rpp_simulink.tex
doc/test-sw
refs/r4f_init.pdf [new file with mode: 0644]
refs/rm48_hdk.pdf [new file with mode: 0644]
refs/rm48_init.pdf [new file with mode: 0644]
refs/rm48_trm.pdf [moved from refs/tms570_trm.pdf with 56% similarity]
refs/rm48l952.pdf [new file with mode: 0644]
refs/tmdsrm48_schematics.pdf [new file with mode: 0644]
refs/tms570.pdf [deleted file]
rpp/blocks/Makefile
rpp/blocks/rpp_lib.slx
rpp/blocks/sfunction_ain.c
rpp/blocks/sfunction_aout.c [deleted file]
rpp/blocks/sfunction_din.c
rpp/blocks/sfunction_dinc.c [deleted file]
rpp/blocks/sfunction_dout.c [new file with mode: 0644]
rpp/blocks/sfunction_frayconfig.c [deleted file]
rpp/blocks/sfunction_frayreceive.c [deleted file]
rpp/blocks/sfunction_fraysbc.c [deleted file]
rpp/blocks/sfunction_fraytransmit.c [deleted file]
rpp/blocks/sfunction_hbr.c [deleted file]
rpp/blocks/sfunction_irc.c [deleted file]
rpp/blocks/sfunction_lout.c [deleted file]
rpp/blocks/sfunction_mout.c [deleted file]
rpp/blocks/sfunction_sdrw.c [deleted file]
rpp/blocks/tlc_c/common.tlc
rpp/blocks/tlc_c/sfunction_aout.tlc [deleted file]
rpp/blocks/tlc_c/sfunction_din.tlc
rpp/blocks/tlc_c/sfunction_dinc.tlc [deleted file]
rpp/blocks/tlc_c/sfunction_dout.tlc [new file with mode: 0644]
rpp/blocks/tlc_c/sfunction_frayconfig.tlc [deleted file]
rpp/blocks/tlc_c/sfunction_frayreceive.tlc [deleted file]
rpp/blocks/tlc_c/sfunction_fraysbc.tlc [deleted file]
rpp/blocks/tlc_c/sfunction_fraytransmit.tlc [deleted file]
rpp/blocks/tlc_c/sfunction_hbr.tlc [deleted file]
rpp/blocks/tlc_c/sfunction_irc.tlc [deleted file]
rpp/blocks/tlc_c/sfunction_lout.tlc [deleted file]
rpp/blocks/tlc_c/sfunction_mout.tlc [deleted file]
rpp/blocks/tlc_c/sfunction_sdrw.tlc [deleted file]
rpp/demos/Makefile
rpp/demos/adc_demo.slx [new file with mode: 0644]
rpp/demos/analog_passthrough.slx [deleted file]
rpp/demos/analog_sinewave.slx [deleted file]
rpp/demos/can_demo.slx [deleted file]
rpp/demos/can_ext_mode_demo.slx
rpp/demos/can_simple_demo.slx [new file with mode: 0644]
rpp/demos/cantransmit.slx
rpp/demos/demo_board.slx
rpp/demos/digital_passthrough.slx [deleted file]
rpp/demos/echo_char.slx
rpp/demos/fray_basic_demo.slx [deleted file]
rpp/demos/fray_motor_demo.slx [deleted file]
rpp/demos/gio_demo.slx [new file with mode: 0644]
rpp/demos/hbridge_analog_control.slx [deleted file]
rpp/demos/hbridge_digital_control.slx [deleted file]
rpp/demos/hbridge_sinewave_control.slx [deleted file]
rpp/demos/hello_world.slx
rpp/demos/irc_input.slx [deleted file]
rpp/demos/led_blink.slx [deleted file]
rpp/demos/led_blink_all.slx [deleted file]
rpp/demos/log_analog_input.slx [deleted file]
rpp/demos/power_toggle.slx [deleted file]
rpp/demos/three_phase_freq.slx [deleted file]
rpp/lib
rpp/loadti/RM48L952.ccxml [new file with mode: 0644]
rpp/rpp/rpp.tmf
rpp/rpp/rpp_download.m
rpp/rpp/rpp_select_callback_handler.m
rpp/rpp/rpp_srmain.tlc
rpp/rpp/target_tools.mk
tests/.latexmkrc [new file with mode: 0644]
tests/Makefile [new file with mode: 0644]
tests/functional_tests.lyx [new file with mode: 0644]
tests/images/logo_ctu.pdf [new file with mode: 0644]

index 76ea2da0c202200cd7e2c30d5784c107db98f635..7cf0ad863961b8e92907aa9375d44388497fa589 100644 (file)
@@ -2,8 +2,10 @@
        path = rpp/lib
        url = git@rtime.felk.cvut.cz:pes-rpp/rpp-lib
        update = merge
-       branch = master
+       branch = rm48/master
        fetchRecurseSubmodules = true
 [submodule "doc/test-sw"]
        path = doc/test-sw
        url = git@rtime.felk.cvut.cz:rpp-test-sw
+       update = merge
+       branch = rm48/master
index eaa8a0856330b25d24ab2e878238949c3cec743d..72e83744cd7c724b3aeaa34027633bb0f6a04bca 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -16,11 +16,11 @@ $(RELEASE_BASENAME):: lib
        mkdir -p $@/rpp/lib
        cp --parents rpp/lib/rpp-lib.lib $@/
 # Copy library headers and linkes scripts
-       $(call cp_lib,rpp/TMS570LS313xFlashLnk.cmd)
-       $(call cp_lib,rpp/TMS570LS3137.ccxml)
+       $(call cp_lib,rpp/RM48L952FlashLnk.cmd)
        $(call cp_lib,-r rpp/include)
-       $(call cp_lib,-r os/7.0.2_tms570/include)
+       $(call cp_lib,-r os/7.0.2_rm48/include)
        $(call cp_lib,-r lwip/src/include)
+       cp --parents rpp/loadti/RM48L952.ccxml $@/
 # Compile and include the PDF documentation
        $(MAKE) -C doc
        mkdir -p $@/doc
diff --git a/doc/.dir-locals.el b/doc/.dir-locals.el
new file mode 100644 (file)
index 0000000..424331a
--- /dev/null
@@ -0,0 +1,5 @@
+;;; Directory Local Variables
+;;; For more information see (info "(emacs) Directory Variables")
+
+((latex-mode
+  (TeX-master . "rpp_simulink")))
diff --git a/doc/images/adc_dep_after.png b/doc/images/adc_dep_after.png
deleted file mode 100644 (file)
index 5181479..0000000
Binary files a/doc/images/adc_dep_after.png and /dev/null differ
diff --git a/doc/images/adc_dep_before.png b/doc/images/adc_dep_before.png
deleted file mode 100644 (file)
index 7af5724..0000000
Binary files a/doc/images/adc_dep_before.png and /dev/null differ
index cdccdb07abe51203a3ef6705898f9ec3cadf6050..0677985eb2ea09639294d22287767a000bd540d6 100644 (file)
Binary files a/doc/images/block_library.png and b/doc/images/block_library.png differ
diff --git a/doc/images/blocks.pdf b/doc/images/blocks.pdf
deleted file mode 120000 (symlink)
index f8717c7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../rpp/lib/rpp/doc/blocks.pdf
\ No newline at end of file
diff --git a/doc/images/blocks.png b/doc/images/blocks.png
new file mode 100644 (file)
index 0000000..d51557d
Binary files /dev/null and b/doc/images/blocks.png differ
diff --git a/doc/images/board-photo.png b/doc/images/board-photo.png
deleted file mode 100644 (file)
index 42edd67..0000000
Binary files a/doc/images/board-photo.png and /dev/null differ
diff --git a/doc/images/board.png b/doc/images/board.png
new file mode 100644 (file)
index 0000000..0962f21
Binary files /dev/null and b/doc/images/board.png differ
diff --git a/doc/images/demo_adc.png b/doc/images/demo_adc.png
new file mode 100644 (file)
index 0000000..3ee53f1
Binary files /dev/null and b/doc/images/demo_adc.png differ
diff --git a/doc/images/demo_analog_passthrough.png b/doc/images/demo_analog_passthrough.png
deleted file mode 100644 (file)
index 19f0eac..0000000
Binary files a/doc/images/demo_analog_passthrough.png and /dev/null differ
diff --git a/doc/images/demo_analog_sinewave.png b/doc/images/demo_analog_sinewave.png
deleted file mode 100644 (file)
index fdcc1e8..0000000
Binary files a/doc/images/demo_analog_sinewave.png and /dev/null differ
diff --git a/doc/images/demo_board-connection_scheme.svg b/doc/images/demo_board-connection_scheme.svg
deleted file mode 100644 (file)
index 69428a5..0000000
+++ /dev/null
@@ -1,1025 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="478.35718"
-   height="280.76486"
-   id="svg2"
-   inkscape:label="Pozadí"
-   version="1.1"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="demo_board-connection_scheme.svg"
-   inkscape:export-filename="/home/cynerd/rpp/rpp-simulink/doc/images/demo_board-connection_scheme.png"
-   inkscape:export-xdpi="90"
-   inkscape:export-ydpi="90">
-  <defs
-     id="defs3">
-    <marker
-       inkscape:stockid="DotM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="DotM"
-       style="overflow:visible">
-      <path
-         id="path4358"
-         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="DotS"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="DotS"
-       style="overflow:visible">
-      <path
-         id="path4361"
-         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.2,0,0,0.2,1.48,0.2)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Sstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Sstart"
-       style="overflow:visible">
-      <path
-         id="path4306"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.2,0,0,0.2,1.2,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="DotL"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="DotL"
-       style="overflow:visible">
-      <path
-         id="path4355"
-         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.8,0,0,0.8,5.92,0.8)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mstart"
-       style="overflow:visible">
-      <path
-         id="path4300"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.4,0,0,0.4,4,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend"
-       style="overflow:visible">
-      <path
-         id="path4303"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-3"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4303-5"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-9"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4303-9"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-5"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4303-8"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-4"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4303-4"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-56"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4303-0"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-1"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4303-99"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mstart-2"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4300-1"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.4,0,0,0.4,4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mstart-4"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4300-3"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.4,0,0,0.4,4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mstart-7"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4300-5"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.4,0,0,0.4,4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mstart-78"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4300-56"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.4,0,0,0.4,4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-42"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4303-6"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-2"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4303-2"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="22.4"
-     inkscape:cx="258.15083"
-     inkscape:cy="7.4169141"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:snap-bbox="true"
-     inkscape:bbox-nodes="false"
-     inkscape:bbox-paths="false"
-     inkscape:snap-bbox-edge-midpoints="false"
-     inkscape:snap-bbox-midpoints="false"
-     inkscape:object-paths="false"
-     inkscape:snap-intersection-paths="false"
-     inkscape:object-nodes="false"
-     inkscape:snap-smooth-nodes="false"
-     inkscape:snap-midpoints="false"
-     inkscape:snap-object-midpoints="false"
-     inkscape:snap-center="false"
-     inkscape:snap-page="true"
-     inkscape:snap-nodes="true"
-     inkscape:window-width="1920"
-     inkscape:window-height="1014"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1"
-     inkscape:snap-grids="true"
-     inkscape:snap-to-guides="true"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     showguides="false">
-    <inkscape:grid
-       type="xygrid"
-       id="grid3008"
-       empspacing="5"
-       visible="true"
-       enabled="true"
-       snapvisiblegridlinesonly="true"
-       originx="-112.35713px"
-       originy="-721.87796px" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata6">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Vrstva 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-112.35713,-49.719323)">
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="507.20422"
-       y="68.430275"
-       id="text3004"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3006"
-         x="507.20422"
-         y="68.430275"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Demo board</tspan></text>
-    <rect
-       style="fill:none;stroke:#000000;stroke-width:1.18484294000000001;stroke-opacity:1"
-       id="rect3010"
-       width="316.34134"
-       height="279.58002"
-       x="112.94955"
-       y="50.311745" />
-    <rect
-       style="fill:none;stroke:#000000;stroke-width:0.66765295999999996;stroke-opacity:1"
-       id="rect3010-6"
-       width="100.42607"
-       height="279.6377"
-       x="489.95441"
-       y="50.512672" />
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="250.50624"
-       y="65.821075"
-       id="text3798"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3800"
-         x="250.50624"
-         y="65.821075"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">RPP</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="500.78357"
-       y="92.325157"
-       id="text3802"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804"
-         x="500.78357"
-         y="92.325157"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Potentiometer 1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="500.78357"
-       y="109.5714"
-       id="text3802-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-4"
-         x="500.78357"
-         y="109.5714"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Potentiometer 2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="500.82663"
-       y="126.89484"
-       id="text3802-7-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-4-7"
-         x="500.82663"
-         y="126.89484"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Button 1 (black)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="500.82663"
-       y="146.43509"
-       id="text3802-7-2-3"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-4-7-5"
-         x="500.82663"
-         y="146.43509"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Button 2 (green)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="500.82663"
-       y="164.81577"
-       id="text3802-7-2-9"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-4-7-1"
-         x="500.82663"
-         y="164.81577"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Button 3 (red)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="500.82663"
-       y="183.19644"
-       id="text3802-7-2-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="500.82663"
-         y="183.19644"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-         id="tspan3917">Button 4 (blue)</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="500.82663"
-       y="206.06998"
-       id="text3802-7-2-2-3"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="500.82663"
-         y="206.06998"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-         id="tspan3917-5">Bargraphs 1-3</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="501.10666"
-       y="224.45065"
-       id="text3802-7-2-2-3-8"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="501.10666"
-         y="224.45065"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-         id="tspan3917-5-8">Motor 1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="501.10666"
-       y="242.83133"
-       id="text3802-7-2-2-3-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="501.10666"
-         y="242.83133"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-         id="tspan3917-5-1">Motor IRC 1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="500.82663"
-       y="261.21201"
-       id="text3802-7-2-2-3-5"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="500.82663"
-         y="261.21201"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-         id="tspan3917-5-3">Motor 2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="500.82663"
-       y="279.59268"
-       id="text3802-7-2-2-3-3"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="500.82663"
-         y="279.59268"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-         id="tspan3917-5-5">Motor IRC 2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="501.10666"
-       y="297.97336"
-       id="text3802-7-2-2-3-4"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="501.10666"
-         y="297.97336"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-         id="tspan3917-5-18">Leds 1-4</tspan></text>
-    <rect
-       style="fill:none;stroke:#000000;stroke-width:1.23245965999999996;stroke-opacity:1"
-       id="rect3999"
-       width="206.51584"
-       height="27.446758"
-       x="121.65756"
-       y="86.448219" />
-    <rect
-       style="fill:none;stroke:#000000;stroke-width:1.23314524000000003;stroke-opacity:1"
-       id="rect3999-6"
-       width="206.75078"
-       height="27.446072"
-       x="121.42227"
-       y="123.20993" />
-    <rect
-       style="fill:none;stroke:#000000;stroke-width:1.23314524000000003;stroke-opacity:1"
-       id="rect3999-4"
-       width="206.75078"
-       height="27.446072"
-       x="121.42227"
-       y="159.97128" />
-    <rect
-       style="fill:none;stroke:#000000;stroke-width:1.23314524000000003;stroke-opacity:1"
-       id="rect3999-8"
-       width="206.75078"
-       height="27.446072"
-       x="121.42227"
-       y="196.73264" />
-    <rect
-       style="fill:none;stroke:#000000;stroke-width:1.23314524000000003;stroke-opacity:1"
-       id="rect3999-0"
-       width="206.75078"
-       height="27.446072"
-       x="121.42227"
-       y="233.494" />
-    <rect
-       style="fill:none;stroke:#000000;stroke-width:1.23314524000000003;stroke-opacity:1"
-       id="rect3999-86"
-       width="206.75078"
-       height="27.446072"
-       x="121.42227"
-       y="270.25534" />
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.5242"
-       y="92.874008"
-       id="text3802-8"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5"
-         x="423.5242"
-         y="92.874008"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">ADC 1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.60233"
-       y="112.41605"
-       id="text3802-8-1"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3"
-         x="423.60233"
-         y="112.41605"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">ADC 2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.26541"
-       y="129.53307"
-       id="text3802-8-1-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8"
-         x="423.26541"
-         y="129.53307"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">DIN 0</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.5242"
-       y="147.91373"
-       id="text3802-8-1-7-7"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-4"
-         x="423.5242"
-         y="147.91373"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">DIN 1</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.60233"
-       y="166.29442"
-       id="text3802-8-1-7-70"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-6"
-         x="423.60233"
-         y="166.29442"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">DIN 2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.40213"
-       y="184.67509"
-       id="text3802-8-1-7-4"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-43"
-         x="423.40213"
-         y="184.67509"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">DIN 3</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.40213"
-       y="207.75325"
-       id="text3802-8-1-7-5"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-46"
-         x="423.40213"
-         y="207.75325"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">DAC 1-3</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="422.88943"
-       y="225.99931"
-       id="text3802-8-1-7-6"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-1"
-         x="422.88943"
-         y="225.99931"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">HBR</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.60233"
-       y="262.90067"
-       id="text3802-8-1-7-1"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-2"
-         x="423.60233"
-         y="262.90067"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">MOUT 1,2</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.5242"
-       y="244.41229"
-       id="text3802-8-1-7-8"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-5"
-         x="423.5242"
-         y="244.41229"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">DIN 10,11</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.47537"
-       y="281.17365"
-       id="text3802-8-1-7-57"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-3"
-         x="423.47537"
-         y="281.17365"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">DIN 14,15</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.16287"
-       y="299.66202"
-       id="text3802-8-1-7-17"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-62"
-         x="423.16287"
-         y="299.66202"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">LOUT 1-4</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="180.75684"
-       y="104.9598"
-       id="text3802-8-1-7-54"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-7"
-         x="180.75684"
-         y="104.9598"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Motor speed control</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="201.69908"
-       y="140.92088"
-       id="text3802-8-1-7-69"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-64"
-         x="201.69908"
-         y="140.92088"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Color music</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="187.28174"
-       y="177.54761"
-       id="text3802-8-1-7-80"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-49"
-         x="187.28174"
-         y="177.54761"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Buttons and leds</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="198.55786"
-       y="214.44359"
-       id="text3802-8-1-7-805"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-35"
-         x="198.55786"
-         y="214.44359"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">IRC to CAN</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="135.74583"
-       y="250.17462"
-       id="text3802-8-1-7-19"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-42"
-         x="135.74583"
-         y="250.17462"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">CAN receive - Button press emulation</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr"
-       x="143.64378"
-       y="287.96631"
-       id="text3802-8-1-7-805-2"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-35-8"
-         x="143.64378"
-         y="287.96631"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Configuration and error handling</tspan></text>
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
-       d="m 490.1129,88.827498 -60.47572,0"
-       id="path4288"
-       inkscape:connector-curvature="0" />
-    <text
-       xml:space="preserve"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
-       x="423.60233"
-       y="322.63248"
-       id="text3802-8-1-7-17-1"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3804-5-3-8-62-9"
-         x="423.60233"
-         y="322.63248"
-         style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">CAN 2</tspan></text>
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
-       d="m 490.08007,105.55063 -60.47572,0"
-       id="path4288-9"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
-       d="m 490.08007,123.01227 -60.47572,0"
-       id="path4288-9-4"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
-       d="m 490.08007,141.85247 -60.47572,0"
-       id="path4288-9-0"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
-       d="m 490.08007,160.23315 -60.47572,0"
-       id="path4288-9-6"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
-       d="m 490.08007,178.61382 -60.47572,0"
-       id="path4288-9-46"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:none"
-       d="m 490.08007,202.04919 -60.47572,0"
-       id="path4288-9-8"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:none"
-       d="m 489.3908,219.97035 -60.47572,0"
-       id="path4288-9-8-4"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:none"
-       d="m 489.89956,256.73171 -60.47573,0"
-       id="path4288-9-8-2"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:none"
-       d="m 490.30983,293.95258 -60.47572,0"
-       id="path4288-9-8-8"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
-       d="m 490.08007,237.89151 -60.47572,0"
-       id="path4288-9-46-2"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
-       d="m 490.08007,275.5719 -60.47572,0"
-       id="path4288-9-46-8"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.83806779999999992, 0.91903389999999996, 0.45951694999999998, 0.91903389999999996;stroke-dashoffset:0;marker-start:url(#Arrow1Mstart-78)"
-       d="m 429.4391,321.7252 46.65031,0 0,-46.41822 0,-187.053877"
-       id="path8024"
-       inkscape:connector-curvature="0" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:none"
-       id="path8234"
-       sodipodi:cx="475.29019"
-       sodipodi:cy="302.60773"
-       sodipodi:rx="1.2276785"
-       sodipodi:ry="1.1830357"
-       d="m 476.51787,302.60773 c 0,0.65337 -0.54965,1.18303 -1.22768,1.18303 -0.67803,0 -1.22768,-0.52966 -1.22768,-1.18303 0,-0.65338 0.54965,-1.18304 1.22768,-1.18304 0.67803,0 1.22768,0.52966 1.22768,1.18304 z"
-       transform="matrix(1.2993608,0,0,1.2993608,-141.49794,-117.7881)" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:none"
-       id="path8234-6"
-       sodipodi:cx="475.29019"
-       sodipodi:cy="302.60773"
-       sodipodi:rx="1.2276785"
-       sodipodi:ry="1.1830357"
-       d="m 476.51787,302.60773 c 0,0.65337 -0.54965,1.18303 -1.22768,1.18303 -0.67803,0 -1.22768,-0.52966 -1.22768,-1.18303 0,-0.65338 0.54965,-1.18304 1.22768,-1.18304 0.67803,0 1.22768,0.52966 1.22768,1.18304 z"
-       transform="matrix(1.2993608,0,0,1.2993608,-141.48405,-287.66429)" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:none"
-       id="path8234-1"
-       sodipodi:cx="475.29019"
-       sodipodi:cy="302.60773"
-       sodipodi:rx="1.2276785"
-       sodipodi:ry="1.1830357"
-       d="m 476.51787,302.60773 c 0,0.65337 -0.54965,1.18303 -1.22768,1.18303 -0.67803,0 -1.22768,-0.52966 -1.22768,-1.18303 0,-0.65338 0.54965,-1.18304 1.22768,-1.18304 0.67803,0 1.22768,0.52966 1.22768,1.18304 z"
-       transform="matrix(1.2993608,0,0,1.2993608,-141.42602,-304.43287)" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.83806779999999992, 0.91903389999999996, 0.45951694999999998, 0.91903389999999996;stroke-dashoffset:0"
-       d="m 429.22689,312.43172 28.5557,0 0,-189.71485"
-       id="path8297"
-       inkscape:connector-curvature="0" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:none"
-       id="path8234-6-3"
-       sodipodi:cx="475.29019"
-       sodipodi:cy="302.60773"
-       sodipodi:rx="1.2276785"
-       sodipodi:ry="1.1830357"
-       d="m 476.51787,302.60773 c 0,0.65337 -0.54965,1.18303 -1.22768,1.18303 -0.67803,0 -1.22768,-0.52966 -1.22768,-1.18303 0,-0.65338 0.54965,-1.18304 1.22768,-1.18304 0.67803,0 1.22768,0.52966 1.22768,1.18304 z"
-       transform="matrix(1.2993608,0,0,1.2993608,-159.95498,-270.31564)" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:none"
-       id="path8234-6-2"
-       sodipodi:cx="475.29019"
-       sodipodi:cy="302.60773"
-       sodipodi:rx="1.2276785"
-       sodipodi:ry="1.1830357"
-       d="m 476.51787,302.60773 c 0,0.65337 -0.54965,1.18303 -1.22768,1.18303 -0.67803,0 -1.22768,-0.52966 -1.22768,-1.18303 0,-0.65338 0.54965,-1.18304 1.22768,-1.18304 0.67803,0 1.22768,0.52966 1.22768,1.18304 z"
-       transform="matrix(1.2993608,0,0,1.2993608,-159.79086,-251.27851)" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:none"
-       id="path8234-6-24"
-       sodipodi:cx="475.29019"
-       sodipodi:cy="302.60773"
-       sodipodi:rx="1.2276785"
-       sodipodi:ry="1.1830357"
-       d="m 476.51787,302.60773 c 0,0.65337 -0.54965,1.18303 -1.22768,1.18303 -0.67803,0 -1.22768,-0.52966 -1.22768,-1.18303 0,-0.65338 0.54965,-1.18304 1.22768,-1.18304 0.67803,0 1.22768,0.52966 1.22768,1.18304 z"
-       transform="matrix(1.2993608,0,0,1.2993608,-159.79085,-233.06195)" />
-    <path
-       sodipodi:type="arc"
-       style="fill:#000000;fill-opacity:1;stroke:none"
-       id="path8234-6-1"
-       sodipodi:cx="475.29019"
-       sodipodi:cy="302.60773"
-       sodipodi:rx="1.2276785"
-       sodipodi:ry="1.1830357"
-       d="m 476.51787,302.60773 c 0,0.65337 -0.54965,1.18303 -1.22768,1.18303 -0.67803,0 -1.22768,-0.52966 -1.22768,-1.18303 0,-0.65338 0.54965,-1.18304 1.22768,-1.18304 0.67803,0 1.22768,0.52966 1.22768,1.18304 z"
-       transform="matrix(1.2993608,0,0,1.2993608,-159.62674,-214.68127)" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)"
-       d="m 361.4364,101.00656 0,119.759 28.7793,0"
-       id="path8762"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91713780000000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotS)"
-       d="m 361.33974,100.7257 -32.79724,0"
-       id="path9404"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotM)"
-       d="m 381.22379,87.022253 -19.8577,0 0,13.949617"
-       id="path9620"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotS);marker-end:url(#DotM)"
-       d="m 342.2967,123.63543 46.06227,0"
-       id="path10486"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)"
-       d="m 328.78962,137.48706 13.45729,0 0,-30.85328 42.3412,0"
-       id="path13308"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotS);marker-end:url(#DotM)"
-       d="m 342.17284,137.48066 0,134.60686 25.53003,0"
-       id="path13526"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotS);marker-end:url(#DotM)"
-       d="m 342.0828,201.98354 32.74058,0"
-       id="path13960"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)"
-       d="m 328,284.36215 5,0 0,37 50,0"
-       id="path14394"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)"
-       d="m 328.01528,248.15231 8.18029,0 -0.12308,68.17678 47.02091,-0.11605"
-       id="path14614"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)"
-       d="m 328.13317,211.50211 19.36535,0 0,99.94835 35.61257,0"
-       id="path14834"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotS);marker-end:url(#DotM)"
-       d="m 347.51094,276.46744 20.19192,0"
-       id="path15052"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotS)"
-       d="m 327.47672,174.24841 51.53154,0"
-       id="path15486"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotS);marker-end:url(#DotM)"
-       d="m 354.39128,174.24841 0,119.80263 14.90444,0"
-       id="path15704"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)"
-       d="m 379.13335,174.2313 0,4.08321 9.92531,0"
-       id="path16138"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)"
-       d="m 379.01731,174.17327 0,-14.56372 10.09596,0"
-       id="path16356"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="ccc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:0.91903389000000002px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotS);marker-end:url(#DotM)"
-       d="m 379.01731,159.60955 0,-17.75496 10.21201,0"
-       id="path16574"
-       inkscape:connector-curvature="0" />
-  </g>
-</svg>
diff --git a/doc/images/demo_board.png b/doc/images/demo_board.png
new file mode 100644 (file)
index 0000000..76d486d
Binary files /dev/null and b/doc/images/demo_board.png differ
diff --git a/doc/images/demo_can_demo.png b/doc/images/demo_can_demo.png
deleted file mode 100644 (file)
index 81f8d29..0000000
Binary files a/doc/images/demo_can_demo.png and /dev/null differ
diff --git a/doc/images/demo_digital_passthrough.png b/doc/images/demo_digital_passthrough.png
deleted file mode 100644 (file)
index d450ea1..0000000
Binary files a/doc/images/demo_digital_passthrough.png and /dev/null differ
index e948588c3a96433c2fa925bf6f9dcdfed400aba8..eac83aa8e0bb1b1e60e405be86bb27add0899a21 100644 (file)
Binary files a/doc/images/demo_echo_char.png and b/doc/images/demo_echo_char.png differ
diff --git a/doc/images/demo_gio.png b/doc/images/demo_gio.png
new file mode 100644 (file)
index 0000000..82ae930
Binary files /dev/null and b/doc/images/demo_gio.png differ
diff --git a/doc/images/demo_hbridge_analog_control.png b/doc/images/demo_hbridge_analog_control.png
deleted file mode 100644 (file)
index 7d74f82..0000000
Binary files a/doc/images/demo_hbridge_analog_control.png and /dev/null differ
diff --git a/doc/images/demo_hbridge_digital_control.png b/doc/images/demo_hbridge_digital_control.png
deleted file mode 100644 (file)
index 9398287..0000000
Binary files a/doc/images/demo_hbridge_digital_control.png and /dev/null differ
diff --git a/doc/images/demo_hbridge_sinewave_control.png b/doc/images/demo_hbridge_sinewave_control.png
deleted file mode 100644 (file)
index 5833578..0000000
Binary files a/doc/images/demo_hbridge_sinewave_control.png and /dev/null differ
diff --git a/doc/images/demo_irc_input.png b/doc/images/demo_irc_input.png
deleted file mode 100644 (file)
index bb550fa..0000000
Binary files a/doc/images/demo_irc_input.png and /dev/null differ
diff --git a/doc/images/demo_led_blink.png b/doc/images/demo_led_blink.png
deleted file mode 100644 (file)
index 47ec6be..0000000
Binary files a/doc/images/demo_led_blink.png and /dev/null differ
diff --git a/doc/images/demo_led_blink_all.png b/doc/images/demo_led_blink_all.png
deleted file mode 100644 (file)
index 3752946..0000000
Binary files a/doc/images/demo_led_blink_all.png and /dev/null differ
diff --git a/doc/images/demo_log_analog_input.png b/doc/images/demo_log_analog_input.png
deleted file mode 100644 (file)
index be1644e..0000000
Binary files a/doc/images/demo_log_analog_input.png and /dev/null differ
diff --git a/doc/images/demo_power_toggle.png b/doc/images/demo_power_toggle.png
deleted file mode 100644 (file)
index 9aecc71..0000000
Binary files a/doc/images/demo_power_toggle.png and /dev/null differ
diff --git a/doc/images/demo_simple_can.png b/doc/images/demo_simple_can.png
new file mode 100644 (file)
index 0000000..fc79149
Binary files /dev/null and b/doc/images/demo_simple_can.png differ
diff --git a/doc/images/dev_wiring.png b/doc/images/dev_wiring.png
deleted file mode 100644 (file)
index 071e447..0000000
Binary files a/doc/images/dev_wiring.png and /dev/null differ
diff --git a/doc/images/dev_wiring.svg b/doc/images/dev_wiring.svg
deleted file mode 100644 (file)
index 13bd314..0000000
+++ /dev/null
@@ -1,908 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="763.31927"
-   height="709.83832"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="dev_wiring.svg"
-   inkscape:export-filename="dev_wiring.png"
-   inkscape:export-xdpi="90"
-   inkscape:export-ydpi="90">
-  <title
-     id="title4706">RPP Wiring for Development</title>
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow1Send"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Send"
-       style="overflow:visible">
-      <path
-         id="path3789"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend"
-       style="overflow:visible">
-      <path
-         id="path3783"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-4"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3783-6"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.7367875"
-     inkscape:cx="381.65964"
-     inkscape:cy="354.91916"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     borderlayer="true"
-     inkscape:showpageshadow="false"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0"
-     inkscape:window-width="1366"
-     inkscape:window-height="712"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>RPP Wiring for Development</dc:title>
-        <dc:creator>
-          <cc:Agent>
-            <dc:title>Carlos Jenkins</dc:title>
-          </cc:Agent>
-        </dc:creator>
-        <dc:rights>
-          <cc:Agent>
-            <dc:title>2013 Czech Technical University in Prague</dc:title>
-          </cc:Agent>
-        </dc:rights>
-        <dc:date>Jun 24 2012</dc:date>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-44.499989,-136.21933)">
-    <image
-       y="136.21933"
-       x="44.499989"
-       id="image4682"
-       xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
-HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
-MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAG2AdcDASIA
-AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
-AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
-ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
-p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
-AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
-BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
-U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
-uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDqfsUI
-7D8qQ2sWMj16EVYJ70zO1G561wo62kV2tYs/d5rB8TatZaDp5kcBrhziKIfxGrHiLxLbaBYebKd0
-78RRA8ufevItT1S4u7w3V45kvJPuRjpGPQCmoKT1JsR317M0klxcPuuZOpz90dgK6rwL4S3SrqF7
-Edzcxq3b3qPwz4QbdHqGqKWkI3Rwnt7n3r07TbcRRbsc+lVLayC92TJYwquGXt6VBcafbyoyMuQw
-wfpWh2qNxt5rPlKaPKtU04+HZLqzlVn0+4U+UwHKn0q/4EuVudKns3ILRMQFPUA12mp2UN7btHPG
-HjPUEV5hFO3hHxbICrNbt98dyhPUfStIpPclo5m7i8nVbyNeiSMB7c1b8OSrHrRglAMVyhQg0mrL
-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
-g5zRRW8/gMI/GdLoRzYReyCiiisEaM//2Q==
-"
-       height="709.83832"
-       width="763.31927" />
-    <g
-       id="g4713">
-      <text
-         sodipodi:linespacing="125%"
-         id="text2996"
-         y="222.3622"
-         x="191.42859"
-         style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:#000000;font-family:Sans"
-         xml:space="preserve"><tspan
-           style="font-size:30px;font-weight:bold;fill:#ff0000;stroke:#000000;-inkscape-font-specification:Sans Bold"
-           y="222.3622"
-           x="191.42859"
-           id="tspan2998"
-           sodipodi:role="line">Power input</tspan></text>
-      <path
-         inkscape:connector-curvature="0"
-         id="path3000"
-         d="m 473.84375,206.09375 4,4 -72.125,0 0,8 72.125,0 -4,4 14,-4 3.59375,0 0,-1.03125 10.40625,-2.96875 -10.40625,-2.96875 0,-1.03125 -3.59375,0 -14,-4 z"
-         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
-    </g>
-    <g
-       id="g4718">
-      <text
-         sodipodi:linespacing="125%"
-         id="text2996-6"
-         y="540.63855"
-         x="303.08734"
-         style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#00ff00;fill-opacity:1;stroke:#000000;font-family:Sans"
-         xml:space="preserve"><tspan
-           style="font-size:30px;font-weight:bold;fill:#00ff00;stroke:#000000;-inkscape-font-specification:Sans Bold"
-           y="540.63855"
-           x="303.08734"
-           id="tspan2998-2"
-           sodipodi:role="line">JTAG</tspan></text>
-      <path
-         inkscape:connector-curvature="0"
-         id="path3000-9"
-         d="m 459.78125,524.5 4,4 -72.125,0 0,8 72.125,0 -4,4 14,-4 3.59375,0 0,-1.03125 10.40625,-2.96875 -10.40625,-2.96875 0,-1.03125 -3.59375,0 -14,-4 z"
-         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
-    </g>
-    <g
-       id="g4723">
-      <text
-         xml:space="preserve"
-         style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:#000000;font-family:Sans"
-         x="278.80164"
-         y="577.78143"
-         id="text4618"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan4620"
-           x="278.80164"
-           y="577.78143"
-           style="font-size:30px;font-weight:bold;fill:#0000ff;stroke:#000000;-inkscape-font-specification:Sans Bold">RS232</tspan></text>
-      <path
-         inkscape:connector-curvature="0"
-         id="path4622"
-         d="m 459.78125,558.875 4,4 -72.125,0 0,8 72.125,0 -4,4 14,-4 3.59375,0 0,-1.03125 10.40625,-2.96875 -10.40625,-2.96875 0,-1.03125 -3.59375,0 -14,-4 z"
-         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000080;fill-opacity:1;stroke:#000000;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
-    </g>
-    <g
-       id="g4708">
-      <text
-         sodipodi:linespacing="125%"
-         id="text4624"
-         y="323.79074"
-         x="317.14288"
-         style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;font-family:Sans"
-         xml:space="preserve"><tspan
-           style="font-size:22px;font-weight:bold;fill:#ffffff;stroke:#000000;-inkscape-font-specification:Sans Bold"
-           y="323.79074"
-           x="317.14288"
-           id="tspan4626"
-           sodipodi:role="line">XDS100v2 JTAG Emulator</tspan></text>
-      <path
-         inkscape:connector-curvature="0"
-         id="path4628"
-         d="m 704.0625,309.625 4,4 -72.125,0 0,8 72.125,0 -4,4 14,-4 3.59375,0 0,-1.03125 10.40625,-2.96875 -10.40625,-2.96875 0,-1.03125 -3.59375,0 -14,-4 z"
-         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans" />
-    </g>
-  </g>
-</svg>
diff --git a/doc/images/external_mode_configuration.png b/doc/images/external_mode_configuration.png
deleted file mode 100644 (file)
index a3a7a4d..0000000
Binary files a/doc/images/external_mode_configuration.png and /dev/null differ
diff --git a/doc/images/itcr.png b/doc/images/itcr.png
deleted file mode 100644 (file)
index 46b5890..0000000
Binary files a/doc/images/itcr.png and /dev/null differ
index 15af585f148e721e56e460e6f01c02af8b358d8c..4eda513f3e3a12799fdb1c28fe8793093bf40324 100644 (file)
Binary files a/doc/images/layers.pdf.png and b/doc/images/layers.pdf.png differ
diff --git a/doc/images/logo_ctu.pdf b/doc/images/logo_ctu.pdf
new file mode 100644 (file)
index 0000000..1ffa835
Binary files /dev/null and b/doc/images/logo_ctu.pdf differ
diff --git a/doc/images/logos.png b/doc/images/logos.png
deleted file mode 100644 (file)
index 4da03d4..0000000
Binary files a/doc/images/logos.png and /dev/null differ
diff --git a/doc/images/logos.svg b/doc/images/logos.svg
deleted file mode 100644 (file)
index 3fb0638..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="724.28577"
-   height="357"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.3.1 r9886"
-   sodipodi:docname="logos.svg"
-   inkscape:export-filename="logos.png"
-   inkscape:export-xdpi="90"
-   inkscape:export-ydpi="90">
-  <defs
-     id="defs4" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="1"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.745098"
-     inkscape:cx="362.14288"
-     inkscape:cy="178.5"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1600"
-     inkscape:window-height="844"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     borderlayer="true"
-     inkscape:showpageshadow="false"
-     fit-margin-left="5"
-     fit-margin-top="5"
-     fit-margin-bottom="5"
-     fit-margin-right="5" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-9.6428223,-428.14789)">
-    <image
-       y="433.14789"
-       x="373.92856"
-       id="image3023"
-       xlink:href="file:///home/carlos/rpp-simulink/doc/reports/report/images/itcr.png"
-       height="347"
-       width="355" />
-    <g
-       id="g3089"
-       transform="translate(0,12)">
-      <image
-         width="326"
-         height="247.66556"
-         xlink:href="file:///home/carlos/rpp-simulink/doc/reports/report/images/cvut.png"
-         id="image3034"
-         x="14.642822"
-         y="433.36218" />
-      <text
-         sodipodi:linespacing="125%"
-         id="text3048"
-         y="724.11914"
-         x="177.5217"
-         style="font-size:10.63101578000000025px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#1576c3;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans;text-anchor:middle;text-align:center"
-         xml:space="preserve"><tspan
-           style="font-size:24.80570412000000147px;font-weight:bold;fill:#1576c3;fill-opacity:1;-inkscape-font-specification:DejaVu Sans Bold;text-anchor:middle;text-align:center"
-           y="724.11914"
-           x="25.501986"
-           id="tspan3050"
-           sodipodi:role="line">ČESKÉ VYSOKÉ UČENÍ </tspan><tspan
-           style="font-size:24.80570412000000147px;font-weight:bold;fill:#1576c3;fill-opacity:1;-inkscape-font-specification:DejaVu Sans Bold;text-anchor:middle;text-align:center"
-           id="tspan3052"
-           y="755.12628"
-           x="25.501986"
-           sodipodi:role="line">TECHNICKÉ V PRAZE</tspan></text>
-    </g>
-    <flowRoot
-       xml:space="preserve"
-       id="flowRoot3054"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"><flowRegion
-         id="flowRegion3056"><rect
-           id="rect3058"
-           width="98"
-           height="27"
-           x="66"
-           y="746.36218" /></flowRegion><flowPara
-         id="flowPara3060" /></flowRoot>  </g>
-</svg>
diff --git a/doc/images/pinout.pdf b/doc/images/pinout.pdf
deleted file mode 120000 (symlink)
index 7d451a0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../rpp/lib/rpp/doc/board.pdf
\ No newline at end of file
diff --git a/doc/images/pinout.pdf.png b/doc/images/pinout.pdf.png
deleted file mode 100644 (file)
index 8c12db0..0000000
Binary files a/doc/images/pinout.pdf.png and /dev/null differ
diff --git a/doc/images/test_wiring.png b/doc/images/test_wiring.png
deleted file mode 100644 (file)
index 6c81b41..0000000
Binary files a/doc/images/test_wiring.png and /dev/null differ
index 72a4ffcd9e7112fe785f6637090f17dd10e10da8..4f9bb5ac420347a3ad2431d14cb23b2da79f513f 100644 (file)
@@ -7,20 +7,21 @@
 }
 @MISC{modelbasedwiki2013,
 title = {Model-Based design},
+label = {MBD},
 month = mar,
 year = {2013},
 howpublished = {\url{http://en.wikipedia.org/wiki/Model-based_design}}
 }
 @TECHREPORT {armassemblylanguagetools2012,
-    author      = "Texas Instruments",
+    author      = "{Texas Instruments}",
     title       = "{ARM} {A}ssembly Language Tools",
-    institution = "Texas Instruments",
+    institution = "{Texas Instruments}",
     year        = "2012"
 }
 @TECHREPORT {armoptimizingccppcompiler2012,
-    author      = "Texas Instruments",
+    author      = "{Texas Instruments}",
     title       = "{ARM} {O}ptimizing {C/C++} Compiler",
-    institution = "Texas Instruments",
+    institution = "{Texas Instruments}",
     year        = "2012"
 }
 @TECHREPORT {embeddedcoderreference2013,
@@ -59,11 +60,18 @@ howpublished = {\url{http://en.wikipedia.org/wiki/Model-based_design}}
     institution = "MathWorks",
     year        = "2013"
 }
-@TECHREPORT {tms570ls31xtechnicalreferencemanual2012,
-    author      = "Texas Instruments",
-    title       = "{TMS570LS31x/21x} 16/32-Bit {RISC} Flash Microcontroller -- {T}echnical Reference Manual",
-    institution = "Texas Instruments",
-    year        = "2012"
+@TECHREPORT {rm48xtechnicalreferencemanual2013,
+    author      = "{Texas Instruments}",
+    title       = "{RM48x} 16/32-Bit {RISC} Flash Microcontroller -- {T}echnical Reference Manual",
+    institution = "{Texas Instruments}",
+    year        = "2013"
+}
+@TECHREPORT {rm48hdkusersguide2013,
+    author      = "{Texas Instruments}",
+    title       = "{RM48} Hercules Development Kit ({HDK}) -- {U}ser's Guide",
+    institution = "{Texas Instruments}",
+    year        = "2013",
+    url         = "http://www.ti.com/lit/ug/spnu508b/spnu508b.pdf",
 }
 @BOOK {usingthefreertos2009,
     author    = "Richard Barry",
@@ -71,3 +79,12 @@ howpublished = {\url{http://en.wikipedia.org/wiki/Model-based_design}}
     publisher = "Richard Barry",
     year      = "2009"
 }
+
+@Online{freertosapi,
+  author =       {{Real Time Engineers Ltd.}},
+  title =        {{FreeRTOS} {API} reference},
+  year =         2015,
+  url =          {http://www.freertos.org/modules.html#API_reference},
+  urldate =      {2015-01-29},
+  label =        {API}
+}
index 0544ddad496ecd2545b5585af06237bda0992ae9..c7319eb4be69f0a43368f57067c80805c9205ec9 100644 (file)
@@ -1,6 +1,3 @@
-\newcommand{\superscript}[1]{\ensuremath{^{\textrm{\small#1}}}}
-\newcommand{\subscript}[1]{\ensuremath{_{\textrm{\small#1}}}}
-
 \documentclass{scrreprt}
 
 \usepackage{graphicx} % images and graphics
@@ -8,9 +5,11 @@
 \usepackage[normalem]{ulem} % needed by strike
 \usepackage{listings} % required for code blocks
 \usepackage[urlcolor=blue,colorlinks=true,hyperfootnotes=false]{hyperref} % links
-\usepackage[utf8x]{inputenc}  % char encoding
+\usepackage[utf8]{inputenc}  % char encoding
 \usepackage[bottom]{footmisc} % footnotes
 \usepackage{todonotes}
+\usepackage[backend=biber,style=alphabetic,sortcites=true]{biblatex}
+\addbibresource{rpp_simulink.bib}
 
 % header
 \usepackage[top=2.5cm, bottom=2.5cm, left=2.5cm, right=2.5cm]{geometry}
@@ -77,6 +76,8 @@
 \usepackage{caption}
 
 \newcommand{\repo}{$\langle$repo$\rangle$}
+\newcommand{\superscript}[1]{\ensuremath{^{\textrm{\small#1}}}}
+\newcommand{\subscript}[1]{\ensuremath{_{\textrm{\small#1}}}}
 
 \begin{document}
 
 
 
 % Document title
-\HRule\vspace{0.4cm}
-{ \huge \bfseries Code generation for automotive rapid prototyping platform using Matlab/Simulink\par}
+\HRule
+\vspace{0.4cm}
+{\huge \bfseries Simulink code generation target for Texas~Instruments
+  RM48 platform\par}
 \vspace{0.4cm}
-\HRule\vspace{1.5cm}
+\HRule \\[1.5cm]
 
 
 % Author
@@ -143,92 +146,199 @@ Michal \textsc{Sojka}\\[\baselineskip]
        \fancyfoot[C]{}
        \fancyfoot[R]{Page {\thepage} of \pageref{LastPage}}
 }
+\headheight=26pt
 %\addtolength{\parskip}{\baselineskip} % Paragraph spacing
 
 \chapter{Introduction}
 \label{chap-introduction}
 
-This text is a documentation for a Rapid Prototyping Platform (RPP) project. It
-may serve as a guideline for development tools installation, Simulink Coder
-configuration, creation of new models as well as downloading the resulting
-firmware to the hardware. It can also be used as a reference for a testing tool,
-Matlab Simulink blocks and RPP Matlab Simulink Code generator. The document also
-provides an overall description of the hardware design and architecture of its
-control software.
+This text documents software part of Rapid Prototyping Platform (RPP)
+project for Texas Instruments RM48 safety microcontroller. The
+software consists of code generation target for Simulink Embedded
+Coder, a low-level run-time C library and a tool for interactive
+testing of hardware and software functionality.
+
+Originally, the RPP project was created for TMS570 microcontroller and
+the port to RM48 was derived from it under a contract with Eaton
+Corporation.
+% TODO remove it
+As this document is still in beta version, some
+references to the original TMS570-based RPP remain in it.
+
+The document contains step-by-step instructions for installation of
+development tools, information about Simulink Coder configuration,
+describes how to create new models as well as how to download the
+resulting firmware to the hardware. It can also be used as a reference
+for the testing tool, Matlab Simulink blocks and RPP Matlab Simulink
+Code generator. Additionally, an overall description of the used
+hardware platform and the architecture of included software is
+provided.
 
 \section{Background}
 \label{sec-background}
 
-The Rapid Prototyping Platform is an ECU (Electronic Control Unit) designed for
-use in Automotive, thus requirements for Automotive communication interfaces,
-durable IO ports and analog-digital converters were applied.
-
-The ECU is controlled by TMS570LS5137ZWT MCU, which is an ARM Cortex R4 based
-microcontroller developed by Texas Instruments. This MCU contains several
-protective mechanisms (two cores in lockstep, error correction mechanisms for
-SRAM and Flash memory, voltage monitoring, etc.) to fulfill the requirements for
-safety critical applications. See~\cite{tms570ls31xtechnicalreferencemanual2012}
-for details.
+The Rapid Prototyping Platform is an control unit based on TMDSRM48HDK
+development kit from Texas Instruments. Cental to the kit is the
+RM48L952 MCU -- an ARM Cortex R4 based microcontroller developed by
+Texas Instruments. This MCU contains several protective mechanisms
+(two cores in lockstep, error correction mechanisms for SRAM and Flash
+memory, voltage monitoring, etc.) to fulfill the requirements for
+safety critical applications.
+See~\cite{rm48xtechnicalreferencemanual2013} for details.
 
 In order to develop non-trivial applications for the RPP, an operating
-system is necessary. The RPP is based on FreeRTOS -- an opensource operating
-system real-time kernel, aimed not only at embedded systems. The FreeRTOS
-provides an API for creating and managing multiple tasks, scheduler, memory
-manager, semaphores, queues, mutexes, timers and lots of other features which can
-be used in the applications. See~\cite{usingthefreertos2009} for more details.
+system is necessary. The RPP is based on FreeRTOS -- a simple
+opensource real-time operating system kernel. The FreeRTOS provides an
+API for creating and managing and scheduling multiple tasks, memory
+manager, semaphores, queues, mutexes, timers and a few of other
+features which can be used in the applications.
+See~\cite{usingthefreertos2009} for more details.
 
 Even with the operating system it is quite hard and non-intuitive to
-control the hardware directly. That is the point when abstraction
+manipulate the hardware directly. That is the point when abstraction
 comes into the play. The RPP software is made of several layers
 implementing, from the bottom to the top, low-level device drivers,
 hardware abstraction for common functionality on different hardware
-and an API which is easy to use in applications. The operating
-system and the control software, can be compiled as a library and
-easily used in any project. More details about the library can be
-found in Chapter~\ref{chap-c-support-library} and in~\cite{michalhorn2013}.
-
-Because humans make mistakes and in safety critical applications any mistake can
-cause damage, looses of money or in the worst case even death of other people,
-the area for making mistakes has to be as small as possible. An approach called
-Model--based \cite{modelbasedwiki2013} development has been introduced. In
-Simulink  the application is developed as a model made of interconnected blocks. 
-Every block implements some functionality. For example one block
-receives a voltage from an analog--digital converter, provides the value as an
-input to another block which implements some clever algorithm and the product is
-passed as an input to another block, which sends the value as a CAN message to
-some other MCU. The final model can be simulated and tested even before the real
-hardware exists. Finally a C code is generated from the model by a Simulink Code
-Generator. The code can be compiled by the MCU compatible compiler and
-downloaded to the MCU Flash memory on the device. Because every block and code
-generated from the block has to pass a series of tests during their development,
-the area for making mistakes during the application development has
-been significantly reduced and developers can focus on the application instead of
-the hardware and control software implementation. More information about Code
-generation can be found in Chapter \ref{chap-simulink-coder-target}. For a
-reference about Matlab Simulink, Embedded Coder and Simulink Coder,
-refer to
+and an API which is easy to use in applications. The operating system
+and the basic software layers, can be compiled as a library and easily
+used in any project. More details about the library can be found in
+Chapter~\ref{chap-c-support-library} and in~\cite{michalhorn2013}.
+
+Because human beings make mistakes and in safety critical applications
+any mistake can cause damage, loos of money or in the worst case even
+death of other people, the area for making mistakes has to be as small
+as possible. An approach called Model-based development
+\cite{modelbasedwiki2013} has been introduced to reduce the
+probability of making mistakes. In model-based development, the
+applications are designed at higher level from models and the
+functionality of the models can be simulated in a computer before the
+final application/hardware is finished. This allows to discover
+potential errors earlier in the development process.
+
+One commonly used tool-chain for model-based development is
+Matlab/Simulink. In Simulink the application is developed as a model
+made of interconnected blocks. Every block implements some
+functionality. For example one block reads a value from an
+analog-to-digital converter and provides the value as an input to
+another block. This block can implement some clever algorithm and its
+output is passed to another block, which sends the computed value as a
+message over CAN bus to some other MCU. Such a model can be simulated
+and tested even before the real hardware is available by replacinf the
+input and output blocks with simulated ones. Once the hardware is
+ready, C code is automatically generated from the model by a Simulink
+Coder. The code is then compiled by the MCU compatible compiler and
+downloaded to the MCU Flash memory on the device. Because every block
+and code generated from the block has to pass a series of tests during
+their development, the area for making mistakes during the application
+development has been significantly reduced and developers can focus on
+the application instead of the hardware and control software
+implementation. More information about code generation can be found in
+Chapter \ref{chap-simulink-coder-target}. For information about Matlab
+Simulink, Embedded Coder and Simulink Coder, refer to
 \cite{embeddedcoderreference2013, ebmeddedcoderusersguide2013,
   simulinkcoderreference2013, targetlanguagecompiler2013,
   simulinkcoderusersguide2013, simulinkdevelopingsfunctions2013}.
 
+\section{Hardware description}
+\label{sec-hardware-description}
+
+This section provides a brief description of the Texas Instrument
+TMDSRM48HDK development kit. For a more detailed information refer to
+\cite{rm48hdkusersguide2013}. The kit is depicted in
+Figure~\ref{fig-board_photo}.
+
+\begin{figure}\begin{center}
+       \noindent
+       \includegraphics[width=300px]{images/board.png}
+       \caption{The TMDSRM48HDK kit \cite[p. 8]{rm48hdkusersguide2013}}
+       \label{fig-board_photo}
+\end{center}\end{figure}
+
+Only a subset of peripherals available on the kit is currently
+supported by the RPP software. A block diagram in
+Figure~\ref{fig-blocks} ilustrates the supported peripherals and their
+connection to the MCU, expansion connectors and other components on
+the development kit. For pinout description of the implemented
+peripherals refer the RM48HDK User's Guide
+\cite{rm48hdkusersguide2013}. The main features of supported
+peripherals are provided in the following subsections.
+
+\begin{figure}\begin{center}
+       \noindent
+       \includegraphics[width=400px]{images/blocks.png}
+       \caption{Block diagram of supported peripherals}
+       \label{fig-blocks}
+\end{center}\end{figure}
+
+\subsection{Digital Inputs and Outputs (DIN and DOUT)}
+\label{par-digital-inputs-outputs}
+ \begin{compactitem}
+       \item 46 pins available on Expansion connector J11.
+       \item 8 pins available on GIOA
+       \item 8 pins available on GIOB
+       \item 30 pins available on NHET1. Pins NHET1 6 and NHET1 13 are disabled.
+       \item All the pins are configurable as inputs and outputs with different modes:
+        \begin{compactitem}
+               \item Push/Pull or Open Drain for Output configuration.
+               \item Pull up, Pull down or tri-stated for Input configuration.
+        \end{compactitem}
+   \item Some of the pins are connected to LEDs or to a button. See
+     Figure~\ref{fig-blocks} or refer to~\cite{rm48hdkusersguide2013}.
+ \end{compactitem}
+
+\subsection{Analog Input (ADC)}
+\label{par-analog-input}
+\vbox{% Keep this on the same page
+ \begin{compactitem}
+       \item 16 channels available on the Expansion connector J9.
+       \item Range for 0 -- 5 Volts.
+       \item 12 bits resolution.
+ \end{compactitem}
+}
+\subsection{CAN bus (CAN)}
+\label{par-can}
+\begin{compactitem}
+    \item Up to three CAN ports
+      \begin{compactitem}
+      \item 2 ports equipped with physical layer CAN transciever
+        connected to J2 and J3 connectors.
+      \item All 3 ports available as link-level interface on the
+        Expansion connector J11.
+      \end{compactitem}
+       \item High speed.
+       \item Recovery from errors.
+       \item Detection of network errors.
+\end{compactitem}
+
+\subsection{Serial Communication Interface (SCI)}
+\label{par-sci}
+\begin{compactitem}
+       \item 1 port available on connector J7.
+       \item Configurable baud rate. Tested with 9600 and 115200 bps.
+       \item RS232 compatible.
+\end{compactitem}
+
 \section{Software architecture}
 \label{sec-software-architecture}
-The basic RPP software, also called the RPP Library, is structured
-into 5 layers, depicted in Figure~\ref{fig-layers}. The architecture
-design was driven by the following guidelines:
+
+The core of the RPP software is the so called RPP Library. This
+library is conceptualy structured into 5 layers, depicted in
+Figure~\ref{fig-layers}. The architecture design was driven by the
+following guidelines:
 
 \begin{compactitem}
        \item Top-down dependency only. No lower layer depends on anything from
 upper layers.
-       \item 1-1 layer dependency only. The top layer depends
-exclusively on the bottom layer, not on any lower level layer (except for a
-couple of exceptions).
-       \item Each layer should provide a unified layer interface
-(\textsc{rpp.h}, \textsc{drv.h}, \textsc {hal.h}, \textsc{sys.h} and
-\textsc{os.h}), so top layers depends on that layer  interface and not on
-individual elements from that layer.  \end{compactitem}
-
-\begin{figure}[H]
+%      \item 1-1 layer dependency only. The top layer depends
+% exclusively on the bottom layer, not on any lower level layer (except for a
+% couple of exceptions).
+\item Each layer should provide a unified layer interface
+  (\texttt{rpp.h}, \texttt{drv.h}, \texttt {hal.h}, \texttt{sys.h} and
+  \texttt{os.h}), so that top layers depends on the layer interface
+  and not on individual elements from that layer.
+\end{compactitem}
+
+\begin{figure}
 \begin{center}
 \noindent
 \includegraphics[width=250px]{images/layers.pdf}
@@ -238,307 +348,115 @@ individual elements from that layer.  \end{compactitem}
 \end{figure}
 
 As a consequence of this division the source code files and interface files are
-placed in private directories like \textsc{drv/din.h}. With this organization
+placed in private directories like \texttt{drv/din.h}. With this organization
 user applications only needs to include the top layer interface files (for
-example \textsc{rpp/rpp\_can.h}) to be able to use the selected library API.
+example \texttt{rpp/rpp\_can.h}) to be able to use the selected library API.
 
 The rest of the section provides basic description of each layer.
 
 \subsection{Operating System layer}
 \label{sec-operating-system-layer}
-This is an operating system interchangeable layer, containing the FreeRTOS
-source files. The system can be easily replaced by another version thanks to
-this layer. For example it is possible to compile the library for Linux (using
-POSIX version of the FreeRTOS), which can be desirable for some testing. The
-source files can be found in the \textsc{$\langle$rpp\_lib$\rangle$/os}
-folder.
+This is an interchangeable operating system layer, containing the
+FreeRTOS source files. The system can be easily replaced by another
+version. For example it is possible to compile the RPP library for
+Linux (using POSIX version of the FreeRTOS), which can be desirable
+for some testing. The source files can be found in the
+\texttt{$\langle$rpp\_lib$\rangle$/os} folder.
 
 The following FreeRTOS versions are distributed:
 \begin{description}
        \item[6.0.4\_posix] POSIX version, usable for compilation of the library
 for Linux system.
-       \item[7.0.2] Prefered version of the FreeRTOS, distributed by
+       \item[7.0.2] Preferred version of the FreeRTOS, distributed by
 Texas Instruments. This version has been tested and is used in the current
 version of the library.
        \item[7.4.0] Newest version distributed by the Texas Instruments.
        \item[7.4.2] Newer version available from FreeRTOS pages. Slightly
-modified to run on TMS570 MCU.
+modified to run on RM48 MCU.
 \end{description}
 
+\noindent
+Both 7.4.x version were tested and work, but the testing was not so
+extensive as with the used 7.0.2 version.
+
 \subsection{System Layer} 
 \label{sec-system-layer}
 This layer contains system files with data types definitions, clock definitions,
-interrupts mapping, MCU startup sequence, MCU selftests, and other low level
+interrupts mapping, MCU start-up sequence, MCU selftests, and other low level
 code for controlling some of the MCU peripherals. The source files can be found
-in \textsc{$\langle$rpp\_lib$\rangle$/rpp/src/sys}, the header files can
-be found in \textsc{$\langle$rpp\_lib$\rangle$/rpp/include/sys}
+in \texttt{$\langle$rpp\_lib$\rangle$/rpp/src/sys}, the header files can
+be found in \texttt{$\langle$rpp\_lib$\rangle$/rpp/include/sys}
 folder.
 
-Large part of this layer was generated by the HalCoGen tool \ref{sec-halcogen}.
+Large part of this layer was generated by the HalCoGen tool (see
+Section~\ref{sec-halcogen}).
 
 \subsection{HAL abstraction layer}
 \label{sec-hal-abstraction-layer}
-Hardware Abstraction Layer (HAL) creates an abstraction over the real hardware.
-For example imagine an IO port with 8 pins. First four pins are connected to the
-MCU directly to GPIO pins, another four pins are connected to an external
-integrated circuit, communicating with the MCU via SPI. It would be annoying to
-have to remember which group is which and to have two sets of control functions
-for one peripheral. This layer maps every pin of the port to a control function
-from the System Layer, groups the pins together, names them in a unified style
-and provides common read, write and configure functions.
-
-As a result, the higher layers do not have to know anything about the wiring of
-the peripherals, they can just call read, write or configure function with a pin
-name as a parameter and the HAL handles all the details.
+Hardware Abstraction Layer (HAL) provides an abstraction over the real
+hardware. For example imagine an IO port with 8 pins. First four pins
+are connected directly to the GPIO pins on the MCU, another four pins
+are connected to an external integrated circuit, communicating with
+the MCU via SPI. This layer allows to control the IO pins
+independently of how that are connected to the MCU, providing a single
+unified API.
+
+Note that this functionality is not needed in the current version of
+for TMDSRM48HDK, because all IOs are controlled directly by GPIO pins.
+
+As a result, the higher layers do not have to know anything about the
+wiring of the peripherals, they can just call read, write or configure
+function with a pin name as a parameter and the HAL handles all the
+details.
 
 The source files can be found in
-\textsc{$\langle$rpp\_lib$\rangle$/rpp/src/hal} and the header files can
-be found in \textsc{$\langle$rpp\_lib$\rangle$/rpp/include/hal} folder.
+\texttt{$\langle$rpp\_lib$\rangle$/rpp/src/hal} and the header files can
+be found in \texttt{$\langle$rpp\_lib$\rangle$/rpp/include/hal} folder.
 
 \subsection{Drivers layer} 
 \label{sec-drivers-layer}
-The Drivers layer contains code for controlling the RPP peripherals. The layer
-benefits from the lower layers thus it is not too low level, but still there are
-some peripherals like ADC or H-bridge, which needs some special procedure for
-initialization and running, that would not be very intuitive for the user. For
-example the H-bridge needs a watchdog reset task to be started before the bridge
-is enabled.
+The Drivers layer contains code for controlling the RPP peripherals.
+Typically, it contains code implementing IRQ handling, software
+queues, management threads, etc. The layer benefits from the lower
+layers thus it is not too low level, but still there are some
+peripherals like ADC, which need some special procedure for
+initialization and running, that would not be very intuitive for the
+user.
 
 The source files can be found in
-\textsc{$\langle$rpp\_lib$\rangle$/rpp/src/drv} and the header files can
-be found in \textsc{$\langle$rpp\_lib$\rangle$/rpp/include/drv} folder.
+\texttt{$\langle$rpp\_lib$\rangle$/rpp/src/drv} and the header files can
+be found in \texttt{$\langle$rpp\_lib$\rangle$/rpp/include/drv} folder.
 
 \subsection{RPP Layer}
 \label{sec-rpp-layer} 
-The RPP Layer is the highest layer of the control software. This layer provides
-an easy to use set of functions for every peripheral and requires only basic
-knowledge about them. For example, to control the H-bridge,
-the user can  just call  \textsc{rpp\_hbr\_init()} function to enable the H-bridge
-and the function calls a sequence of Drivers layer functions to start the
-Watchdog and configure the peripheral.
+The RPP Layer is the highest layer of the library. It provides an easy
+to use set of functions for every peripheral and requires only basic
+knowledge about them. For example, to use the ADC, the user can just
+call \texttt{rpp\_adc\_init()} function and it calls a sequence of
+Driver layer functions to initialize the hardware and software.
 
 The source files can be found in
-\textsc{$\langle$rpp\_lib$\rangle$/rpp/src/rpp} and the header files can
-be found in \textsc{$\langle$rpp\_lib$\rangle$/rpp/include/rpp}.
-
-\section{Hardware description}
-\label{sec-hardware-description}
-
-This section provides reference documentation for the RPP board:
-
-%%TODO: operating conditions as a reference to the Ti documentation
-
-\begin{compactitem}
-       \item Layout description.
-       \item Connectors pinout.
-       \item Modules capabilities and features.
-\end{compactitem}
-
-\subsection{Layout description}
-\label{sec-layout-description}
-The RPP board has been designed with strict Automotive standards and safety in
-mind. The components and pins are placed in sections and wires are routed in a
-way to avoid any significant electromagnetic interference.
-
-As can be seen on Figure \ref{board_photo}, the high power output logic is
-placed in the top left corner, the low power output logic is placed on the
-bottom left corner, while the communication logic is placed on the top right
-corner.  In the middle there is the only one button available, the reset button
-and below it is placed the TMS570 MCU itself. In the bottom right corner there
-are components of analog inputs.
-
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=300px]{images/board-photo.png}
-\caption{The RPP board (signal connector missing).}
-\label{board_photo}
-\end{center}\end{figure}
-
-
-\subsection{Connectors pinout}
-\label{sec-connector-pinout}
-The pinout of the board, described by the Figure \ref{pinout}, follows the
-layout described in the previous section. The side connectors for communication
-(24 pins), signals (56 pins) and power (24 pins) are automotive approved
-humidity resistant connectors.
-
-\begin{figure}[H]
-\includegraphics[width=\textwidth]{images/pinout.pdf}
-\caption{The RPP connectors pinout.}
-\label{pinout}
-\end{figure}
-
-\subsection{Modules description}
-\label{sec-modules-description}
-This section enumerates the capabilities of the hardware modules from Software
-perspective. The block diagram of the modules can be seen in Figure
-\ref{blocks}.
-
-\begin{figure}[H]
-\includegraphics[width=\textwidth]{images/blocks.pdf}
-\caption{The RPP layer modules.}
-\label{blocks}
-\end{figure}
-
-\subsubsection{Logic IO}
-\label{sec-logic-io}
-
-\paragraph{Digital Inputs (DIN)}
-\label{par-digital-inputs}
-\begin{compactitem}
-       \item 16 pins available on Signal Connector.
-       \item Pins 8-15 status can be read via GPIO using configurable
-threshold.  \newline{} Pins 8-11 use variable threshold B and pins 12-15 use
-variable threshold A.
-       \item Variable threshold is a DAC chip MCP4922.
-       \item All pins are read at once via SPI (fixed threshold) using chip
-MC33972.
-       \item 0-7 are programmable pins and can be set to pull-up or
-pull-down. 8-15 are pull-down only.
-       \item All pins can be set to be active or tri-stated.
-       \item All pins can be set to trigger interrupt.
-       \item On-line diagnostic of broken wire.
-\end{compactitem}
-
-\paragraph{Digital Outputs (LOUT)}
-\label{par-digital-outputs}
-\begin{compactitem}
-       \item 8 pins available on Signal Connector.
-       \item Pins for logic output only, up to 100mA.
-       \item All pins are set at once using a chip through SPI.
-\end{compactitem}
-
-\paragraph{Analog Input (ADC)}
-\label{par-analog-input}
-\begin{compactitem}
-       \item 12 channels available.
-       \item Differential inputs, thus 24 pins available on Signal Connector.
-       \item Range for 0-20 volts.
-       \item 12 bits resolution.
-       \item Using CPU ADC.
-\end{compactitem}
-
-\paragraph{Analog Output (DAC)}
-\label{par-analog-output}
-\begin{compactitem}
-       \item 4 pins available on Signal Connector.
-       \item Output range is 0-12 volts.
-       \item Using 2 x MCP4922 DACs controlled using SPI.
-       \item Resolution is 12 bits. But because of amplification and voltage
-reference not all range is used.
-\end{compactitem}
-
-\subsubsection{Power Output}
-\label{sec-power-output}
-\paragraph{H-Bridge (HBR)}
-\label{par-hbr}
-\begin{compactitem}
-       \item 1 port (2 pins) available on Power Connector.
-       \item Communication is done through SPI.
-       \item H-Bridge can be enabled or disabled.
-       \item Current direction can be set.
-       \item PWM control with 1\% resolution change of the duty cycle.
-       \item Port can drive load up to 10A.
-\end{compactitem}
-
-\paragraph{Power Output (MOUT)}
-\label{par-power-output}
-\begin{compactitem}
-       \item 6 pins available on Power Connector.
-       \item Pins can drive a load up to 2A. Push/Pull.
-       \item Pins are set using 6 CPU output GPIOs. Diagnostic are read using 6
-externally pulled-up open-drain input GPIOs.
-       \item On-line diagnostics. Driver chip will pull-down the corresponding
-diagnostic pin on the CPU.  
-\end{compactitem}
-
-\paragraph{High-Power Output (HOUT)}
-\label{par-high-power-output}
-\begin{compactitem}
-       \item 6 pins available on Power Connector.
-       \item Pins can be set ON/OFF.
-       \item Pins can drive a load up to 10A with PWM.
-       \item System can read analog values of current flowing (IFBK).
-       \item System can read diagnostics values (DIAG). Detection of a fault
-condition.  
-\end{compactitem}
-
-\subsubsection{Communication}
-\label{sec-communication}
-\paragraph{CAN bus (CAN)}
-\label{par-can}
-\begin{compactitem}
-       \item 3 ports available (CAN uses differential signaling) thus 6 pins
-are available on Communication connector.
-       \item High speed.
-       \item Recover from error.
-       \item Detection of network errors.
-\end{compactitem}
-
-\paragraph{Local Interconnect Network (LIN)}
-\label{par-lin}
-\begin{compactitem}
-       \item 2 ports/pins available on Communication Connector.
-       \item Only first port can be used when using the SCI. Second port is
-shared with SCI.  
-\end{compactitem}
-
-\paragraph{FlexRay (FR)}
-\label{par-flexray}
-\begin{compactitem}
-       \item 2 ports available. FlexRay uses differential signaling thus 4 pins
-are available on Communication Connector.
-\end{compactitem}
-
-\paragraph{Serial Comm. Interface (SCI)}
-\label{par-sci}
-\begin{compactitem}
-       \item 1 port available inside the box on SCI connector (4 pins).
-       \item Variable baud rate. Tested on 9600 and 115200.
-       \item RS232 standard compatible.
-\end{compactitem}
-
-\paragraph{Ethernet (ETH)}
-\label{par-eth}
-\begin{compactitem}
-       \item 1 port available. Standard Ethernet connector available inside box.
-\end{compactitem}
-
-\subsubsection{Data storage/logging}
-\label{sec-data-storage}
-\paragraph{External Memory SD-RAM (SDR)}
-\label{par-external-memory}
-\begin{compactitem}
-       \item 64MB (currently installed) external RAM used for logging. Maximal
-supported capacity is 256MB.
-       \item Memory test routine available with test
-Software.
-\end{compactitem}
-
-\paragraph{SD Card (SDC)}
-\label{par-sd-card}
-\begin{compactitem}
-       \item Standard SD-Card connector or microSD connector available inside box.
-       \item Communication done using SPI.
-\end{compactitem}
+\texttt{$\langle$rpp\_lib$\rangle$/rpp/src/rpp} and the header files can
+be found in \texttt{$\langle$rpp\_lib$\rangle$/rpp/include/rpp}.
 
 \section{Document structure}
 \label{sec-document-structure}
 The structure of this document is as follows:
-Chapter~\ref{chap-getting-started} gets you started using the RPP.
-Chapter~\ref{chap-c-support-library} describes the RPP library.
-Chapter~\ref{chap-simulink-coder-target} covers the Simulink code
-generation target and finally Chapter~\ref{chap-rpp-test-software}
-documents a tool for interactive testing of RPP functionality.
+Chapter~\ref{chap-getting-started} gets you started using the RPP
+software. Chapter~\ref{chap-c-support-library} describes the RPP
+library. Chapter~\ref{chap-simulink-coder-target} covers the Simulink
+code generation target and finally
+Chapter~\ref{chap-rpp-test-software} documents a tool for interactive
+testing of the RPP functionality.
 
 \chapter{Getting started}
 \label{chap-getting-started}
 
 \section{Software requirements}
 \label{sec-software-requirements}
-The RPP software stack has been developed to be functional on Windows and
-Linux platforms. The following subsections mention the recommended
-versions of the required software tools/packages.
+The RPP software stack can be used on Windows and Linux platforms. The
+following subsections mention the recommended versions of the required
+software tools/packages.
 
 \subsection{Linux environment} 
 \label{sec-linux-environment}
@@ -577,29 +495,27 @@ example).
 \label{sec-ti-ccs}
 Code Composer Studio (CCS) is the official Integrated Development Environment
 (IDE) for developing applications for Texas Instruments embedded processors. CCS
-is multiplatform Software based on
-Eclipse Open Source IDE.
+is multiplatform software based on
+Eclipse open source IDE.
 
 CCS includes Texas Instruments Code Generation Tools (CGT)
 \cite{armoptimizingccppcompiler2012, armassemblylanguagetools2012}
-(compiler, linker, etc). Simulink code generation requires the CGT to be
-available in the system, and thus, even if no library development
-will be done or the IDE is not going to be used CCS is still required.
+(compiler, linker, etc). Simulink code generation target requires the
+CGT to be available in the system, and thus, even if no library
+development will be done or the IDE is not going to be used CCS is
+still required.
 
 You can find documentation for CGT compiler in \cite{armoptimizingccppcompiler2012} and
 for CGT archiver in \cite{armassemblylanguagetools2012}.
 
 \subsubsection{Installation on Linux} 
 \label{sec-installation-on-linux}
-Download CCS for Linux from:
-
-       \begin{quotation}
+Download CCS for Linux from:\\
 \url{http://processors.wiki.ti.com/index.php/Category:Code\_Composer\_Studio\_v5}
-       \end{quotation}
 
-Once downloaded, add executable permission to the installation file and launch
-the installation by executing it. Installation must be done as root in order to
-install a driver set.
+Once downloaded, add executable permission to the installation file
+and launch the installation by executing it. Installation must be done
+by the root user in order to install a driver set.
 
 \lstset{language=bash}
 \begin{lstlisting}
@@ -616,7 +532,8 @@ cd <ccs>/ccsv5/eclipse/
 \end{lstlisting}
 
 The first launch on 64bits systems might fail. This can happen because CCS5 is
-32b application and thus requires 32bits libraries:
+a 32 bit application and thus requires 32 bit libraries. They can be
+installed by:
 
 \lstset{language=bash}
 \begin{lstlisting}
@@ -627,30 +544,24 @@ If the application crashes with a segmentation fault edit file:
 
 \lstset{language=bash}
 \begin{lstlisting}
-nano
-<ccs>/ccsv5/eclipse/plugins/com.ti.ccstudio.branding_<version>/plugin_customization.ini
+nano <ccs>/ccsv5/eclipse/plugins/com.ti.ccstudio.branding_<version>/plugin_customization.ini
 \end{lstlisting}
 
-And change key \textsc{org.eclipse.ui/showIntro} to false.
+And change key \texttt{org.eclipse.ui/showIntro} to \texttt{false}.
 
 \subsubsection{Installation on Windows}
 \label{sec-installation-on-windows}
-The installation for Windows is more straightforward than the previous procedure
-for Linux.
-
-Download CCS for Windows from:
-
-       \begin{quotation}
+Installation for Windows is more straightforward than the installation
+procedure for Linux. Download CCS for Windows from:\\
 \url{http://processors.wiki.ti.com/index.php/Category:Code\_Composer\_Studio\_v5}
-       \end{quotation}
 
 Once downloaded run the ccs\_setup\_5.5.0.00077.exe and install the CCS.
 
 \subsubsection{First launch} 
 \label{sec-first-launch}
-If no other licence is available, choose ``FREE License -- for use with XDS100
-JTAG Emulators'' from the licensing options. Code download for the board is using
-that particular hardware.
+If no other licence is available, choose ``FREE License -- for use
+with XDS100 JTAG Emulators'' from the licensing options. Code download
+for the board uses the XDS100 hardware.
 
 \subsection{Matlab/Simulink}
 \label{sec-matlab-simulink}
@@ -658,25 +569,30 @@ Matlab Simulink is a set of tools, runtime environment and development
 environment for Model--Based \cite{modelbasedwiki2013} applications development,
 simulations and generation code for target platforms.  Supported Matlab Simulink
 version is R2013b for 64 bits Linux and Windows. A licence for an Embedded Coder is
-necessary to be able to generate code from models, containing RPP blocks.
+necessary to be able to generate code from Simulink models, containing RPP blocks.
 
 \subsection{HalCoGen}
 \label{sec-halcogen}
 HalCoGen (HAL Code Generator) is a tool for graphical configuration of peripherals, clocks, interrupts and other MCU parameters. It generates C code which can be imported to the Code Composer Studio.
 
 The tool is available for Windows at 
-       \begin{quotation}
+\begin{quotation}
 \url{http://www.ti.com/tool/halcogen?keyMatch=halcogen&tisearch=Search-EN}
-       \end{quotation}
+\end{quotation}
 
-The HalCoGen has been used in early development stage to generate the base code for some of the peripheral. The trend is to not to use the HalCoGen any more, because the generated code is not reliable enough for safety application. Anyway it is sometimes helpful to use it as a reference.
+The HalCoGen has been used in early development stage of the RPP
+project to generate the base code for some of the peripheral. The
+trend is to not to use the HalCoGen any more, because the generated
+code is not reliable enough for safety application. Anyway it is
+sometimes helpful to use it as a reference.
 
-The HalCoGen is distributed for Windows only, but can be run on Linux with Wine 1.6.2.
+The HalCoGen is distributed for Windows only, but can be run on Linux
+under Wine (test with version 1.6.2).
 
 \subsection{GtkTerm and Bray Terminal}
 \label{sec-gtkterm-bray-terminal}
 Most of the interaction with the board is done through a RS-232 serial
-connection. The terminal Software used for communication is called GtkTerm for
+connection. The terminal software used for communication is called GtkTerm for
 Linux and Bray terminal for Windows.
 
 To install GtkTerm execute:
@@ -687,11 +603,8 @@ sudo apt-get install gtkterm
 \end{lstlisting}
 
 The Bray Terminal does not require any installation and the executable file is
-available at 
-
-\begin{quotation}
+available at\\
 \url{https://sites.google.com/site/terminalbpp/}
-\end{quotation}
 
 \subsection{C Compiler}
 \label{sec-c-compiler}
@@ -706,99 +619,105 @@ command
 sudo apt-get install gcc
 \end{lstlisting}
 
-For Windows, the C/C++ compiler is a part of Windows SDK, which installation
-file is available at 
-
-\begin{quotation}
+For Windows, the C/C++ compiler is a part of Windows SDK, which is available from\\
 \url{http://www.microsoft.com/en-us/download/details.aspx?id=8279}
-\end{quotation}
 
-\section{Project Installation}
+\section{Project installation}
 \label{sec-project-installation}
-The RPP project is distributed in three packages and a standalone pdf file,
-containing this documentation. Every package is named like
-\textsc{package\_name-version.zip}. The three packages are: 
+The RPP software is distributed in three packages and a standalone pdf
+file containing this documentation. Every package is named like
+\emph{$\langle$package\_name$\rangle$-version.zip}. The three packages
+are:
 
 \begin{description}
-       \item[rpp-lib] Contains the source codes of the RPP Library,
-described in Chapter \ref{chap-c-support-library}. If you want to make any
-changes in the drivers or RPP API, this library has to be compiled and linked
-with the other two applications in the other two packages. The compile procedure
-can be found in Section \ref{sec-compilation}.  
-       \item[rpp-simulink] Contains source codes of the Matlab Simulink blocks, demo
-models and scripts for downloading the resulting firmware to the target from the
-Matlab Simulink. Details can be found in Chapter \ref{chap-simulink-coder-target}.
-
-The package also contains the binary file of the RPP Library and all headers and
-other files necessary for building and downloading the models.
-       \item[rpp-test-sw]  Contains an application for rapid testing and direct
-controlling the RPP board over the Serial Interface.
-
-The package also contains the binary file of the RPP Library and all headers and
-other files necessary for building and downloading the application.
+\item[rpp-lib] Contains the source code of the RPP library, described
+  in Chapter \ref{chap-c-support-library}. If you want to make any
+  changes in the drivers or RPP API, this library has to be compiled
+  and linked with applications in the other two packages. The compile
+  procedure can be found in Section \ref{sec-compilation}.
+\item[rpp-simulink] Contains the source code of Matlab Simulink
+  blocks, demo models and scripts for downloading the generated
+  firmware to the target from Matlab/Simulink. Details can be
+  found in Chapter \ref{chap-simulink-coder-target}.
+
+  The package also contains the binary of the RPP Library and all
+  headers and other files necessary for building and downloading the
+  models.
+\item[rpp-test-sw] Contains an application for interactive testing and
+  control of the RPP board over the serial interface. Details can be
+  found in Chapter~\ref{chap-rpp-test-software}.
+
+  The package also contains the binary of the RPP Library and all
+  headers and other files necessary for building and downloading the
+  application.
 \end{description}
 
+The following sections describe how to start working with individual
+packages.
+
 \subsection{rpp-lib}
 \label{sec-rpp-lib-installation}
-You may not need to deal with this package at all because the compiled library is
-distributed with the applications. But in case of contributions or further
-development done by your team, this subsection describes how to open the project
-in development environment and how to use the resulting static library in an
-application.
+
+This section describes how to open the rpp-lib project in Code
+Composer Studio and how to use the resulting static library in an
+application. This is only necessary if you need to modify the library
+for some reason.
 
 \begin{enumerate}
-       \item Unzip the \textsc{rpp-lib-version.zip} file.
+       \item Unzip the \texttt{rpp-lib-version.zip} file.
        \item Open the Code Composer Studio (see Section \ref{sec-ti-ccs}).
-       \item Follow the procedure for openning the projects in CCS in Section
-\ref{sec-openning-of-existing-project} and open the rpp-lib project.  \item
-Compile the static library using a procedure in Section \ref{sec-compilation}.
-The binary file will appear in the project root directory.
-       \item Copy the binary file to the application, where you want to test
-and use the new library version.  
-       \begin{itemize}
-               \item In the rpp-simulink application the library binary file is
-present in \textsc{rpp/lib} folder. 
-               \item In the rpp-test-sw application the library binary file is
-present in \textsc{rpp-lib} folder.  
-       \end{itemize}
+       \item Import the rpp-lib project as described in
+      Section~\ref{sec-openning-of-existing-project}.
+    \item Compile the static library using the procedure from Section
+      \ref{sec-compilation}. The compiled library \texttt{rpp-lib.lib}
+      will appear in the project root directory.
+       \item Copy the compiled library to the application, where you want
+      to test and use the new library version.
+      \begin{itemize}
+      \item In the rpp-simulink application the library is located in
+        the \texttt{rpp/lib} folder.
+      \item In the rpp-test-sw application the library is located in
+        \texttt{rpp-lib} folder.
+      \end{itemize}
 \end{enumerate}
 
 \subsection{rpp-simulink}
 \label{sec-rpp-simulink-installation}
-If you want to access the demo models or build your own models using the RPP blocks, if
-you want to generate a C code from the models, build it to a binary firmware for the RPP board and download it to the real hardware, follow these steps.
+This section describes how install the rpp-simulink project, which is
+needed to try the demo models or to build your own models that use RPP
+blocks.
 
 \begin{enumerate}
-       \item Unzip the \textsc{rpp-simulink-version.zip} file.
-       \item Follow the procedure in Section
-\ref{sec-configuration-simulink-for-rpp} for configuring the Matlab Simulink for
-the RPP project.  
-       \item Follow the procedure in Section \ref{sec-crating-new-model} for
-instruction about creating your own model which will be using the RPP Simulink
-blocks or follow the instructions in Section \ref{sec-running-model-on-hw}
-for downloading the firmware to the real RPP hardware.
+\item Unzip the \texttt{rpp-simulink-version.zip} file.
+\item Follow the procedure  from Section
+  \ref{sec-configuration-simulink-for-rpp} for configuring Matlab
+  Simulink for the RPP project.
+\item Follow the procedure from Section \ref{sec-crating-new-model}
+  for instruction about creating your own model which will use the RPP
+  Simulink blocks or follow the instructions in
+  Section~\ref{sec-running-model-on-hw} for downloading the firmware
+  to the real RPP hardware.
 \end{enumerate}
 
 \subsection{rpp-test-sw}
 \label{sec-test-sw-installation}
-If you want a direct control over the hardware for example to test your
-modifications in the RPP Library follow this procedure for the rpp-test-sw
-application installation.
+This section describes how to install and run the application that
+allows you to interactively control the RPP hardware. This can be
+useful, for example, to test your modifications of the RPP library.
 
 \begin{enumerate}
-       \item Unzip the \textsc{rpp-test-sw-version.zip} file.
+       \item Unzip the \texttt{rpp-test-sw-version.zip} file.
        \item Open the Code Composer Studio (see Section \ref{sec-ti-ccs}).
-       \item Follow the procedure for openning the projects in CCS in Section
-\ref{sec-openning-of-existing-project} and open both, the \textsc{rpp-lib} and
-the \textsc{rpp-test-sw} projects.  
-       \item Right click on the \textsc{rpp-test-sw} project in the
-\textsc{Project Explorer} and select \textsc{Build Project}. Ignore any errors
-in the \textsc{rpp-lib} project.  
-       \item Follow the instructions in Section
-\ref{sec-running-software-on-hw} to download, debug and run the software on the
-target hardware. CCS will ask you wether to proceed with the detected errors in
-\textsc{rpp-lib} project. Do not mind them and click to the \textsc{Proceed} button
-to continue.
+       \item Follow the procedure for opening the projects in CCS in
+      Section \ref{sec-openning-of-existing-project} and open both
+      \texttt{rpp-lib} and \texttt{rpp-test-sw} projects.
+       \item Right click on the \texttt{rpp-test-sw} project in the
+      \textsc{Project Explorer} and select \textsc{Build Project}.
+       \item Follow the instructions in
+      Section~\ref{sec-running-software-on-hw} to download, debug and
+      run the software on the target hardware. If CCS asks you whether
+      to proceed with the detected errors in \texttt{rpp-lib} project.
+      Ignore them and click the \textsc{Proceed} button to continue.
 \end{enumerate}
 
 \section{Code Composer Studio usage}
@@ -806,19 +725,21 @@ to continue.
 
 \subsection{Opening of existing project}
 \label{sec-openning-of-existing-project}
-The project opening procedure is similar to standard Eclipse project opening.
+The procedure for opening a project is similar to opening a project in
+the standard Eclipse IDE.
 
 \begin{enumerate}
        \item Launch Code Composer Studio
        \item Select \textsc{File$\rightarrow$Import}
        \item In the dialog window select \textsc{Code Composer
-Studio$\rightarrow$Existing CCS Eclipse project} as an import source as depicted
-in Figure \ref{fig-import-project}.  
-       \item In the next dialog window click on
-\textsc{Browse} button and find the root directory of the project.
-       \item Select the requested project in the \textsc{Discovered project}
-section so that the result looks like in Figure \ref{fig-select-project}.  
-       \item Click on \textsc{Finish} button.
+        Studio$\rightarrow$Existing CCS Eclipse project} as an import
+      source (see Figure \ref{fig-import-project}).
+       \item In the next dialog window click on \textsc{Browse} button
+      and find the root directory of the project.
+    \item Select the requested project in the \textsc{Discovered
+        project} section so that the result looks like in Figure
+      \ref{fig-select-project}.
+    \item Click the \textsc{Finish} button.
 \end{enumerate}
 
 \begin{figure}[H]\begin{center}
@@ -835,61 +756,72 @@ section so that the result looks like in Figure \ref{fig-select-project}.
 
 \subsection{Creating new project}
 \label{sec-creating-new-project}
-In \textsc{\repo/rpp/lib/apps/} there are two RPP based
-applications, \textsc{helloworld} and \textsc{helloworld\_posix}, that are
-already configured for the RPP Library. It is advised that new applications use
-this project as a foundation.
+In \texttt{\repo/rpp/lib/apps/}, there are two simple RPP applications
+\texttt{helloworld} and \texttt{helloworld\_posix}, that are already
+configured for the RPP Library. It is advised that new applications
+use this project as a template.
 
-To create a new application copy this directory and rename it. Now open files
-\textsc{.project}, \textsc{.cproject} and \textsc{.ccsproject} (if available)
-and change any occurrence of the work \textsc{helloworld}
-with the name of your project. Use lower case ASCII letters and underscores only.
+To create a new application copy \texttt{helloworld} directory to a
+new location and rename it. Now open files \texttt{.project},
+\texttt{.cproject} and \texttt{.ccsproject} (if available) and change
+any occurrence of the word \texttt{helloworld} to the name of your new
+project. Use lower case ASCII letters and underscores only.
 
-\textbf{Steps to configure a new CCS (ARM, using CGT) RPP application:}
+\subsubsection{Steps to configure new RPP application in CCS:}
 
+Follow these steps to create an application for RM48 MCU compiled with
+CGT.
+\newpage
 \begin{compactenum}
-       \item Create a new CCS project. \newline{}
-\noindent\includegraphics[width=400px]{images/base_1.png}
-       \item Create a normal folder \textsc{include}.
-       \item Create a source folder \textsc{src}.
-       \item Add common \textsc{.gitignore} to the root of that project:
-\lstset{language=}
+\item Create a new CCS project.\\
+  \noindent\includegraphics[width=400px]{images/base_1.png}
+\item In \textsc{Project Explorer}, create normal folders
+  named \texttt{include} and \texttt{src}.
+\item If you use Git version control system, add \texttt{.gitignore}
+  file with the following content to the root of that project:
+  \lstset{language=}
 \begin{lstlisting}
 Debug
 Release
 .settings/*
 \end{lstlisting}
-\newpage
-       \item Add new variable \textsc{RPP\_LIB\_ROOT} and point to this
-repository branch root.\newline{}
-\noindent\includegraphics[width=400px]{images/base_2.png}
-       \item Add \textsc{rpp-lib.lib} static library to linker libraries and
-add \textsc{RPP\_LIB\_ROOT} to the library search path.\newline{}
+  \newpage
+\item In project \textsc{Properties}, add new variable
+  \texttt{RPP\_LIB\_ROOT} and point to this repository branch
+  root.\\
+  \noindent\includegraphics[width=400px]{images/base_2.png}
+\item Add \texttt{rpp-lib.lib} static library to list of linked
+  libraries and add \texttt{RPP\_LIB\_ROOT} to the library search
+  path.\newline{}
 \noindent\includegraphics[width=400px]{images/base_3.png}
 \newpage
-       \item Configure linker to retain \textsc{.intvecs} from RPP static
-library.\newline{} \noindent\includegraphics[width=350px]{images/base_4.png}
+\item Configure linker to retain the \texttt{.intvecs} section
+  from the RPP library.\\
+  \noindent\includegraphics[width=350px]{images/base_4.png}
        \item Configure compiler to include local includes, OS includes for
-TMS570 and RPP includes, in that order\todo{Add lwip include paths as
-well}.\newline{}
+RM48 and RPP includes, in that order.\newline{}
 \noindent\includegraphics[width=350px]{images/base_5.png}
 \newpage
        \item Configure compiler to allow GCC extensions.\newline{}
 \noindent\includegraphics[width=400px]{images/base_6.png}
-       \item Import and link (\underline{do not copy!}) linker file and board
-upload descriptor.\newline{}
+\item Import and link (\emph{do not copy!}) linker file
+  \texttt{RM48L952FlashLnk.cmd} and board upload
+  descriptor.\\ % TODO Ktere soubory to jsou a jak se
+  % na windows linkuje?
 \noindent\includegraphics[width=200px]{images/base_7.png}
 \end{compactenum}
 
-\textbf{Steps to configure a new GCC (x86(\_64)) RPP simulated application:}
+\subsubsection{Steps to configure new POSIX application:}
+Such an application can be used to test certain FreeRTOS features on
+Linux and can be compiled with a native GCC compiler.
 
 \begin{compactenum}
        \item Create a new managed C project that uses Linux GCC toolchain.
-       \item Create a source folder \textsc{src}. Link all files from original
+       \item Create a source folder \texttt{src}. Link all files from original
 CCS application to this folder.
-       \item Create a normal folder \textsc{include}. Create a folder
-\textsc{rpp} inside of it.  
-       \item Add common \textsc{.gitignore} to the root of that project:
+       \item Create a normal folder \texttt{include}. Create a folder
+\texttt{rpp} inside of it.  
+       \item Add common \texttt{.gitignore} to the root of that project:
 \lstset{language=}
 \begin{lstlisting}
 Debug
@@ -897,41 +829,44 @@ Release
 .settings/*
 \end{lstlisting}
 \newpage
-       \item Add new variable \textsc{RPP\_LIB\_ROOT} and point to this
+       \item Add new variable \texttt{RPP\_LIB\_ROOT} and point to this
 repository branch root.\newline{}
 \noindent\includegraphics[width=400px]{images/base_posix_1.png}
        \item Configure compiler to include local includes, CCS application
 includes, OS includes for POSIX and RPP includes, in that order.\newline{}
 \noindent\includegraphics[width=400px]{images/base_posix_2.png}
 \newpage
-       \item Add \textsc{rpp} and \textsc{pthread}to linker libraries and add
-\textsc{RPP\_LIB\_ROOT} to the library search path.\newline{}
+       \item Add \texttt{rpp} and \texttt{pthread} to linker libraries and add
+\texttt{RPP\_LIB\_ROOT} to the library search path.\newline{}
 \noindent\includegraphics[width=400px]{images/base_posix_3.png}
 \end{compactenum}
 
-\textbf{In general any RPP application uses the layout/template:}
+\subsubsection{Content of the application}
 
 \begin{enumerate}
-       \item Include RPP library header file. You may also include only a
-selected modules to save space.  \lstset{language=c++}
+\item Include RPP library header file. 
+  \lstset{language=c++}
 \begin{lstlisting}
 #include "rpp/rpp.h"
 \end{lstlisting}
 
-You may not want to include the whole library to save space and compile time. In
-this case you may include only those modules, that you want to use. Inclusion
-selected modules only requires two more
-header files to be included as well: base.h and, in case sci is used for printing, rpp/sci.h.
+  If you want to reduce the size of the final application, you can
+  include only the headers of the needed modules. In that case, you
+  need to include two additional headers: \texttt{base.h} and, in case
+  when SCI is used for printing, \texttt{rpp/sci.h}.
 \begin{lstlisting}
 #include "rpp/hbr.h" /* We want to use H-bridge */
-#include <base.h>      /* This is a necessary base header file of the rpp library. */
-#include "rpp/sci.h" /* This is needed, because we are using rpp_sci_printf in following examples. */
+#include <base.h>      /* This is the necessary base header file of the rpp library. */
+#include "rpp/sci.h" /* This is needed, because we use rpp_sci_printf in following examples. */
 \end{lstlisting}
 
 \newpage
-\item Create one or as many FreeRTOS task function definitions as required. Those tasks should use
-  functions from this library.
-\lstset{language=c++}
+\item Create one or as many FreeRTOS task function definitions as
+  required. Those tasks can use functions from the RPP library. Beware
+  that currently not all RPP functions are
+  reentrant\footnote{Determining which functions are not reentrant and
+    marking them as such (or making them reentrant) is planned as
+    future work.}. \lstset{language=c++}
 \begin{lstlisting}
 void my_task(void* p)
 {
@@ -950,11 +885,12 @@ void my_task(void* p)
        \item Initialize the RPP board. If you have included only selected
 modules in step 1, initialize only those modules by calling their init
 functions, for
-example rpp\_hbr\_init\(\).
+example \texttt{rpp\_hbr\_init\(\)}.
        \item Spawn the tasks the application requires. Refer to FreeRTOS API
 for details.
-       \item Start the FreeRTOS Scheduler. Refer to FreeRTOS API for details.
-       \item Catch if idle task could not be created.
+\item Start the FreeRTOS Scheduler. Refer to FreeRTOS API for details
+  \cite{freertosapi}.
+       \item Handle error when the FreeRTOS scheduler cannot be started.
 
 \lstset{language=c++}
 \begin{lstlisting}
@@ -965,7 +901,7 @@ void main(void)
         rpp_init();
     /* In case only selected modules are included: */
         /* Initialize HBR */
-           rpp_hbr_init();
+        rpp_hbr_init();
         /* Initialize sci for printf */
         rpp_sci_init();
         /* Enable interrups */
@@ -998,10 +934,10 @@ void main(void)
  \end{itemize}
 \item Create hook functions for FreeRTOS:
  \begin{itemize}
- \item \textsc{vApplicationMallocFailedHook()} allows to catch memory allocation
+ \item \texttt{vApplicationMallocFailedHook()} allows to catch memory allocation
 errors.
- \item \textsc{vApplicationStackOverflowHook()} allows to catch if a task
-overflows it's stack.
+\item \texttt{vApplicationStackOverflowHook()} allows to catch stack
+  overflow errors.
 
 \lstset{language=c++}
 \begin{lstlisting}
@@ -1039,7 +975,7 @@ void vApplicationStackOverflowHook(xTaskHandle xTask,
 \end{enumerate}
 
 
-\subsection{Running the software on the HW}
+\subsection{Downloading and running the software}
 \label{sec-running-software-on-hw}
 \subsubsection{Code Composer Studio Project}
 \label{sec-ccs-run-project}
@@ -1050,21 +986,21 @@ can be easily downloaded to the target hardware with the following procedure:
 
 \begin{enumerate}
        \item Connect the Texas Instruments XDS100v2 USB emulator to the JTAG
-port (see Figure \ref{pinout}, port 1).  
+port.  
        \item Connect a USB cable to the XDS100v2 USB emulator and the
 development computer.
        \item Plug in the power supply.  
        \item In the Code Composer Studio click on the
 \textsc{Run$\rightarrow$Debug}. The project will  be optionally built and
 the download process will start. The Code Composer Studio will switch into the debug
-mode, when the download is finished.
+perspective, when the download is finished.
        \item Run the program by clicking on the \textsc{Run} button, with the
 green arrow.  
 \end{enumerate}
 
 \subsubsection{Binary File}
 \label{sec-binary-file}
-If the application is distributed as a binary file, without source codes and CCS
+If the application is distributed as a binary file, without source code and CCS
 project files, you can download and run just the binary file by creating a new
 empty CCS project and configuring the debug session according to the following
 procedure:
@@ -1074,32 +1010,32 @@ procedure:
 \textsc{File$\rightarrow$New$\rightarrow$CCS Project}.  
        \item In the dialog window, type in a project name, for example
 myBinaryLoad, Select \textsc{Device
-variant} (ARM, Cortex R, TMS570LS3137, Texas Instruments XDS100v2 USB Emulator)
+variant} (ARM, Cortex R, RM48L952, Texas Instruments XDS100v2 USB Emulator)
 and select project template to \textsc{Empty Project}. The filled dialog should
-look like on the Figure \ref{fig-new-empty-project}
-       \item Click on the \textsc{Finish} button and new empty project will be
-created.  
-       \item In the \textsc{Project Explorer} click on the project with a right
-mouse button and in the context menu select \textsc{Debug
-as$\rightarrow$Debug configurations}.
-       \item Click on a button \textsc{New launch configuration}
-       \item Rename the New\_configuration, for example to myConfiguration.
+look like in Figure~\ref{fig-new-empty-project}
+\item Click on the \textsc{Finish} button and a new empty project will
+  be created.
+\item In the \textsc{Project Explorer} right-click on the project and
+  select \textsc{Debug as$\rightarrow$Debug configurations}.
+       \item Click  \textsc{New launch configuration} button
+       \item Rename the New\_configuration to, for example, myConfiguration.
        \item Select configuration target file by clicking the \textsc{File
-System} button, finding and selecting the TMS5703137.ccxml file. The result
-should look like on the Figure \ref{fig-debug-conf-main-diag}.  
-       \item On the \textsc{program} pane select the binary file you want to
-download to the board.
-Click on the \textsc{File System} button, find and select the binary file.
-Rpp-test-sw.out for example. The result should look like on the Figure
-\ref{fig-debug-conf-program-diag}.
+System} button, finding and selecting the \texttt{RM48L952.ccxml} file. The result
+should look like in Figure~\ref{fig-debug-conf-main-diag}.  
+\item In the \textsc{program} pane select the binary file you want to
+  download to the board. Click on the \textsc{File System} button,
+  find and select the binary file. Try, for example
+  \texttt{rpp-test-sw.out}. The result should look like in
+  Figure~\ref{fig-debug-conf-program-diag}.
        \item You may also tune the target configuration like in the Section
 \ref{sec-target-configuration}. 
-       \item Finish the configuration by clicking on the \textsc{Apply} button
-and download the code by clicking on the \textsc{Debug} button. You can later
-invoke the download also from the \textsc{Run$\rightarrow$Debug} CCS menu. You
-may not need to create more Debug configurations and CCS empty projects as you
-can easily change the binary file in the Debug configuration to load different
-binary file.  
+\item Finish the configuration by clicking on the \textsc{Apply}
+  button and download the code by clicking on the \textsc{Debug}
+  button. You can later invoke the download also from the
+  \textsc{Run$\rightarrow$Debug} CCS menu. It is not necessary to
+  create more Debug configurations and CCS empty projects as you can
+  easily change the binary file in the Debug configuration to load a
+  different binary file.
 \end{enumerate}
 
 \begin{figure}[H]\begin{center}
@@ -1116,9 +1052,9 @@ binary file.
 
 \subsection{Target configuration}
 \label{sec-target-configuration}
-Default target configuration erases the whole Flash memory, before downloading
-the code. This is however not needed in most cases. You may disable this feature
-by the following procedure: 
+Default target configuration erases the whole Flash memory, before
+downloading the code. This takes long time and in most cases it is
+necessary. You may disable this feature by the following procedure:
 \begin{enumerate}
        \item Right click on the project name in the \textsc{Project Browser}
        \item Select \textsc{Debug as$\rightarrow$Debug Configurations}
@@ -1137,19 +1073,27 @@ and close the dialog.
 
 \section{Matlab Simulink usage}
 \label{sec-matlab-simulink-usage}
+This section describes the basic tasks for working with the RPP code
+generation target for Simulink. For a more detailed description of the
+code generation target refer to
+Chapter~\ref{chap-simulink-coder-target}.
 
 \subsection{Configuring Simulink for RPP}
 \label{sec-configuration-simulink-for-rpp}
-Before any work or experiments with the RPP blocks and models can be done, the RPP target has to be configured to be able to find the ARM compiler, C compiler and some necessary files. Also the S-Functions of the blocks have to be compiled by the mex tool.
+Before any work or experiments with the RPP blocks and models, the RPP
+target has to be configured to be able to find the ARM cross-compiler,
+native C compiler and some other necessary files. Also the S-Functions
+of the blocks have to be compiled by the mex tool.
 \begin{enumerate}
-\item Download and install CCS for Linux:
+\item Download and install Code Composer Studio CCS (see
+  Section~\ref{sec-ti-ccs}).
+\item Install a C compiler. On Windows follow Section~\ref{sec-c-compiler}.
+\item On Windows you have to tell the \texttt{mex} which C compiler it
+  should use. In the Matlab command window run the \texttt{mex -setup}
+  command and select the native C compiler.
 
-Details on how to setup CCS are available in Section \ref{sec-ti-ccs}.
-
-\item On Windows you have to tell the \textsc{mex} which C compiler it should be using. Open the command line, run the \textsc{mex} tool from the Matlab installation folder and select the C compiler.
-
-\begin{lstlisting}[language=bash]
-C:\Program Files\MATLAB\R2013b\bin>mex -setup
+\begin{lstlisting}[basicstyle=\tt\footnotesize]
+>> mex -setup
 
 Welcome to mex -setup.  This utility will help you set up
 a default compiler.  For a list of supported compilers, see
@@ -1195,13 +1139,11 @@ Done . . .
            http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html
            Building with the -largeArrayDims option enables the new API.
 **************************************************************************
-
-C:\Program Files\MATLAB\R2013b\bin>
 \end{lstlisting}
 
-\item Install RPP Target:
+\item Configure the RPP code generation target:
 
-Open Matlab and type on command window:
+Open Matlab and in the command window run:
 
 \lstset{language=Matlab}
 \begin{lstlisting}
@@ -1210,54 +1152,55 @@ rpp_setup
 \end{lstlisting}
 
 This will launch the RPP setup script. This script will ask the user to provide
-the path to the CCS compiler root directory (the directory where \textsc{armcl}
+the path to the CCS compiler root directory (the directory where \texttt{armcl}
 binary is located), normally:
 
 \begin{verbatim}
 <ccs>/tools/compiler/arm_5.X.X/
 \end{verbatim}
 
-This script will, among other things, ask the user to provide the location of
-the armcl parent directory, infer and save some relevant CCS paths, add paths to
-Matlab path and build S-Function
-blocks for user's architecture (using Matlab's mex command line tool).
+Then Matlab path will be updated and block S-Functions will be built.
 
 \item Create new model or load a demo:
 
-Demos are located on \textsc{\repo/rpp/demo} or you can start a new model and
-configure target to RPP.  For new models see Section \ref{sec-crating-new-model} below.
+  Demos are located in \texttt{\repo/rpp/demos} or you can start a new
+  model and configure target to RPP. For new models see Section
+  \ref{sec-crating-new-model} below.
 \end{enumerate}
 
 
 \subsection{Working with demo models}
 \label{sec-openning-demo-models}
-The demo models are available from the directory \textsc{\repo/rpp/demos}. To
-access the demo models for reference or for downloading to the RPP board you
-have to change the directory to the one, containing the desired demo. For
-example to open the cantransmit demo you have to type these commands into the
-Matlab command line:
+The demo models are available from the directory
+\texttt{\repo/rpp/demos}. To access the demo models for reference or
+for downloading to the RPP board open them in Matlab. Use either the
+GUI or the following commands:
 
 \begin{lstlisting}[language=Matlab]
 cd <rpp-simulink>/rpp/demos
 open cantransmit.slx
 \end{lstlisting}
 
-The same procedure can be used to open any other models. To build the demo select
-\textsc{Code$\rightarrow$C/C++ Code $\rightarrow$Build Model}. This selection
-will generate the C code and build the binary firmware for the RPP board.
-To run the model on the target hardware see Section \ref{sec-running-model-on-hw}.
+The same procedure can be used to open any other models. To build the
+demo select \textsc{Code$\rightarrow$C/C++ Code $\rightarrow$Build
+  Model}. This will generate the C code and build the binary firmware
+for the RPP board. To run the model on the target hardware see
+Section~\ref{sec-running-model-on-hw}.
 
-\subsection{Creating new model}
+\subsection{Creating new model}
 \label{sec-crating-new-model}
 \begin{enumerate}
        \item Create a model by clicking \textsc{New$\rightarrow$Simulink Model}.
-       \item Open a configuration dialog by clicking \textsc{Simulation$\rightarrow$Model Configuration Parameters}.
+       \item Open the configuration dialog by clicking \textsc{Simulation$\rightarrow$Model Configuration Parameters}.
        \item The new Simulink model needs to be configured in the following way:
        \begin{compactitem}
        \item Solver (Figure \ref{fig-solver}):
         \begin{compactitem}
-        \item Options: \emph{Fixed-step, discrete}
-        \item Tasking mode set to \textit{SingleTasking}.
+        \item Solver type: \emph{Fixed-step}
+     \item Solver: \emph{discrete}
+     \item Fixed-step size: \emph{Sampling period in seconds. Minimum
+         is 0.001.}
+        \item Tasking mode: \textit{SingleTasking}.
           \begin{figure}
                 \centering
                 \includegraphics[width=400px]{images/simulink_solver.png}
@@ -1265,20 +1208,20 @@ To run the model on the target hardware see Section \ref{sec-running-model-on-hw
                 \label{fig-solver}
        \end{figure}
         \end{compactitem}
-       \item Diagnostics $\rightarrow$ Sample Time (Figure~\ref{fig-sample-time-settings}):
-        \begin{compactitem}
-        \item Disable warning source block specifies -1 sampling time. It's ok for the
-source blocks to run once per tick.
-          \begin{figure}
-                \centering
-                \includegraphics[width=400px]{images/simulink_diagnostics.png}
-                \caption{Sample Time settings}
-                \label{fig-sample-time-settings}
-       \end{figure}
-       \end{compactitem}
+%      \item Diagnostics $\rightarrow$ Sample Time (Figure~\ref{fig-sample-time-settings}):
+%       \begin{compactitem}
+%       \item Disable warning ``Source block specifies -1 sampling
+%        time''. It's ok for the source blocks to run once per tick.
+%         \begin{figure}
+%               \centering
+%               \includegraphics[width=400px]{images/simulink_diagnostics.png}
+%               \caption{Sample Time settings}
+%               \label{fig-sample-time-settings}
+%      \end{figure}
+%      \end{compactitem}
        \item Code generation (Figure~\ref{fig-code-gen-settings}):
         \begin{compactitem}
-        \item Set to \textsc{rpp.tlc}.
+        \item Set ``System target file'' to \texttt{rpp.tlc}.
           \begin{figure}
                 \centering
                 \includegraphics[width=400px]{images/simulink_code.png}
@@ -1293,7 +1236,7 @@ you want your generated code to appear, e.g.:
 cd /tmp/my-code
 \end{lstlisting}
   The code will be generated in a subdirectory of that directory. The name of
-the subdirectory will be \textsc{<model>\_rpp}, where \textsc{model} is the name
+the subdirectory will be \texttt{<model>\_rpp}, where \texttt{model} is the name
 of the Simulink model.
        \item Generate the code by choosing \textsc{Code $\rightarrow$ C/C++
 Code  $\rightarrow$ Build Model}.
@@ -1302,41 +1245,42 @@ Code  $\rightarrow$ Build Model}.
 If you want to run the model on the RPP board, see Section
 \ref{sec-running-model-on-hw}.
 
-\subsection{Running model on the RPP board}
+\subsection{Running models on the RPP board}
 \label{sec-running-model-on-hw}
 To run the model on the target RPP hardware you have to enable the download
-feature and build the model by following this procedure: \begin{enumerate}
-       \item Open the model you want to run (See Section
-\ref{sec-openning-demo-models}.)
+feature and build the model by following this procedure:
+ \begin{enumerate}
+       \item Open the model you want to run (see Section~\ref{sec-openning-demo-models}.)
        \item Click on \textsc{Simulation$\rightarrow$Model Configuration
 Parameters}.
        \item In the \textsc{Code Generation$\rightarrow$RPP Options} pane
 check \textsc{Download compiled binary to RPP} checkbox.
-       \item Click on \textsc{OK} button, connect the target HW to the computer
+       \item Click the \textsc{OK} button, connect the target HW to the computer
 like in the Section \ref{sec-ccs-run-project} and build the model by \textsc{Code $\rightarrow$ C/C++
 Code  $\rightarrow$ Build Model}. If the build
 ends with a success, the download process will start and once the downloading is
 finished, the application will run immediatelly.
 \end{enumerate}
 
-The code downloading is supported for Windows and Linux development systems. If
-you are using Linux, you may also try to use the OpenOCD by checking Use OpenOCD
-to download the compiled binary checkbox in addition. For more information about
-the OpenOCD configuration refer 
+\subsubsection{Using OpenOCD for downloading}
+\label{sec:using-open-downl}
 
-\begin{verbatim}
-http://rtime.felk.cvut.cz/hw/index.php/TMS570LS3137#OpenOCD_setup_and_Flashing
-\end{verbatim}
+On Linux systems, it is possible to use an alternative download
+mechanism based on the OpenOCD tool. This results in much shorter
+download times. Using OpenOCD is enabled by checking ``Use OpenOCD to
+download the compiled binary'' checkbox. For more information about
+the OpenOCD configuration refer to our
+wiki\footnote{\url{http://rtime.felk.cvut.cz/hw/index.php/TMS570LS3137\#OpenOCD_setup_and_Flashing}}.
+
+Note: You should close any ongoing Code Composer Studio debug sessions
+before downloading the generated code to the RPP board. Otherwise the
+download fails.
 
-Note: You should end the Code Composer Studio debug session before
-downloading the generated code to the RPP board. Otherwise the
-download will fail.
 \section{Configuring serial interface}
 \label{sec-configuration-serial-interface}
-The main interface for communicating with the RPP board is the serial interface.
-The application may define its own interface settings, but the following
-settings is the default one:
+The main mean for communication with the RPP board is the serial line.
+Each application may define its own serial line settings, but the
+following settings is the default one:
 
 \begin{itemize}
        \item Baudrate: 115200
@@ -1346,14 +1290,19 @@ settings is the default one:
        \item Flow control: none
 \end{itemize}
 
-Use GtkTerm in Linux or Bray Terminal for accessing the serial interface. See
-Section \ref{sec-hardware-description} for reference about the position of the
-serial interface connector on the RPP board.
+Use GtkTerm in Linux or Bray Terminal for accessing the serial
+interface. On TMDSRM48HDK, the serial line is tunneled over the USB
+cable. % See Section \ref{sec-hardware-description} for reference about
+% the position of the serial interface connector on the RPP board.
 
 \section{Bug reporting}
 \label{sec-bug-reporting}
 
-% TODO: implement
+Please report any problems to CTU's bug tracking system at
+\url{https://redmine.felk.cvut.cz/projects/eaton-rm48}. New users have
+to register in the system and notify Michal Sojka about their
+registration via $\langle{}sojkam1@fel.cvut.cz\rangle{}$ email
+address.
 
 \chapter{C Support Library}
 \label{chap-c-support-library}
@@ -1369,15 +1318,15 @@ working with the board. It includes drivers and an operating system.
 The library is
 designed from the board user perspective and exposes a simplified high-level API
 to handle the board's peripheral modules in a safe manner. The library is
-compiled as static library named \texttt{rpp-lib.lib} and can be found in
-\textsc{\repo/rpp/lib}.
+compiled as static library named \texttt{rpp-lib.lib} and can be found in
+\texttt{\repo/rpp/lib}.
 
 The RPP library can be used in any project, where the RPP hardware support is
 required and it is also used in two applications -- the Command line testing
 tool, described in Chapter \ref{chap-rpp-test-software}, and Simulink Coder
 target, described in Chapter \ref{chap-simulink-coder-target}.
 
-For details about the library architecture, refer Section \ref{sec-software-architecture}.
+For details about the library architecture, refer to Section~\ref{sec-software-architecture}.
 
 \section{API development guidelines}
 \label{sec-api-development-guidlines}
@@ -1395,188 +1344,185 @@ and intended for developers, not users. Documentation here is optional and at
 the discretion of the developer.
        \item Always use standard data types for IO when possible. Use custom
 structs as very last resort.  \item Use prefix based functions names to avoid
-clash. The prefix is of the form \textsc{$\langle$layer$\rangle$\_$\langle$module$\rangle$\_}, for example
-\textsc{rpp\_din\_update()} for the update function of the DIN module in the RPP
+clash. The prefix is of the form \texttt{$\langle$layer$\rangle$\_$\langle$module$\rangle$\_}, for example
+\texttt{rpp\_din\_update()} for the update function of the DIN module in the RPP
 Layer.  
        \item Be very careful about symbol export. Because it is used as a
 static library the modules should not export any symbol that is not intended to
-be used (function) or \textsc{extern}'ed (variable) from application. As a rule
+be used (function) or \texttt{extern}'ed (variable) from application. As a rule
 of thumb declare all global variables as static. 
        \item Only the RPP Layer symbols are available to user applications. All
 information related to lower layers is hidden for the application. This is
 accomplished by the inclusion of the rpp.h or rpp\_\{mnemonic\}.h file on the
 implementations files only and never on the interface files. Never expose any
 other layer to the application or to the whole system below the RPP layer. In
-other words, never \textsc{\#include "foo/foo.h"} in any RPP Layer interface
-file. 
+other words, never \texttt{\#include "foo/bar.h"} in any RPP Layer header
+file.
 \end{compactitem}
 
 \section{Coding style}
 \label{sec-coding-style}
-In order to keep the code as clean as possible, unified coding style
+In order to keep the code as clean as possible, unified coding style
 should be followed by any contributor to the code. The used coding
 style is based on the default configuration of Code Composer Studio
 editor. Most notable rule is that the Tab character is 4 spaces.
 
-The RPP library project is prepared for a usage of a program named
-Uncrustify. The Uncrustify program checks the code and fixes those
-lines that does not match the coding style. However, keep in mind that
-the program is not perfect and sometimes some lines can be modified
-even when the suggested coding style has been followed. This does not
-causes problems as long as the contributor follows the committing
-procedure described in next paragraph.
+The RPP library project is prepared for use of a tool named
+Uncrustify. The Uncrustify tool checks the code and fixes those lines
+that does not match the coding style. However, keep in mind that the
+program is not perfect and sometimes it can modify code where the
+suggested coding style has been followed. This does not causes
+problems as long as the contributor follows the committing procedure
+described in next paragraph.
 
-When contributing to the code, the contributor should learn the current coding
-style from the existing code. When a new feature is implemented, before
-committing to the repository, a command: 
+When contributing to the code, the contributor should learn the
+current coding style from existing code. When a new feature is
+implemented and committed to the local repository, the following
+commands should be called in Linux terminal:
 
-\lstset{language=bash}
-\begin{lstlisting}
+\begin{lstlisting}[language=bash]
 make uncrustify
+git diff
+\end{lstlisting}
+The first line command corrects many found coding style violations and
+the second command displays them. If the user agree with the
+modification, he/she should amend the last commit, for example by:
+\begin{lstlisting}[language=bash]
+git add --update
+git commit --amend
 \end{lstlisting}
-in a Linux terminal should be called. This command fixes any coding style
-errors. After that all changes can be committed.
 
 \section{Subdirectory content description}
 \label{sec-rpp-lib-subdirectory-content-description}
 \begin{description}
-\item[librpp.a and rpp-lib.lib] static RPP libraries.
-
-The first one is for POSIX simulation, the second one for Simulink models and
-other ARM/TMS570 applications. This files are placed here by the Makefile, when
-the library is built.
-
-       \item[apps/] Demo applications related to the RPP library.
-
-This include the CCS studio project for generating of the static library and
-a test suite. The test suit in this directory has nothing common with the test suite
-mentioned later in Chapter 5 and those two suits are going to be merged in the
-future. Also other Hello World applications are included as a reference about how 
-to create a TMS570 application.
-       \item[os/] OS layers directory. See OS interchangeable layer in Section
-\ref{sec-software-architecture} for more information.  
-       \item[rpp/] Main directory for the RPP Library.
-       \item[rpp/doc/] Documentation directory for the RPP Library API documentation.
-       \item[rpp/TMS570LS3137.ccxml] Descriptor for code download.
-
-This file is used by all the projects including the Simulink RPP Target for code
-download. It is configured to use the Texas Instruments XDS100v2 USB Emulator.
-       \item[rpp/TMS570LS313xFlashLnk.cmd] CGT Linker command file.
-
-This file is used by all applications linked for the RPP board, including the
-Simulink models, static library and test suite. It includes instructions for the
-CGT Linker on where to place sections and sizes of some sections.
-       \item[rpp/include/\{layer\} and rpp/src/\{layer\}] Interface files and
-implementations files for given \textsc{\{layer\}}. See Section
-\ref{sec-software-architecture} in Chapter \ref{chap-introduction} for details
-on the RPP Layer.  
-       \item[rpp/include/rpp/rpp.h] Main library header file.
-
-To use this library with all its modules, just include this file and this file
-only. Also, before using any library function call the \textsc{rpp\_init()}
-function for hardware initialization.
-       \item[rpp/include/rpp/rpp\_\{mnemonic\}.h] Header file for
-\textsc{\{mnemonic\}} module.
-
-This files includes function definitions, pin definitions, etc, specific to
-\{mnemonic\} module. See Section \ref{sec-api-development-guidlines}.
-
-You may include only selected \textsc{rpp\_\{mnemonic\}.h} header files and call the
-specific \textsc{rpp\_\{mnemonic\}\_init} functions, instead of the \textsc{rpp.h} and
-\textsc{rpp\_init} function, if you want to use only a subset of the library functions.
+\item[rpp-lib.lib and librpp.a] static RPP libraries.
+
+  The first one is the library for Simulink models and other ARM/RM48
+  applications, the other can be used for POSIX simulation. This files
+  are placed here by the Makefile, when the library is built.
+
+\item[apps/] Demo applications related to the RPP library.
+
+  This include the CCS studio project for generating of the static
+  library and a test suite. The test suit in this directory has
+  nothing common with the test suite described later in
+  Chapter~\ref{chap-rpp-test-software} and those two suits are going
+  to be merged in the future. Also other Hello World applications are
+  included as a reference about how to create an RM48 application.
+\item[os/] OS layers directory. See
+  Section~\ref{sec-operating-system-layer} for more information.
+  information.
+\item[rpp/] Main directory for the RPP library.
+\item[rpp/doc/] RPP Library API
+  documentation.
+\item[rpp/RM48L952FlashLnk.cmd] CGT Linker command file.
+
+  This file is used by all applications linked for the RPP board,
+  including the Simulink models and test suite. It includes
+  instructions for the CGT Linker about target memory layout and where
+  to place various code sections.
+\item[rpp/include/\{layer\} and rpp/src/\{layer\}] Interface files and
+  implementations files for given \texttt{\{layer\}}. See
+  Section~\ref{sec-software-architecture} for details on the RPP
+  Layer.
+\item[rpp/include/rpp/rpp.h] Main library header file.
+
+  To use this library with all its modules, just include this file
+  only. Also, before using any library function call the
+  \texttt{rpp\_init()} function for hardware initialization.
+\item[rpp/include/rpp/rpp\_\{mnemonic\}.h] Header file for
+  \texttt{\{mnemonic\}} module.
+
+  These files includes function definitions, pin definitions, etc,
+  specific to \{mnemonic\} module. See also
+  Section~\ref{sec-api-development-guidlines}.
+
+  If you want to use only a subset of library functions and make the
+  resulting binary smaller, you may include only selected
+  \texttt{rpp\_\{mnemonic\}.h} header files and call the specific
+  \texttt{rpp\_\{mnemonic\}\_init} functions, instead of the
+  \texttt{rpp.h} and \texttt{rpp\_init} function.
        \item[rpp/src/rpp/rpp\_\{mnemonic\}.c] Module implementation.
 
-Implementation of \textsc{rpp\_\{mnemonic\}.h}'s functions on top of the DRV
-library. 
+      Implementation of \texttt{rpp\_\{mnemonic\}.h}'s functions on
+      top of the DRV library.
        \item[rpp/src/rpp/rpp.c] Implementation of library-wide functions.
 \end{description}
 
 \section{Compilation}
 \label{sec-compilation}
 
-The RPP Library can be compiled as a static library using a Code
-Composer Studio project. The compilation process will automatically
-update the generated binary static library file in the library root
-directory.
-
-For the compilation of the library as a static library open the Code
-Composer studio project \textsc{rpp-lib} (see
-Section~\ref{sec-openning-of-existing-project}) and build the project.
-If the build process is successful, the \textsc{rpp-lib.lib} file will
+To compile the library open the Code Composer studio project
+\texttt{rpp-lib} (see Section~\ref{sec-openning-of-existing-project})
+and build the project (\textsc{Project $\rightarrow$ Build Project}).
+If the build process is successful, the \texttt{rpp-lib.lib} file will
 appear in the library root directory.
 
-Because compilation of the libraries in Eclipse IDE can be error
-prone, there is a \textsc{Makefile} that allows to compile the
-libraries from the Linux terminal: 
-
+It is also possible to compile the library using the included
+\texttt{Makefile}. From the Linux command line run:
 \begin{lstlisting}[language=bash]
 cd <library-root>
 make lib
 \end{lstlisting}
+Note that this only works if Code Composer Studio is installed in
+\texttt{/opt/ti} directory. Otherwise, you have to set
+\texttt{CCS\_UTILS\_DIR} variable.
 
-or Windows command line:
-
+On Windows command line run:
 \begin{lstlisting}[language=bash]
 cd <library-root>
 set CCS_UTILS_DIR=C:\ti\ccsv5\utils
 "C:\ti\ccsv5\utils\bin\"gmake.exe lib
 \end{lstlisting}
 
-On Windows \texttt{gmake.exe} supplied with CCS is used instead of
-\texttt{make}. The \texttt{gmake.exe} uses variable \texttt{CCS\_UTILS\_DIR},
-which has to be set properly, before the build process is invoked. The variable
-can be set manually for one session by the \textsc{set} command like in the
-previous example or permanently in \textsc{\repo/Debug/GNUMakefile}.
+You have to use \texttt{gmake.exe} is instead of \texttt{make} and it
+is necessary to set variable \texttt{CCS\_UTILS\_DIR} manually. You
+can also edit \texttt{\repo/Debug/GNUmakefile} and set the variable
+there.
 
 Note that the Makefile still requires the Code Composer Studio (ARM
 compiler) to be installed because of the CGT.
 
-The relevant aspects for compiling and linking an application using the static
-libraries are: 
+\section{Compiling applications using the RPP library}
+\label{sec:comp-appl-using}
+
+The relevant aspects for compiling and linking an application using
+the RPP library are summarized below.
+
+\subsection{ARM target (RPP board)}
+\label{sec:arm-target-rpp}
 
-\begin{itemize}
-       \item \textbf{ARM compilation using CCS for the RPP board:}
        \begin{compactitem}
-               \item Include headers files of the OS for which the library was
-compiled against. At the time of this writing the OS is FreeRTOS 7.0.2. See
-Section \ref{sec-software-architecture}
-               \item Include header files for the RPP library or for modules
-you want to use rpp\_can.h for CAN module for example.  
-               \item Add library \textsc{rpp-lib.lib} to the linker libraries.
-The RPP library \textbf{MUST} be looked for  before Texas Instruments support
-library \textsc{rtsv7R4\_T\_be\_v3D16\_eabi.lib}.
-               \item Configure linker to retain \textsc{.intvecs} section from
-RPP Library:\newline{}
-\textsc{--retain="rpp-lib.lib$\langle$sys\_intvecs.obj$\rangle$(.intvecs)"}
-               \item Use the provided linker command file
-\textsc{TMS570LS313xFlashLnk.cmd}.  
+    \item Configure include search path to contain the directory of
+      used FreeRTOS version, e.g.
+      \texttt{\repo/os/7.0.2\_rm48/include}. See Section
+      \ref{sec-software-architecture}.
+    \item Include \texttt{rpp/rpp.h} header file or just the needed
+      peripheral specific header files such as \texttt{rpp/can.h}.
+    \item Add library \texttt{rpp-lib.lib} to the linker libraries.
+      The RPP library must be looked for before Texas Instruments
+      support library \texttt{rtsv7R4\_T\_le\_v3D16\_eabi.lib}.
+    \item Use the provided linker command file
+      \texttt{RM48L952FlashLnk.cmd}.
        \end{compactitem}
-       \item \textbf{x86(\_64) compilation using GCC for Simulation:}
+
+\subsection{POSIX target}
+\label{sec:posix-target}
+
        \begin{compactitem}
-               \item Include headers files of the OS for Simulation. At the
-time of this writing the OS is POSIX FreeRTOS 6.0.4.  
-               \item Include header files for the RPP library or for modules
-you want to use (rpp\_can.h for CAN module for example).  
-               \item Add library \textsc{librpp.a} to the linker libraries.
-               \item Add \textsc{pthread} to the linker libraries.
+    \item Include headers files of the OS for Simulation. At the time
+      of this writing the OS is POSIX FreeRTOS 6.0.4.
+    \item Include header files for the RPP library or for modules you
+      want to use (rpp\_can.h for CAN module for example).
+    \item Add library \texttt{librpp.a} to the linker libraries.
+    \item Add \texttt{pthread} to the linker libraries.
        \end{compactitem}
-\end{itemize}
-
-As an important note, all the models compiled using Simulink will link against
-\textsc{rpp-lib.lib}.  When compiling a Simulink model, neither Simulink nor the
-\textsc{make} invoked during the build process, will update the generated binary
-if the model hasn't changed, and then if the source code hasn't changed. Static
-libraries changes are not considered for re-compilation and re-linking. If
-library development is being done and static library is updated, in order for
-the Simulink model to generate a newly linked version of the binary the whole
-code generation folder needs to be deleted in order to force code generation,
-compilation and linking with the new static library.
 
 \section{Compiling API documentation}
 \label{sec-compiling-api-documentation}
-The RPP Layer is formatted using Doxygen documentation generator. This allows to
-generate a high quality API reference. To generate the API reference run in a
-Linux terminal:
+The documentation of the RPP layer is formatted using Doxygen
+documentation generator. This allows to generate a high quality API
+reference. To generate the API reference run in a Linux terminal:
 
 \lstset{language=bash}
 \begin{lstlisting}
@@ -1585,7 +1531,7 @@ make
 xdg-open html/index.html
 \end{lstlisting}
 
-The files under \textsc{\repo/rpp/lib/rpp/doc/api/content} are used for the API
+The files under \texttt{\repo/rpp/doc/api/content} are used for the API
 reference generation are their name is self-explanatory:
 
 \begin{verbatim}
@@ -1607,7 +1553,7 @@ compile it and download to the board.
 
 The Simulink RPP Target provides support for C source code generation from Simulink models and
 compilation of that code on top of the RPP library and the FreeRTOS operating system. This target
-uses Texas Instruments ARM compiler (\textsc{armcl}) included in the Code Generation Tools distributed with
+uses Texas Instruments ARM compiler (\texttt{armcl}) included in the Code Generation Tools distributed with
 Code Composer Studio, and thus it depends on it for proper functioning.
 
 This target also provides support for automatic download of the compiled binary to the RPP
@@ -1631,7 +1577,7 @@ board.
 \item No External mode support yet. We work on it.
 \item Custom compiler options, available via OPTS variable in
   \emph{Make command} at \emph{Code Generation} tab (see Figure
-  \ref{fig-code-gen-settings}). For example \textsc{make\_rtw
+  \ref{fig-code-gen-settings}). For example \texttt{make\_rtw
     OPTS="-O0 -g"}.
 \end{itemize}
 
@@ -1656,7 +1602,7 @@ configurable per model under  \textsc{Code Generation} \noindent$\rightarrow$
 Note that FreeRTOS uses its own heap whose size is independent of this
 parameter. 
 \item \textbf{Model step task stack size}: this parameter will be
-passed to the \textsc{xTaskCreate()} that
+passed to the \texttt{xTaskCreate()} that
   creates the task for the model to run. In a Simulink model there are always two tasks:
  \begin{itemize}
  \item The worker task. This task is the one that executes the model
@@ -1671,18 +1617,18 @@ passed to the \textsc{xTaskCreate()} that
   the board after the model is successfully built. Note that this option is unaware of the option
   \textit{Generate code only} in the \textit{Code Generation} options panel, so it will try to download even if
   only source code has been generated, failing graciously or uploading an old binary laying around
-  in the build directory. This option calls the \textsc{rpp\_download.m} script, which is in turn a
-  wrapper on the \textsc{loadti.sh}, \textsc{loadti.bat} and \textsc{loadopenocd.sh} script. More information on the \textsc{loadti.sh}
+  in the build directory. This option calls the \texttt{rpp\_download.m} script, which is in turn a
+  wrapper on the \texttt{loadti.sh}, \texttt{loadti.bat} and \texttt{loadopenocd.sh} script. More information on the \texttt{loadti.sh}
   script can be found in:
 \begin{verbatim}
 <css>/ccs_base/scripting/examples/loadti/readme.txt
 http://processors.wiki.ti.com/index.php/Loadti
 \end{verbatim}
 
-  The \textsc{loadti.sh} and \textsc{loadti.bat} script will close after the
+  The \texttt{loadti.sh} and \texttt{loadti.bat} script will close after the
 download of the generated program, leaving the loaded program running.
 
-  The \textsc{loadopenocd.sh} script will close after the download of the
+  The \texttt{loadopenocd.sh} script will close after the download of the
 generated program as well, but the program will be stopped.  In order to run
 the loaded program a manual reset of the board is required.
 
@@ -1690,8 +1636,8 @@ the loaded program a manual reset of the board is required.
 implemented for the simulink target.
 
 \item \textbf{Use OpenOCD to download the compiled binary}: This option switches
-from Ti loading script \textsc{loadti.sh} to OpenOCD script
-\textsc{loadopenocd.sh}. The benefit of using OpenOCD, besides that it is open
+from Ti loading script \texttt{loadti.sh} to OpenOCD script
+\texttt{loadopenocd.sh}. The benefit of using OpenOCD, besides that it is open
 source
   software, is much shorter loading time. More information about the right
 OpenOCD version and its installation can be found at:
@@ -1727,7 +1673,7 @@ reading.
        \item[refs/] Contains third party references, which license allows the
 distribution.
        \item[rpp/blocks] Contains the TLC files, which defines the blocks for
-the Matlab Simulink and \textsc{rpp\_lib.slx}, which is the Simulink RPP
+the Matlab Simulink and \texttt{rpp\_lib.slx}, which is the Simulink RPP
 Library, containing all the Simulink blocks for RPP.
        \item[rpp/blocks/tlc\_c]Contains the templates for C code generation from the
 Matlab Simulink model.
@@ -1801,10 +1747,10 @@ output for simulations.
 The implementation of the S-Functions in the RPP project has following layout:
 
 \begin{itemize}
-  \item Define S-Function name \textsc{S\_FUNCTION\_NAME}.
-  \item Include header file \textsc{header.c}, which in connection with
-\textsc{trailer.c} creates a miniframework for writing S-Functions.  
-  \item In \textsc{mdlInitializeSizes} define:
+  \item Define S-Function name \texttt{S\_FUNCTION\_NAME}.
+  \item Include header file \texttt{header.c}, which in connection with
+\texttt{trailer.c} creates a miniframework for writing S-Functions.  
+  \item In \texttt{mdlInitializeSizes} define:
   \begin{itemize}
        \item Number of \textit{dialog} parameter.
        \item Number of input ports.
@@ -1817,12 +1763,12 @@ The implementation of the S-Functions in the RPP project has following layout:
        \end{compactitem}
        \item Standard options for driver blocks.
   \end{itemize}
-  \item In \textsc{mdlCheckParameters}:
+  \item In \texttt{mdlCheckParameters}:
   \begin{itemize}
        \item Check data type of each parameter.
        \item Check range, if applicable, of each parameter.
   \end{itemize}
-  \item In \textsc{mdlSetWorkWidths}:
+  \item In \texttt{mdlSetWorkWidths}:
   \begin{compactitem}
        \item Map \textit{dialog} parameter to \textit{runtime} parameters.
        \begin{itemize}
@@ -1830,7 +1776,7 @@ The implementation of the S-Functions in the RPP project has following layout:
        \end{itemize}
   \end{compactitem}
   \item Define symbols for unused functions.
-  \item Include trailer file \textsc{trailer.c}.
+  \item Include trailer file \texttt{trailer.c}.
 \end{itemize}
 
 The C-MEX S-Function implemented can be compiled with the following command:
@@ -1840,11 +1786,11 @@ The C-MEX S-Function implemented can be compiled with the following command:
 <matlabroot>/bin/mex sfunction_{mnemonic}.c
 \end{lstlisting}
 
-As noted the standard is to always prefix S-Function with \textsc{sfunction\_}
+As noted the standard is to always prefix S-Function with \texttt{sfunction\_}
 and use lower case mnemonic of the block.
 
-Also a script called \textsc{compile\_blocks.m} is included. The script that
-allows all \textsc{sfunctions\_*.c} to be fed to the \textsc{mex} compiler so
+Also a script called \texttt{compile\_blocks.m} is included. The script that
+allows all \texttt{sfunctions\_*.c} to be fed to the \texttt{mex} compiler so
 all S-Functions are compiled at once. To use this script, in Matlab do:
 
 \lstset{language=Matlab}
@@ -1862,55 +1808,55 @@ generate code for a specific C-MEX S-Function block. They are programmed using T
 include C code within TLC instructions, just like LaTeX files include normal text in between LaTeX 
 macros.
 
-The standard for a TLC file is to be located under the \textsc{tlc\_c} subfolder from where the 
-S-Function is located and to use the very exact file name as the S-Function but with the \textsc{.tlc}
-extension: \textsc{sfunction\_foo.c} \noindent$\rightarrow$ \textsc{tlc\_c/sfunction\_foo.tlc}
+The standard for a TLC file is to be located under the \texttt{tlc\_c} subfolder from where the 
+S-Function is located and to use the very exact file name as the S-Function but with the \texttt{.tlc}
+extension: \texttt{sfunction\_foo.c} \noindent$\rightarrow$ \texttt{tlc\_c/sfunction\_foo.tlc}
 
 The TLC files implemented for this project use 3 hook functions in particular (other are available, 
 see TLC reference documentation):
 \begin{itemize}
-\item \textsc{BlockTypeSetup}: \newline{}
+\item \texttt{BlockTypeSetup}: \newline{}
   BlockTypeSetup executes once per block type before code generation begins.
   This function can be used to include elements required by this block type, like includes or
   definitions.
-\item \textsc{Start}: \newline{}
-  Code here will be placed in the \textsc{void
+\item \texttt{Start}: \newline{}
+  Code here will be placed in the \texttt{void
 $\langle$modelname$\rangle$\_initialize(void)}. Code placed here will execute
 only once.
-\item \textsc{Outputs}: \newline{}
-  Code here will be placed in the \textsc{void
+\item \texttt{Outputs}: \newline{}
+  Code here will be placed in the \texttt{void
 $\langle$modelname$\rangle$\_step(void)} function. Should be used to get the
 inputs o a block and/or to set the outputs of that block.
 \end{itemize}
 
 The general layout of the TLC files implemented for this project are:
 \begin{itemize}
-\item In \textsc{BlockTypeSetup}: \newline{}
-  Call common function \textsc{\%$<$RppCommonBlockTypeSetup(block, system)$>$} that will include the 
-  \textsc{rpp/rpp\i\_mnemonic.h} header file (can be called multiple times but header is included only once).
-\item \textsc{Start}: \newline{}
+\item In \texttt{BlockTypeSetup}: \newline{}
+  Call common function \texttt{\%$<$RppCommonBlockTypeSetup(block, system)$>$} that will include the 
+  \texttt{rpp/rpp\i\_mnemonic.h} header file (can be called multiple times but header is included only once).
+\item \texttt{Start}: \newline{}
   Call setup routines from RPP Layer for the specific block type, like HBR enable, DIN pin setup, 
   DAC value initialization, SCI baud rate setup, among others.
-\item \textsc{Outputs}: \newline{}
+\item \texttt{Outputs}: \newline{}
   Call common IO routines from RPP Layer, like DIN read, DAC set, etc. Success of this functions
   is checked and in case of failure error is reported to the block using ErrFlag.
 \end{itemize}
 
 C code generated from a Simulink model is placed on a file called
-\textsc{$\langle$modelname$\rangle$.c} along with other support files in a
-folder called \textsc{$\langle$modelname$\rangle$\_$\langle$target$\rangle$/}.
-For example, the source code generated for model \textsc{foobar} will be placed
-in current Matlab directory \textsc{foobar\_rpp/foobar.c}.
+\texttt{$\langle$modelname$\rangle$.c} along with other support files in a
+folder called \texttt{$\langle$modelname$\rangle$\_$\langle$target$\rangle$/}.
+For example, the source code generated for model \texttt{foobar} will be placed
+in current Matlab directory \texttt{foobar\_rpp/foobar.c}.
 
-The file \textsc{$\langle$modelname$\rangle$.c} has 3 main functions:
+The file \texttt{$\langle$modelname$\rangle$.c} has 3 main functions:
 \begin{compactitem}
-\item \textsc{void $\langle$modelname$\rangle$\_step(void)}: \newline{}
+\item \texttt{void $\langle$modelname$\rangle$\_step(void)}: \newline{}
   This function recalculates all the outputs of the blocks and should be called once per step. This
   is the main working function.
-\item \textsc{void $\langle$modelname$\rangle$\_initialize(void)}: \newline{}
+\item \texttt{void $\langle$modelname$\rangle$\_initialize(void)}: \newline{}
   This function is called only once before the first step is issued. Default values for blocks IOs
   should be placed here.
-\item \textsc{void $\langle$modelname$\rangle$\_terminate(void)}: \newline{}
+\item \texttt{void $\langle$modelname$\rangle$\_terminate(void)}: \newline{}
   This function is called when terminating the model. This should be used to free memory of revert 
   other operations made on the initialization function. With current implementation this function
   should never be called unless an error is detected and in most models it is empty.
@@ -1922,8 +1868,10 @@ The file \textsc{$\langle$modelname$\rangle$.c} has 3 main functions:
 This section describes each one of the Simulink blocks present in the Simulink
 RPP block library, shown in Figure \ref{fig-block-library}.
 
-\begin{figure}
-\includegraphics[width=\textwidth]{images/block_library.png}
+\begin{figure}[h]
+  \begin{center}
+    \includegraphics[width=\textwidth]{images/block_library.png}
+  \end{center}
 \caption{Simulink RPP Block Library.}
 \label{fig-block-library}
 \end{figure}
@@ -1975,39 +1923,30 @@ type of block and more than one block per block type.
 
 In the reference below you can find a complete description for each of the demos.
 
-\subsection{Analog pass-through}
+\subsection{ADC demo}
 \begin{figure}[H]\begin{center}
 \noindent
-\includegraphics[width=450px]{images/demo_analog_passthrough.png}
-\caption{Analog Passthrough Simulink demo for RPP.}
+\includegraphics[width=450px]{images/demo_adc.png}
+\caption{Example of the usage of the Analog Input blocks for RPP.}
 \end{center}\end{figure}
 
 \textbf{Description:}
-This demo will read analog input 1 and write it to analog output 1.
-
-In laboratory the minimum read value for analog input a 0 volts is 107. The maximum read at 12
-volts is 2478. The map subsystem will map the input domain (ADC)\textsc{[110, 2400]} to the output domain
-(DAC)\textsc{[0, 4095]}.
 
+Demostrates how to use Analog Input blocks in order to measure voltage. This demo
+measures voltage on every available Analog Input and prints the values on the
+Serial Interface.
 
-\subsection{Analog sinewave}
+\subsection{Simple CAN demo}
 \begin{figure}[H]\begin{center}
 \noindent
-\includegraphics[width=450px]{images/demo_analog_sinewave.png}
-\caption{Analog Sinewave Simulink demo for RPP.}
+\includegraphics[width=450px]{images/demo_simple_can.png}
+\caption{The simplest CAN demonstration.}
 \end{center}\end{figure}
 
 \textbf{Description:}
-This demo will generate a sinewave on analog output 1. The frequency
-of the sine wave is 10Hz and sampling rate is set to
-1000Hz (driven from Simulink step of 1ms, same as operating system). Amplitude is set to use DAC
-full range [0-4095] which means output amplitude will be [0-12] volts.
-
-The Software oscilloscope shown should match an external one connected to DAC 1.
-
-Note that the driver configuration of the MCP4922 is set to unbuffered (which should eventually
-be changed to buffered) and thus the last resolution millivolts are lost.
 
+The simplest possible usage of the CAN bus. This demo is above all designed for
+testing the CAN configuration and transmission.
 
 \subsection{CAN transmit}
 \begin{figure}[H]\begin{center}
@@ -2036,31 +1975,25 @@ Demostrates how to use CAN Receive blocks in order to:
 \item Use function-call mechanism to process received messages
 \end{compactenum}
 
-\subsection{CAN demo}
-
+\subsection{Simulink Demo model}
 \begin{figure}[H]\begin{center}
 \noindent
-\includegraphics[width=450px]{images/demo_can_demo.png}
-\caption{CAN bus demo for RPP.}
+\includegraphics[width=450px]{images/demo_board.png}
+\caption{Model of the complex demonstration of the boards peripherals.}
 \end{center}\end{figure}
 
 \textbf{Description:}
 
-This demo demonstrates simple processing of received messages.
+This model demonstrates the usage of RPP Simulink blocks in a complex and interactive
+application. The TI HDK kit has eight LEDs placed around the MCU. The application
+rotates the light around the MCU in one direction. Every time the user presses the button
+on the HDK, the direction is switched.
 
-\subsection{Digital pass-through}
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=400px]{images/demo_digital_passthrough.png}
-\caption{Digital Pass-through Simulink demo for RPP.}
-\end{center}\end{figure}
+The state of the LEDs is sent on the CAN bus as a message with ID 0x1. The button can
+be emulated by CAN messages with ID 0x0. The message 0x00000000 simulates button release
+and the message 0xFFFFFFFF simulates the button press.
 
-\textbf{Description:}
-
-This demo will directly pass the digital values read on DIN [1-8] to LOUT [1-8], and thus acting
-as a digital pass-through or gateway.
-
-Also note that all the ErrFlag are aggregated on a global ErrFlag.
+Information about the state of the application are printed on the Serial Interface. 
 
 \subsection{Echo char}
 \begin{figure}[H]\begin{center}
@@ -2071,63 +2004,24 @@ Also note that all the ErrFlag are aggregated on a global ErrFlag.
 
 \textbf{Description:}
 
-This demo will echo twice (print back) any character received through the Serial Communication
-Interface (9600-8-N-1).
+This demo will echo (print back) any character received through the Serial Communication
+Interface (115200-8-N-1).
 
 Note that the send subsystem is implemented a as \textit{triggered} subsystem and will execute only
 if data is received, that is, Serial Receive output is non-negative. Negative values are errors.
 
-
-\subsection{H-bridge analog control}
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=450px]{images/demo_hbridge_analog_control.png}
-\caption{H-Bridge Analog Control Simulink demo for RPP.}
-\end{center}\end{figure}
-
-\textbf{Description:}
-
-This demo will read values from the analog input, map them, and control the H-Bridge. This allows
-a motor connected to the H-Bridge to be controlled with a potentiometer connected to Analog Input 1.
-
-Setting the potentiometer to output around 6 volts will stop the motor. Less (or greater) than 6
-volts will trigger the motor in one sense (or in the other sense) and speed proportional with 1\%
-resolution.
-
-In laboratory the minimum read value for analog input is 107 at 0 volts. The maximum read at 12 volts
-is 2478. The map subsystem will map the input domain (ADC)\textsc{[110, 2400]} to the output domain
-(HBR)\textsc{[-1.0, 1.0]}.
-
-
-\subsection{H-bridge digital control}
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=450px]{images/demo_hbridge_digital_control.png}
-\caption{H-Bridge Digital Control Simulink demo for RPP.}
-\end{center}\end{figure}
-
-\textbf{Description:}
-
-This demo toggle the H-Bridge from stop to full speed in one direction using digital input 1.
-So basically is a ON/OFF switch on DIN 1 for a motor connected on the HBR. Note the data type
-conversion because the output of the DIN is a boolean and the input to the HBR is a double.
-
-\subsection{H-bridge sine wave control}
+\subsection{GIO demo}
 \begin{figure}[H]\begin{center}
 \noindent
-\includegraphics[width=300px]{images/demo_hbridge_sinewave_control.png}
-\caption{H-Bridge Sinewave Control Simulink demo for RPP.}
+\includegraphics[width=450px]{images/demo_gio.png}
+\caption{Demonstration of DIN and DOUT blocks}
 \end{center}\end{figure}
 
 \textbf{Description:}
 
-This demo will generate a sine wave to control the H-Bridge. Sine wave is one period per 20
-seconds or 0.05Hz. Sampling rate is 20Hz or 100 samples per 1/4 of period (for 1\% speed
-resolution change).
-
-Note that the Software oscilloscope should is not the output of the H-Bridge, the H-Bridge will
-change current sense and the duty cycle of the pulse that drive it (PWM), it does not output
-analog values. The Software oscilloscope just shows what the input to the HBR block is.
+The model demonstrates how to use the DIN blocks and DOUT blocks, configured in every mode. The DOUTs
+are pushed high and low with period 1 second. The DINs are reading inputs and printing the values
+on the Serial Interface with the same period.
 
 \subsection{Hello world}
 \begin{figure}[H]\begin{center}
@@ -2138,170 +2032,22 @@ analog values. The Software oscilloscope just shows what the input to the HBR bl
 
 \textbf{Description:}
 
-This demo will print \textsc{"Hello Simulink"} to the Serial Communication Interface (9600-8-N-1) one
+This demo will print \texttt{Hello Simulink} to the Serial Communication Interface (115200-8-N-1) one
 character per second. The output speed is driven by the Simulink model step which is set to one
 second.
 
-\subsection{IRC input}
-\begin{figure}[H]\begin{center}
-
-\noindent
-\includegraphics[width=450px]{images/demo_irc_input.png}
-\caption{LED Blink Simulink demo for RPP.}
-\end{center}\end{figure}
-
-\textbf{Description:}
-
-This demo is printing IRC sensor (connected to DIN10 and DIN11) value to the Serial Communication
-Interface (115200-8-N-1) with six values to one line.
-
-\subsection{LED blink}
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=450px]{images/demo_led_blink.png}
-\caption{LED Blink Simulink demo for RPP.}
-\end{center}\end{figure}
-
-\textbf{Description:}
-
-This the simplest demo of all that shows the basics of using the RPP target and blocks. The
-goal of this demo is to show the configuration of the model (not shown on the picture above),
-that is, how the RPP Simulink Coder Target is setup, general model setup and step setup.
-
-This demo will toggle each second a LED connected on LOUT 1. The timing is set by the Simulink
-model step which is set to 1 second.
-
-\subsection{LED blink all}
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=350px]{images/demo_led_blink_all.png}
-\caption{LED Blink All Simulink demo for RPP.}
-\end{center}\end{figure}
-
-\textbf{Description:}
-
-This demo will toggle all LEDs connected to the LOUT port. Even outputs pins will be negated.
-Toggle will happen each second. The timing is driven by Simulink model step configuration that
-is set to 1 second. All blocks ErrFlags are aggregated into one global ErrFlag.
-
-\subsection{Log analog input}
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=450px]{images/demo_log_analog_input.png}
-\caption{Log Analog Input Simulink demo for RPP.}
-\end{center}\end{figure}
-
-\textbf{Description:}
-
-This demo will log once per second the value read on the analog input 1. User can read the log
-using the SCI logging integrated command processor (9600-8-N-1). Logging block ID set to 1. The
-timing is driven by Simulink model step configuration that is set to 1 second.
-
-\subsection{Power toggle}
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=300px]{images/demo_power_toggle.png}
-\caption{Power Toggle Simulink demo for RPP.}
-\end{center}\end{figure}
-
-\textbf{Description:}
-
-This demo will toggle the power output once per second. If an error is detected on at least one of
-the outputs a generic error message is printed to the serial line. The timing is driven by Simulink
-model step configuration that is set to 1 second. Power outputs can drive a load up to 2A, so please
-take into account required safety considerations.
-
-\subsection{Simulink Demo board}
-Model for demo board has 6 subsystems. Every subsystem will be described separately.
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=0.8\textwidth]{images/demo_board-connection_scheme.pdf}
-\caption{Demo board connection and usage scheme.}
-\end{center}\end{figure}
-
-\subsubsection{Potentiometer regulation of motor speed}
-This is example of driving motor with input signal. Motor can be rotated in
-various speed in both directions and stopping motor means setting potentiometer
-to half of its range. Potentiometer value is also transmitted through CAN.
-
-\subsubsection{Color music}
-This is showing abilities of RPP board to generate analog signals. Bargraphs on
-demo board are showing value of analog outputs. Speed of change can be changed
-with potentiometer and in one case is used motor 2 IRC. There are five different
-modes. Three of them are derived from sinus and rest of them are counter value
-and direct control. Modes can be changed with black button. First mod selected
-after board start is fifth.  
-\begin{enumerate}
-\item Sinus signal is sequential delayed by 10 steps for second and third bargraph.
-\item Sinus signal on second bargraph is shifted by 120° and on third one is shifted by 240°.
-\item Sinus signal for second and third bargraphs are shifted same as in
-previous mode, but as counter value is used IRC value with appropriate divider
-no potentiometer value.  
-\item Visualizing counter value which speed is changed
-with potentiometer.
-\item Potentiometer value is passed to all bargraphs with appropriate multiplier.
-\end{enumerate}
-
-\subsubsection{Buttons and LEDs}
-This is example of digital input/output. LEDs on demo board can be driven with
-four different subprograms. These subprograms can be changed with red button and
-are influenced with green and blue buttons.  
-\begin{enumerate}
-\item One LED is always ON and others are OFF. Every 0.1 sec is neighborhood LED
-switched on and previous one is switched off. With buttons you can change
-direction.  
-\item Same as previous mode, but change is not done after 0.1 sec
-but only when button is pressed.
-\item In this mode you can record message in Morse code (max 64 chars including
-spaces) and after delay it is repetitively replayed. To record message use green
-button as dash and blue button as dot.  
-\item Simple game in which you must determine if light is moving left or right
-and press green or blue button according to it. Speed of movement is increasing
-and in case of wrong answer or long delay is game ends with lights flashing.
-\end{enumerate}
-
-\subsubsection{IRC to CAN}
-IRC value from Motor 2 is sent every tenth step via CAN2 with message ID 0x4.
-
-\subsubsection{CAN receive -- Button press emulation}
-You can simulate press of all four buttons by sending message through CAN2 to
-board with message ID 0x0 and value according to button number.
-
-\subsubsection{Configuration and error handling}
-RPP supports some basic runtime error handling. Every block can set its error
-flag, all these error flags are joined in this demo together and when some
-problem is detected CAN2 message of ID 0x10 is transmitted. Also in case of
-board overrun (exhaustion of time quanta) is transmitted message through CAN2
-with ID 0x11.\\ When model is build without external mode, errors are also
-printed to SCI.
-
-\subsubsection{Full list of CAN communication}
-The board produces CAN frames with the following IDs:
-\begin{itemize}
-\item 0x05: Potentiometer 1 value.
-\item 0x06: Potentiometer 2 value.
-\item 0x08: Selected mod of color music.
-\item 0x09: Active subprogram of buttons and LEDs.
-\item 0x10: Transmitted only in case of error flag of some block, error code.
-\item 0x11: Transmitted only in case of board overrun, no data.
-\end{itemize}
-The board reacts to CAN frames with following IDs:
-\begin{itemize}
-\item 0x00: Simulate button press, accepts value 1--4.
-\end{itemize}
-
 \chapter{Command line testing tool}
 \label{chap-rpp-test-software}
 \section{Introduction}
 \label{sec-rpp-test-sw-intro}
-The \textsc{rpp-test-suite} is a RPP application developed testing and direct
+The \texttt{rpp-test-suite} is a RPP application developed testing and direct
 control of the RPP hardware. The test suite implements a command processor,
 which is listening for a commands and prints some output related to the commands
 on the serial interface. The command processor is modular and each peripheral
 has its commands in a separated module.
 
-The command processor is implemented in \textsc{$\langle$rpp-test-sw$\rangle$/cmdproc} and commands
-modules are implemented in \textsc{$\langle$rpp-test-sw$\rangle$/commands} directory.
+The command processor is implemented in \texttt{$\langle$rpp-test-sw$\rangle$/cmdproc} and commands
+modules are implemented in \texttt{$\langle$rpp-test-sw$\rangle$/commands} directory.
 
 The application enables a command processor using the SCI at
 \textbf{115200-8-N-1}. When the software starts, the received welcome message
@@ -2316,7 +2062,7 @@ for a description of concrete command.
 
 \section{Compilation}
 \label{sec-rpp-test-sw-compilation}
-Before the Testing tool can be compiled, the RPP Library has to be built and the binary file \textsc{rpp-lib.lib} has to be present in the \textsc{\repo/rpp-lib/} directory. Once this requirement is fulfilled, there are two ways how to compile the Testing tool.
+Before the Testing tool can be compiled, the RPP Library has to be built and the binary file \texttt{rpp-lib.lib} has to be present in the \texttt{\repo/rpp-lib/} directory. Once this requirement is fulfilled, there are two ways how to compile the Testing tool.
 \begin{enumerate}
        \item Using a Code Composer Studio, which is described in Section \ref{sec-project-installation}. The procedure of downloading the firmware right from the CCS and running it on the hardware is described in Section \ref{sec-running-software-on-hw}.
        \item Using a make from a Linux terminal or gmake from a Windows command line. The procedure of how to download and run the binary on the hardware is described in Section \ref{sec-binary-file}.
@@ -2487,9 +2233,10 @@ same description is also available in the program itself via the
   Hardware circuitry that translates data between parallel and serial forms.
 \end{description}
 
-\bibliography{rpp_simulink}
-\bibliographystyle{plain}
+\printbibliography
 
 \end{document}
 
-%  LocalWords:  FreeRTOS RPP POSIX
+%  LocalWords:  FreeRTOS RPP POSIX microcontroller HalCoGen selftests
+%  LocalWords:  MCU UART microcontrollers DAC CCS simulink SPI GPIO
+%  LocalWords:  IOs HDK TMDSRM
index b6361ca5eca38b897e93d821ea4629df21174219..91419f58e9b984ca17b2c4755a2cab729864983a 160000 (submodule)
@@ -1 +1 @@
-Subproject commit b6361ca5eca38b897e93d821ea4629df21174219
+Subproject commit 91419f58e9b984ca17b2c4755a2cab729864983a
diff --git a/refs/r4f_init.pdf b/refs/r4f_init.pdf
new file mode 100644 (file)
index 0000000..37bc946
Binary files /dev/null and b/refs/r4f_init.pdf differ
diff --git a/refs/rm48_hdk.pdf b/refs/rm48_hdk.pdf
new file mode 100644 (file)
index 0000000..04933f2
Binary files /dev/null and b/refs/rm48_hdk.pdf differ
diff --git a/refs/rm48_init.pdf b/refs/rm48_init.pdf
new file mode 100644 (file)
index 0000000..37bc946
Binary files /dev/null and b/refs/rm48_init.pdf differ
similarity index 56%
rename from refs/tms570_trm.pdf
rename to refs/rm48_trm.pdf
index b5c3f93a3f093b83dbf00fb6e2535bdfed8738a8..3660c1a86c5575f0092d48f6863685bd2a1caa3a 100644 (file)
Binary files a/refs/tms570_trm.pdf and b/refs/rm48_trm.pdf differ
diff --git a/refs/rm48l952.pdf b/refs/rm48l952.pdf
new file mode 100644 (file)
index 0000000..f992a2d
Binary files /dev/null and b/refs/rm48l952.pdf differ
diff --git a/refs/tmdsrm48_schematics.pdf b/refs/tmdsrm48_schematics.pdf
new file mode 100644 (file)
index 0000000..78670bc
Binary files /dev/null and b/refs/tmdsrm48_schematics.pdf differ
diff --git a/refs/tms570.pdf b/refs/tms570.pdf
deleted file mode 100644 (file)
index 042d96e..0000000
Binary files a/refs/tms570.pdf and /dev/null differ
index a55e1134346310691ee17f13197e7407c8247e65..e92fbce6c2edc24a3cd7a1a419f2cf6f77ef7d14 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright (C) 2013 Czech Technical University in Prague
+#
+# Authors:
+#     - Michal Sojka <sojkam1@fel.cvut.cz>
+#
+# This document contains proprietary information belonging to Czech
+# Technical University in Prague. Passing on and copying of this
+# document, and communication of its contents is not permitted
+# without prior written authorization.
+#
+# File : Makefile
+# Abstract:
+#     Build documentation
+
 SF=$(wildcard sfunction_*.c)
 
 HTML = $(SF:%.c=%.html)
index 9b99d9d65fe2d917a794d641ad8590bc893ae636..6ff7bc128ff05ea5fead0066676e9d0864028026 100644 (file)
Binary files a/rpp/blocks/rpp_lib.slx and b/rpp/blocks/rpp_lib.slx differ
index 2ea4b83abe49ff718327af30bbeabce0be95070a..bde45f39d2249d6aea9338cf889a4737b28699c9 100644 (file)
@@ -35,7 +35,7 @@ Outputs:
   - { name: "ErrFlag",                 type: "bool"   }
 
 Parameters:
-  - { name: "Pin number", type: "uint8", range: "[1–12]" }
+  - { name: "Pin number", type: "uint8", range: "[1–16]" }
 
 # Description and Help is in Markdown mark-up
 Description: |
@@ -80,7 +80,7 @@ static void mdlInitializeSizes(SimStruct *S)
 {
     /*
      * Configure parameters: 1
-     *  - Pin number: [1-12]
+     *  - Pin number: [1-16]
      */
     if (!rppSetNumParams(S, 1)) {
         return;
@@ -114,7 +114,7 @@ static void mdlInitializeSizes(SimStruct *S)
 static void mdlCheckParameters(SimStruct *S)
 {
     /* Check the parameter 1 */
-    if (!rppValidParamRange(S, 0, 1, 12)) {
+    if (!rppValidParamRange(S, 0, 1, 16)) {
         return;
     }
 }
diff --git a/rpp/blocks/sfunction_aout.c b/rpp/blocks/sfunction_aout.c
deleted file mode 100644 (file)
index 7aba23c..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright (C) 2013, 2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Carlos Jenkins <carlos@jenkins.co.cr>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_aout.c
- * Abstract:
- *     C-MEX S-function block for RPP analog output.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *     <matlabroot>/bin/mex sfunction_aout.c
- */
-
-/*
-%YAML 1.2
----
-Name: Analog Output
-Category: IO blocks
-Header: rpp/adc.h
-Mnemonic: DAC
-
-Inputs:
-  - { name: "Analog Output", type: "uint16" }
-
-Outputs:
-  - { name: "ErrFlag", type: "bool" }
-
-Parameters:
-  - { name: "Pin number [1-4]", type: "uint8" }
-  - { name: "Input in millivolts", type: "bool"  }
-
-# Description and Help is in Markdown mark-up
-Description: |
-
-  Sets the analog value of the specified analog output pin on the RPP
-  board.
-
-  If 'input is voltage' is set the value must be an unsigned 16 bit
-  integer between 0-12000 (millivolts to set the analog output). If
-  'input is voltage' is NOT set the value must be and unsigned 16 bit
-  integer between 0-4095 (DAC is 12 bit).
-
-  If an error is detected while setting the value, the ErrFlag is set
-  high.
-
-Help: |
-
-  Sets the analog value of the specified analog output pin on the RPP board. If an error is detected 
-  while setting the value, the ErrFlag is set high.  
-
-  This block allows to write to the analog outputs on the RPP board. The UseVoltage flag allows the 
-  user to configure if block inputs should be interpreted as raw DAC value or millivolts. The ErrFlag 
-  should raise it `rpp_dac_update()` or `rpp_dac_set()` (or `rpp_dac_set_voltage()` 
-  depending on block configuration) returns error. Because the ErrFlag should never set, once set the 
-  following steps will never clear it back.
-
-  `rpp_dac_update()` is called on each block but the implementation provides this to be efficient.
-
-  There is a know bug on the RPP Library, check `rpp_dac_update()` on the RPP API for details. 
-  Because of this, the outputs of the DACs are initialized on the first step of the model and not on 
-  the model initialization.
-
-Status: Stable
-
-RPP API functions used:
-    - rpp_dac_setup()
-    - rpp_dac_set()
-    - rpp_dac_set_voltage()
-    - rpp_dac_update()
-
-Relevant demos:
-    - analog_passthrough
-    - analog_sinewave
-...
-*/
-
-
-#define S_FUNCTION_NAME sfunction_aout
-#include "header.c"
-
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-    /*
-     * Configure parameters: 1
-     *  - Pin number: [1-4]
-     *  - Use voltage.
-     */
-    if (!rppSetNumParams(S, 2)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 1
-     *  - Analog output.
-     */
-    if (!ssSetNumInputPorts(S, 1)) {
-        return;
-    }
-    rppAddInputPort(S, 0, SS_UINT16);
-
-    /*
-     * Configure output ports: 1
-     *  - Error flag.
-     */
-    if (!ssSetNumOutputPorts(S, 1)) {
-        return;
-    }
-    rppAddOutputPort(S, 0, SS_BOOLEAN);
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_CHECK_PARAMETERS
-static void mdlCheckParameters(SimStruct *S)
-{
-    /* Check the parameter 1 */
-    if (!rppValidParamRange(S, 0, 1, 4)) {
-        return;
-    }
-
-    /* Check the parameter 2 */
-    if (!rppValidParamBoolean(S, 1)) {
-        return;
-    }
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_SET_WORK_WIDTHS
-static void mdlSetWorkWidths(SimStruct *S)
-{
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, 2)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-    ssRegDlgParamAsRunTimeParam(S, 0, 0, "p1", SS_UINT8);
-
-    /* Register the run-time parameter 2 */
-    ssRegDlgParamAsRunTimeParam(S, 1, 1, "p2", SS_BOOLEAN);
-}
-#endif
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
index 8a0a90c03d0eb90dc1a25df2a8d02ed76d9463a1..aea180044ebc994596ea3f6c8ed710d25cba6e10 100644 (file)
@@ -8,9 +8,9 @@
  * document, and communication of its contents is not permitted
  * without prior written authorization.
  *
- * File : sfunction_din.c
+ * File : sfunction_ain.c
  * Abstract:
- *     C-MEX S-function block for RPP digital input.
+ *     C-MEX S-function block for reading from RPP GPIO ports.
  *
  * References:
  *     header.c
 ---
 Name: Digital Input
 Category: IO blocks
-Header: rpp/din.h
+Header: rpp/gio.h
 Mnemonic: DIN
 
 Inputs:
 
 Outputs:
-  - { name: "Digital Input", type: "bool" }
-  - { name: "ErrFlag",       type: "bool" }
-
+  - { name: "Digital Input value", type: "bool" }
 Parameters:
-  - { name: "Pin number",             type: "uint8", range: "[0-15]"           }
-  - { name: "Use variable threshold", type: "bool"                             }
-  - { name: "Pull",                   type: "Choice from Pull-down or Pull-up" }
-  - { name: "Active",                 type: "Choice from Active or Tri-stated" }
-
-# Description and Help is in Markdown mark-up
-Description: |
-
-  Gets the digital value of the specified digital input pin on the RPP board.
-
-  If pin is high the output is 1, 0 if the pin is low.
-
-  If an error is detected while getting the pin, the ErrFlag is set high.
+  - { name: "Port type", type: "Choice", range: "GIOA, GIOB, NHET1" }
+  - { name: "Pin number", type: "int8",   range: "[0–7]", note: "(depends on selected port)" }
+  - { name: "Input Type", type: "Choice", range: "Tri-state, Pull Up, Pull Down" }
 
-Help: |
+# Description is in Markdown mark-up
+Description: &desc |
+  Reads a value from a GPIO pin. The block supports GIOA, GIOB and NHET1 ports.
+  Any pin can be configured as tri-state, pull up or pull down.
 
-  This block allows to read the digital inputs on the RPP board. For pins number 0-7 is not
-  relevant and not visible parameter 'Use variable threshold' and only one block for each pin
-  can be in model. And oppositely for other pins (8-15) are not relevant and visible parameters
-  of names 'Pull' and 'Active'. The variable threshold check change the read mode of the pin. For
-  setting it see Digital Input Configure block.
+  It is not allowed to read from one pin by using more then one DIN blocks.
+  It is not allowed to use DIN and DOUT blocks together configured for one GPIO pin.
 
-  The ErrFlag should raise if `rpp_din_update()` or `rpp_din_get()` returns error. `rpp_din_update()`
-  is called just by the first DIN block in the model and thus only the first block could raise the
-  flag because of this. In case an errors occurs the return value will always be LOW (0). Because the
-  ErrFlag should never set, once set the following steps will never clear it back.
+Help: *desc
 
 Status: Stable
 
 RPP API functions used:
-    - rpp_din_setup()
-    - rpp_din_update()
-    - rpp_din_get()
+  - hal_gpio_pin_get_dsc
+  - hal_gpio_pin_get_value
+  - hal_gpio_pin_conf_set
 
 Relevant demos:
-    - digital_passthrough
-    - hbridge_digital_control
+  - gio_demo
 ...
 */
 
+
 #define S_FUNCTION_NAME sfunction_din
 #include "header.c"
 
+#define PARAM_NAME_PORT_TYPE           "port_type"
+#define PARAM_NAME_PIN_NUMBER          "pin_number"
+#define PARAM_NAME_INPUT_TYPE          "input_type"
+
+/** Identifiers of the block parameters */
+enum params{
+       PARAM_PORT_TYPE,
+       PARAM_PIN_NUMBER,
+       PARAM_INPUT_TYPE,
+       PARAMS_COUNT
+};
+
+enum port_types{
+       PORT_UNKNOWN,
+       PORT_GIOA,
+       PORT_GIOB,
+       PORT_NHET1
+};
+
+enum outputs{
+       OUT_PIN_VALUE,
+       OUTPUTS_COUNT
+};
 
 static void mdlInitializeSizes(SimStruct *S)
 {
-    /*
-     * Configure parameters: 1
-     *  - Pin number: [1-16]
-     *  - Use variable threshold: [true|false]
-     *  - Pull: [Pull-up|Pull-down]
-     *  - Active: [Active|Tristate]
-     */
-    if (!rppSetNumParams(S, 4)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 0
-     */
-    if (!ssSetNumInputPorts(S, 0)) {
-        return;
-    }
-
-    /*
-     * Configure output ports: 2
-     *  - Digital input.
-     *  - Error flag.
-     */
-    if (!ssSetNumOutputPorts(S, 2)) {
-        return;
-    }
-    rppAddOutputPort(S, 0, SS_BOOLEAN);
-    rppAddOutputPort(S, 1, SS_BOOLEAN);
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
+       /*
+       * Configure parameters: 3
+       *  - Port type
+       *  - Pin number
+       *  - Input type
+       */
+       if (!rppSetNumParams(S, PARAMS_COUNT)) {
+               return;
+       }
+
+       /*
+       * Configure input ports: 0
+       */
+       if (!ssSetNumInputPorts(S, 0)) {
+               return;
+       }
+
+       /*
+       * Configure output ports: 1
+       */
+       if (!ssSetNumOutputPorts(S, OUTPUTS_COUNT)) {
+               return;
+       }
+       rppAddOutputPort(S, OUT_PIN_VALUE, SS_BOOLEAN);
+
+       /* Set standard options for this block */
+       rppSetStandardOptions(S);
 }
 
 
@@ -119,25 +123,24 @@ static void mdlInitializeSizes(SimStruct *S)
 #define MDL_CHECK_PARAMETERS
 static void mdlCheckParameters(SimStruct *S)
 {
-    /* Check the parameter 1 */
-    if (!rppValidParamRange(S, 0, 0, 15)) {
-        return;
-    }
-
-    /* Check the parameter 2 */
-    if (!rppValidParamBoolean(S, 1)) {
-        return;
-    }
-
-    /* Check the parameter 3 */
-    if (!rppValidParamRange(S, 2, 0, 2)) {
-        return;
-    }
-
-    /* Check the parameter 4 */
-    if (!rppValidParamRange(S, 3, 0, 2)) {
-        return;
-    }
+       if ((int_T)mxGetPr(ssGetSFcnParam(S, PARAM_PORT_TYPE))[0] == PORT_GIOA) {
+               if (!rppValidParamRange(S, PARAM_PIN_NUMBER, 0, 7)) {
+                       return;
+               }
+       }
+       else if ((int_T)mxGetPr(ssGetSFcnParam(S, PARAM_PORT_TYPE))[0] == PORT_GIOB) {
+               if (!rppValidParamRange(S, PARAM_PIN_NUMBER, 0, 7)) {
+                       return;
+               }
+       }
+       else if ((int_T)mxGetPr(ssGetSFcnParam(S, PARAM_PORT_TYPE))[0] == PORT_NHET1) {
+               if (!rppValidParamRange(S, PARAM_PIN_NUMBER, 0, 31)) {
+                       return;
+               }
+       }
+       else {
+               return;
+       }
 }
 #endif
 
@@ -146,22 +149,14 @@ static void mdlCheckParameters(SimStruct *S)
 #define MDL_SET_WORK_WIDTHS
 static void mdlSetWorkWidths(SimStruct *S)
 {
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, 4)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-    ssRegDlgParamAsRunTimeParam(S, 0, 0, "p1", SS_INT8);
-
-    /* Register the run-time parameter 2 */
-    ssRegDlgParamAsRunTimeParam(S, 1, 1, "p2", SS_BOOLEAN);
-
-    /* Register the run-time parameter 3 */
-    ssRegDlgParamAsRunTimeParam(S, 2, 2, "p3", SS_UINT8);
-
-    /* Register the run-time parameter 4 */
-    ssRegDlgParamAsRunTimeParam(S, 3, 3, "p4", SS_UINT8);
+       /* Set number of run-time parameters */
+       if (!ssSetNumRunTimeParams(S, PARAMS_COUNT)) {
+               return;
+       }
+       /* Register the run-time parameter 1 */
+       ssRegDlgParamAsRunTimeParam(S, PARAM_PORT_TYPE,      PARAM_PORT_TYPE,      PARAM_NAME_PORT_TYPE,      SS_INT8);
+       ssRegDlgParamAsRunTimeParam(S, PARAM_PIN_NUMBER,     PARAM_PIN_NUMBER,     PARAM_NAME_PIN_NUMBER,     SS_INT8);
+       ssRegDlgParamAsRunTimeParam(S, PARAM_INPUT_TYPE,     PARAM_INPUT_TYPE,     PARAM_NAME_INPUT_TYPE,     SS_INT8);
 }
 #endif
 
diff --git a/rpp/blocks/sfunction_dinc.c b/rpp/blocks/sfunction_dinc.c
deleted file mode 100644 (file)
index 0e0da1f..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Copyright (C) 2013-2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Karel Kočí
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_dinc.c
- * Abstract:
- *     C-MEX S-function block for RPP digital input configuration.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *     <matlabroot>/bin/mex sfunction_dinc.c
- */
-
-/*
-%YAML 1.2
----
-Name: Digital Input Configure
-Category: IO blocks
-Header: rpp/din.h
-Mnemonic: DINC
-
-Inputs:
-
-Outputs:
-
-Parameters:
-  - { name: "Reference voltage for pins 8-11",  type: "uint16", range: "[0-4095]" }
-  - { name: "Reference voltage for pins 12-15", type: "uint16", range: "[0-4095]" }
-
-# Description and Help is in Markdown mark-up
-Description: &desc |
-
-  This block allows one to set reference voltage (threshold) for DIN pins. The block have two parameters,
-  one for pins 8 - 11 and the other for pins 12 - 15.
-
-Help: *desc
-
-Status: Stable
-
-RPP API functions used:
-    - rpp_din_ref()
-
-Relevant demos:
-...
-*/
-
-#define S_FUNCTION_NAME sfunction_dinc
-#include "header.c"
-
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-    /*
-     * Configure parameters: 2
-     *  - Reference voltage for pins 8-11:  [0-4095]
-     *  - Reference voltage for pins 12-15: [0-4095]
-     */
-    if (!rppSetNumParams(S, 2)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 0
-     */
-    if (!ssSetNumInputPorts(S, 0)) {
-        return;
-    }
-
-    /*
-     * Configure output ports: 0
-     */
-    if (!ssSetNumOutputPorts(S, 0)) {
-        return;
-    }
-    
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_CHECK_PARAMETERS
-static void mdlCheckParameters(SimStruct *S)
-{
-    /* Check the parameter 1 */
-    if (!rppValidParamRange(S, 0, 0, 4095)) {
-        return;
-    }
-    
-    /* Check the parameter 2 */
-    if (!rppValidParamRange(S, 1, 0, 4095)) {
-        return;
-    }
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_SET_WORK_WIDTHS
-static void mdlSetWorkWidths(SimStruct *S)
-{
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, 2)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-    ssRegDlgParamAsRunTimeParam(S, 0, 0, "p1", SS_UINT16);
-    ssRegDlgParamAsRunTimeParam(S, 1, 1, "p2", SS_UINT16);
-}
-#endif
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
diff --git a/rpp/blocks/sfunction_dout.c b/rpp/blocks/sfunction_dout.c
new file mode 100644 (file)
index 0000000..354501f
--- /dev/null
@@ -0,0 +1,181 @@
+/* Copyright (C) 2013, 2014 Czech Technical University in Prague
+ *
+ * Authors:
+ *     - Carlos Jenkins <carlos@jenkins.co.cr>
+ *
+ * This document contains proprietary information belonging to Czech
+ * Technical University in Prague. Passing on and copying of this
+ * document, and communication of its contents is not permitted
+ * without prior written authorization.
+ *
+ * File : sfunction_ain.c
+ * Abstract:
+ *     C-MEX S-function block for writting to RPP GPIO ports.
+ *
+ * References:
+ *     header.c
+ *     trailer.c
+ *
+ * Compile with:
+ *     <matlabroot>/bin/mex sfunction_dout.c
+ */
+
+/*
+%YAML 1.2
+---
+Name: Digital Output
+Category: IO blocks
+Header: rpp/gio.h
+Mnemonic: DOUT
+
+Inputs:
+  - { name: "Digital Output value", type: "bool" }
+Outputs:
+
+Parameters:
+  - { name: "Port type", type: "Choice", range: "GIOA, GIOB, NHET1" }
+  - { name: "Pin number", type: "int8", range: "[0–7]", note: "(depends on selected port)" }
+  - { name: "Initial output value", type: "uint8", range: "[0,1]" }
+  - { name: "Output Type", type: "Choice", range: "Open Drain, Push/Pull" }
+
+# Description is in Markdown mark-up
+Description: &desc |
+
+  Writes a value to a GPIO pin. The block supports GIOA, GIOB and NHET1 ports.
+  Any pin can be configured as open drain or push/pull and initial output value
+  can be specified. The initial value is a value, which will appear on the pin
+  when the GPIO module is initialized and stays there until the first
+  block execution.
+
+  It is not allowed to write to one pin by using more then one DOUT blocks.
+  It is not allowed to use DOUT and DIN blocks on one GPIO pin.
+
+Help: *desc
+
+Status: Stable
+
+RPP API functions used:
+  - hal_gpio_pin_get_dsc
+  - hal_gpio_pin_set_value
+  - hal_gpio_pin_conf_set
+
+Relevant demos:
+  - gio_demo
+...
+*/
+
+
+#define S_FUNCTION_NAME sfunction_dout
+#include "header.c"
+
+#define PARAM_NAME_PORT_TYPE           "port_type"
+#define PARAM_NAME_PIN_NUMBER          "pin_number"
+#define PARAM_NAME_DEFAULT_OUTPUT      "default_output"
+#define PARAM_NAME_OUTPUT_TYPE         "output_type"
+
+/** Identifiers of the block parameters */
+enum params{
+       PARAM_PORT_TYPE,
+       PARAM_PIN_NUMBER,
+       PARAM_DEFAULT_OUTPUT,
+       PARAM_OUTPUT_TYPE,
+       PARAMS_COUNT
+};
+
+enum port_types{
+       PORT_UNKNOWN,
+       PORT_GIOA,
+       PORT_GIOB,
+       PORT_NHET1
+};
+
+enum inputs{
+       IN_PIN_VALUE,
+       INPUTS_COUNT
+};
+
+static void mdlInitializeSizes(SimStruct *S)
+{
+       /*
+       * Configure parameters: 4
+       *  - Port type
+       *  - Pin number
+       *  - Default output value
+       *  - Output type
+       */
+       if (!rppSetNumParams(S, PARAMS_COUNT)) {
+               return;
+       }
+
+       /*
+       * Configure output ports: 0
+       */
+       if (!ssSetNumOutputPorts(S, 0)) {
+               return;
+       }
+
+       /*
+       * Configure input ports: 1
+       */
+       if (!ssSetNumInputPorts(S, INPUTS_COUNT)) {
+               return;
+       }
+
+       rppAddInputPort(S, IN_PIN_VALUE, SS_BOOLEAN);
+
+       /* Set standard options for this block */
+       rppSetStandardOptions(S);
+}
+
+
+#ifdef MATLAB_MEX_FILE
+#define MDL_CHECK_PARAMETERS
+static void mdlCheckParameters(SimStruct *S)
+{
+       if ((int_T)mxGetPr(ssGetSFcnParam(S, PARAM_PORT_TYPE))[0] == PORT_GIOA) {
+               if (!rppValidParamRange(S, PARAM_PIN_NUMBER, 0, 7)) {
+                       return;
+               }
+       }
+       else if ((int_T)mxGetPr(ssGetSFcnParam(S, PARAM_PORT_TYPE))[0] == PORT_GIOB) {
+               if (!rppValidParamRange(S, PARAM_PIN_NUMBER, 0, 7)) {
+                       return;
+               }
+       }
+       else if ((int_T)mxGetPr(ssGetSFcnParam(S, PARAM_PORT_TYPE))[0] == PORT_NHET1) {
+               if (!rppValidParamRange(S, PARAM_PIN_NUMBER, 0, 31)) {
+                       return;
+               }
+       }
+       else {
+               return;
+       }
+
+       if (!rppValidParamRange(S, PARAM_DEFAULT_OUTPUT, 0, 1)) {
+               return;
+       }
+}
+#endif
+
+
+#ifdef MATLAB_MEX_FILE
+#define MDL_SET_WORK_WIDTHS
+static void mdlSetWorkWidths(SimStruct *S)
+{
+       /* Set number of run-time parameters */
+       if (!ssSetNumRunTimeParams(S, PARAMS_COUNT)) {
+               return;
+       }
+       /* Register the run-time parameter 1 */
+       ssRegDlgParamAsRunTimeParam(S, PARAM_PORT_TYPE,      PARAM_PORT_TYPE,      PARAM_NAME_PORT_TYPE,      SS_INT8);
+       ssRegDlgParamAsRunTimeParam(S, PARAM_PIN_NUMBER,     PARAM_PIN_NUMBER,     PARAM_NAME_PIN_NUMBER,     SS_INT8);
+       ssRegDlgParamAsRunTimeParam(S, PARAM_DEFAULT_OUTPUT, PARAM_DEFAULT_OUTPUT, PARAM_NAME_DEFAULT_OUTPUT, SS_BOOLEAN);
+       ssRegDlgParamAsRunTimeParam(S, PARAM_OUTPUT_TYPE,    PARAM_OUTPUT_TYPE,    PARAM_NAME_OUTPUT_TYPE,    SS_INT8);
+}
+#endif
+
+
+#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
+#define UNUSED_MDLOUTPUTS
+#define UNUSED_MDLTERMINATE
+#include "trailer.c"
diff --git a/rpp/blocks/sfunction_frayconfig.c b/rpp/blocks/sfunction_frayconfig.c
deleted file mode 100644 (file)
index 43ac04b..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-/* Copyright (C) 2013, 2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornimch@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_frayc.c
- * Abstract:
- *     C-MEX S-function block for RPP FlexRay cluster configuration.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *     <matlabroot>/bin/mex sfunction_frayconfig.c
- */
-
-/*
-%YAML 1.2
----
-Name: Configure FlexRay node
-Category: FlexRay
-Header: rpp/fr.h
-Mnemonic: FRC
-
-Inputs:
-
-Outputs:
-  - { name: "ErrFlag", type: "bool" }
-
-Parameters:
-  - { name: "gColdStartAttempts",                type: "uint8"  }
-  - { name: "gListenNoise",                      type: "uint8"  }
-  - { name: "gMacroPerCycle",                    type: "uint16" }
-  - { name: "gMaxWithoutClockCorrectionFatal",   type: "uint8"  }
-  - { name: "gMaxWithoutClockCorrectionPassive", type: "uint8"  }
-  - { name: "gNetworkManagementVectorLength",    type: "uint8"  }
-  - { name: "gNumberOfMinislots",                type: "uint16" }
-  - { name: "gNumberOfStaticSlots",              type: "uint16" }
-  - { name: "gOffsetCorrectionStart",            type: "uint16" }
-  - { name: "gPayloadLengthStatic",              type: "uint8"  }
-  - { name: "gSyncNodeMax",                      type: "uint8"  }
-  - { name: "gdActionPointOffset",               type: "uint8"  }
-  - { name: "gdCASRxLowMax",                     type: "uint8"  }
-  - { name: "gdDynamicSlotIdlePhase",            type: "uint8"  }
-  - { name: "gdMinislot",                        type: "uint8"  }
-  - { name: "gdMinislotActionPointOffset",       type: "uint8"  }
-  - { name: "gdNIT",                             type: "uint16" }
-  - { name: "gdSampleClockPeriod",               type: "uint8"  }
-  - { name: "gdStaticSlot",                      type: "uint16" }
-  - { name: "gdTSSTransmitter",                  type: "uint8"  }
-  - { name: "gdWakeupSymbolRxIdle",              type: "uint8"  }
-  - { name: "gdWakeupSymbolRxLow",               type: "uint8"  }
-  - { name: "gdWakeupSymbolRxWindow",            type: "uint16" }
-  - { name: "gdWakeupSymbolTxIdle",              type: "uint8"  }
-  - { name: "gdWakeupSymbolTxLow",               type: "uint8"  }
-  - { name: "pAllowHaltDueToClock",              type: "bool"   }
-  - { name: "pAllowPassiveToActive",             type: "uint8"  }
-  - { name: "pChannels",                         type: "uint8"  }
-  - { name: "pClusterDriftDamping",              type: "uint8"  }
-  - { name: "pDelayCompensationA",               type: "uint16" }
-  - { name: "pDelayCompensationB",               type: "uint16" }
-  - { name: "pExternOffsetCorrection",           type: "uint8"  }
-  - { name: "pExternRateCorrection",             type: "uint8"  }
-  - { name: "pKeySlotUsedForStartup",            type: "bool"   }
-  - { name: "pKeySlotUsedForSync",               type: "bool"   }
-  - { name: "pLatestTx",                         type: "uint16" }
-  - { name: "pMacroInitialOffsetA",              type: "uint8"  }
-  - { name: "pMacroInitialOffsetB",              type: "uint8"  }
-  - { name: "pMicroInitialOffsetA",              type: "uint8"  }
-  - { name: "pMicroInitialOffsetB",              type: "uint8"  }
-  - { name: "pMicroPerCycle",                    type: "uint32" }
-  - { name: "pRateCorrectionOut",                type: "uint16" }
-  - { name: "pOffsetCorrectionOut",              type: "uint16" }
-  - { name: "pSamplesPerMicrotick",              type: "uint8"  }
-  - { name: "pSingleSlotEnabled",                type: "uint8"  }
-  - { name: "pWakeupChannel",                    type: "uint8"  }
-  - { name: "pWakeupPattern",                    type: "uint8"  }
-  - { name: "pdAcceptedStartupRange",            type: "uint16" }
-  - { name: "pdListenTimeout",                   type: "uint32" }
-  - { name: "pdMaxDrift",                        type: "uint16" }
-  - { name: "pDecodingCorrection",               type: "uint8"  }
-  - { name: "syncFramePayloadMultiplexEnabled",  type: "bool"   }
-  - { name: "secureBuffers",                     type: "uint8"  }
-
-# Description and Help is in Markdown mark-up
-Description: &desc |
-
-  This block ...
-
-Help: *desc
-
-Status: Beta
-
-RPP API functions used:
-
-Relevant demos:
-...
-*/
-
-#define S_FUNCTION_NAME sfunction_frayconfig
-#include "header.c"
-#include <stdio.h>
-
-enum params {
-       gColdStartAttempts_IDX                 = 0,
-       gListenNoise_IDX                                   = 1,
-       gMacroPerCycle_IDX                                 = 2,
-       gMaxWithoutClockCorrectionFatal_IDX    = 3,
-       gMaxWithoutClockCorrectionPassive_IDX  = 4,
-       gNetworkManagementVectorLength_IDX     = 5,
-       gNumberOfMinislots_IDX                 = 6,
-       gNumberOfStaticSlots_IDX                   = 7,
-       gOffsetCorrectionStart_IDX                 = 8,
-       gPayloadLengthStatic_IDX                   = 9,
-       gSyncNodeMax_IDX                                   = 10,
-       gdActionPointOffset_IDX                    = 11,
-       gdCASRxLowMax_IDX                                  = 12,
-       gdDynamicSlotIdlePhase_IDX                 = 13,
-       gdMinislot_IDX                             = 14,
-       gdMinislotActionPointOffset_IDX        = 15,
-       gdNIT_IDX                                                  = 16,
-       gdSampleClockPeriod_IDX                    = 17,
-       gdStaticSlot_IDX                                   = 18,
-       gdTSSTransmitter_IDX                       = 19,
-       gdWakeupSymbolRxIdle_IDX                   = 20,
-       gdWakeupSymbolRxLow_IDX                    = 21,
-       gdWakeupSymbolRxWindow_IDX                 = 22,
-       gdWakeupSymbolTxIdle_IDX                   = 23,
-       gdWakeupSymbolTxLow_IDX                    = 24,
-
-       pAllowHaltDueToClock_IDX                   = 25,
-       pAllowPassiveToActive_IDX                  = 26,
-       pChannels_IDX                                      = 27,
-       pClusterDriftDamping_IDX                   = 28,
-       pDelayCompensationA_IDX                    = 29,
-       pDelayCompensationB_IDX                    = 30,
-       pExternOffsetCorrection_IDX            = 31,
-       pExternRateCorrection_IDX                  = 32,
-       pKeySlotUsedForStartup_IDX                 = 33,
-       pKeySlotUsedForSync_IDX                    = 34,
-       pLatestTx_IDX                                      = 35,
-       pMacroInitialOffsetA_IDX                   = 36,
-       pMacroInitialOffsetB_IDX                   = 37,
-       pMicroInitialOffsetA_IDX                   = 38,
-       pMicroInitialOffsetB_IDX                   = 39,
-       pMicroPerCycle_IDX                                 = 40,
-       pRateCorrectionOut_IDX                 = 41,
-       pOffsetCorrectionOut_IDX                   = 42,
-       pSamplesPerMicrotick_IDX                   = 43,
-       pSingleSlotEnabled_IDX                 = 44,
-       pWakeupChannel_IDX                                 = 45,
-       pWakeupPattern_IDX                                 = 46,
-       pdAcceptedStartupRange_IDX                 = 47,
-       pdListenTimeout_IDX                        = 48,
-       pdMaxDrift_IDX                             = 49,
-       pDecodingCorrection_IDX                    = 50,
-       syncFramePayloadMultiplexEnabled_IDX   = 51,
-       secureBuffers_IDX                                  = 52,
-       PARAM_COUNT
-};
-
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-
-    if (!rppSetNumParams(S, PARAM_COUNT)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 0
-     */
-    if (!ssSetNumInputPorts(S, 0)) {
-        return;
-    }
-
-    /*
-     * Configure output ports: 1
-     *  - Error flag.
-     */
-    if (!ssSetNumOutputPorts(S, 1)) {
-        return;
-    }
-    rppAddOutputPort(S, 0, SS_BOOLEAN);
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_CHECK_PARAMETERS
-static void mdlCheckParameters(SimStruct *S)
-{
-
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_SET_WORK_WIDTHS
-static void mdlSetWorkWidths(SimStruct *S)
-{
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, PARAM_COUNT)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-       ssRegDlgParamAsRunTimeParam(S, gColdStartAttempts_IDX, gColdStartAttempts_IDX, "gColdStartAttempts", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gListenNoise_IDX, gListenNoise_IDX, "gListenNoise", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gMacroPerCycle_IDX, gMacroPerCycle_IDX, "gMacroPerCycle", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, gMaxWithoutClockCorrectionFatal_IDX, gMaxWithoutClockCorrectionFatal_IDX, "gMaxWithoutClockCorrectionFatal", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gMaxWithoutClockCorrectionPassive_IDX, gMaxWithoutClockCorrectionPassive_IDX, "gMaxWithoutClockCorrectionPassive", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gNetworkManagementVectorLength_IDX, gNetworkManagementVectorLength_IDX, "gNetworkManagementVectorLength", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gNumberOfMinislots_IDX, gNumberOfMinislots_IDX, "gNumberOfMinislots", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, gNumberOfStaticSlots_IDX, gNumberOfStaticSlots_IDX, "gNumberOfStaticSlots", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, gOffsetCorrectionStart_IDX, gOffsetCorrectionStart_IDX, "gOffsetCorrectionStart", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, gPayloadLengthStatic_IDX, gPayloadLengthStatic_IDX, "gPayloadLengthStatic", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gSyncNodeMax_IDX, gSyncNodeMax_IDX, "gSyncNodeMax", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdActionPointOffset_IDX, gdActionPointOffset_IDX, "gdActionPointOffset", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdCASRxLowMax_IDX, gdCASRxLowMax_IDX, "gdCASRxLowMax", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdDynamicSlotIdlePhase_IDX, gdDynamicSlotIdlePhase_IDX, "gdDynamicSlotIdlePhase", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdMinislot_IDX, gdMinislot_IDX, "gdMinislot", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdMinislotActionPointOffset_IDX, gdMinislotActionPointOffset_IDX, "gdMinislotActionPointOffset", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdNIT_IDX, gdNIT_IDX, "gdNIT", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, gdSampleClockPeriod_IDX, gdSampleClockPeriod_IDX, "gdSampleClockPeriod", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdStaticSlot_IDX, gdStaticSlot_IDX, "gdStaticSlot", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, gdTSSTransmitter_IDX, gdTSSTransmitter_IDX, "gdTSSTransmitter", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdWakeupSymbolRxIdle_IDX, gdWakeupSymbolRxIdle_IDX, "gdWakeupSymbolRxIdle", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdWakeupSymbolRxLow_IDX, gdWakeupSymbolRxLow_IDX, "gdWakeupSymbolRxLow", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdWakeupSymbolRxWindow_IDX, gdWakeupSymbolRxWindow_IDX, "gdWakeupSymbolRxWindow", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, gdWakeupSymbolTxIdle_IDX, gdWakeupSymbolTxIdle_IDX, "gdWakeupSymbolTxIdle", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, gdWakeupSymbolTxLow_IDX, gdWakeupSymbolTxLow_IDX, "gdWakeupSymbolTxLow", SS_UINT8);
-
-       ssRegDlgParamAsRunTimeParam(S, pAllowHaltDueToClock_IDX, pAllowHaltDueToClock_IDX, "pAllowHaltDueToClock", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, pAllowPassiveToActive_IDX, pAllowPassiveToActive_IDX, "pAllowPassiveToActive", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pChannels_IDX, pChannels_IDX, "pChannels", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pClusterDriftDamping_IDX, pClusterDriftDamping_IDX, "pClusterDriftDamping", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pDelayCompensationA_IDX, pDelayCompensationA_IDX, "pDelayCompensationA", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, pDelayCompensationB_IDX, pDelayCompensationB_IDX, "pDelayCompensationB", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, pExternOffsetCorrection_IDX, pExternOffsetCorrection_IDX, "pExternOffsetCorrection", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pExternRateCorrection_IDX, pExternRateCorrection_IDX, "pExternRateCorrection", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pKeySlotUsedForStartup_IDX, pKeySlotUsedForStartup_IDX, "pKeySlotUsedForStartup", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, pKeySlotUsedForSync_IDX, pKeySlotUsedForSync_IDX, "pKeySlotUsedForSync", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, pLatestTx_IDX, pLatestTx_IDX, "pLatestTx", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, pMacroInitialOffsetA_IDX, pMacroInitialOffsetA_IDX, "pMacroInitialOffsetA", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pMacroInitialOffsetB_IDX, pMacroInitialOffsetB_IDX, "pMacroInitialOffsetB", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pMicroInitialOffsetA_IDX, pMicroInitialOffsetA_IDX, "pMicroInitialOffsetA", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pMicroInitialOffsetB_IDX, pMicroInitialOffsetB_IDX, "pMicroInitialOffsetB", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pMicroPerCycle_IDX, pMicroPerCycle_IDX, "pMicroPerCycle", SS_UINT32);
-       ssRegDlgParamAsRunTimeParam(S, pRateCorrectionOut_IDX, pRateCorrectionOut_IDX, "pRateCorrectionOut", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, pOffsetCorrectionOut_IDX, pOffsetCorrectionOut_IDX, "pOffsetCorrectionOut", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, pSamplesPerMicrotick_IDX, pSamplesPerMicrotick_IDX, "pSamplesPerMicrotick", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pSingleSlotEnabled_IDX, pSingleSlotEnabled_IDX, "pSingleSlotEnabled", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pWakeupChannel_IDX, pWakeupChannel_IDX, "pWakeupChannel", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pWakeupPattern_IDX, pWakeupPattern_IDX, "pWakeupPattern", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, pdAcceptedStartupRange_IDX, pdAcceptedStartupRange_IDX, "pdAcceptedStartupRange", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, pdListenTimeout_IDX, pdListenTimeout_IDX, "pdListenTimeout", SS_UINT32);
-       ssRegDlgParamAsRunTimeParam(S, pdMaxDrift_IDX, pdMaxDrift_IDX, "pdMaxDrift", SS_UINT16);
-       ssRegDlgParamAsRunTimeParam(S, pDecodingCorrection_IDX, pDecodingCorrection_IDX, "pDecodingCorrection", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, syncFramePayloadMultiplexEnabled_IDX, syncFramePayloadMultiplexEnabled_IDX, "syncFramePayloadMultiplexEnabled", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, secureBuffers_IDX, secureBuffers_IDX, "secureBuffers", SS_UINT8);
-}
-#endif
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
diff --git a/rpp/blocks/sfunction_frayreceive.c b/rpp/blocks/sfunction_frayreceive.c
deleted file mode 100644 (file)
index 81d7f4b..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Copyright (C) 2013, 2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornimch@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_frayreceive.c
- * Abstract:
- *     C-MEX S-function block for RPP FlexRay RX buffer configuration and message receiving.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *     <matlabroot>/bin/mex sfunction_frayreceive.c
- */
-
-/*
-%YAML 1.2
----
-Name: Configure RX buffer
-Category: FlexRayin
-Header: rpp/fr.h
-Mnemonic: FRC
-
-Inputs:
-
-Outputs:
-  - { name: "ErrFlag", type: "bool" }
-  - { name: "Receive", type: "uint8 vector" }
-  - { name: "Length", type: "uint8" }
-  - { name: "Trigger", type: "bool" }
-
-Parameters:
-  - { name: "channel", type: "uint8" }
-  - { name: "cycleCounterFiltering", type: "uint8" }
-  - { name: "maxPayload", type: "uint8", range: "(in half-words)" }
-  - { name: "msgBufferInterrupt", type: "bool" }
-  - { name: "payloadPreambleIndicatorTr", type: "bool" }
-  - { name: "singleTransmit", type: "bool" }
-  - { name: "slotId", type: "uint32" }
-
-# Description and Help is in Markdown mark-up
-Description: &desc |
-
-  This block ...
-
-Help: *desc
-
-Status: Beta
-
-RPP API functions used:
-
-Relevant demos:
-...
-*/
-
-#define S_FUNCTION_NAME sfunction_frayreceive
-#include "header.c"
-#include <stdio.h>
-
-enum params {
-       channel_IDX                                             = 0,
-       cycleCounterFiltering_IDX               = 1,
-       maxPayload_IDX                                  = 2,
-       msgBufferInterrupt_IDX                  = 3,
-       payloadPreambleIndicatorTr_IDX  = 4,
-       singleTransmit_IDX                              = 5,
-       slotId_IDX                                              = 6,
-       PARAM_COUNT
-};
-
-enum outputs {
-       OUTPUT_ERROR_FLAG,
-       OUTPUT_MESSAGE,
-       OUTPUT_LENGTH,
-       OUTPUT_TRIGGER,
-       OUTPUT_COUNT,
-};
-
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-    if (!rppSetNumParams(S, PARAM_COUNT)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 0
-     */
-    if (!ssSetNumInputPorts(S, 0)) {
-        return;
-    }
-
-
-    /*
-     * Configure output ports: 4
-     *  - Error flag.
-        *  - Message
-        *  - Length (number of received bytes)
-        *  - Trigger
-     */
-    if (!ssSetNumOutputPorts(S, OUTPUT_COUNT)) {
-        return;
-    }
-       rppAddOutputPort(S, OUTPUT_ERROR_FLAG, SS_BOOLEAN);
-       rppAddOutputVectorPort(S, OUTPUT_MESSAGE, SS_UINT8, 2*(int_T)mxGetPr(ssGetSFcnParam(S, 2))[0]);
-       rppAddOutputPort(S, OUTPUT_LENGTH, SS_UINT8);
-       rppAddOutputPort(S, OUTPUT_TRIGGER, SS_BOOLEAN);
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_CHECK_PARAMETERS
-static void mdlCheckParameters(SimStruct *S)
-{
-
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_SET_WORK_WIDTHS
-static void mdlSetWorkWidths(SimStruct *S)
-{
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, PARAM_COUNT)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-    ssRegDlgParamAsRunTimeParam(S, channel_IDX, channel_IDX, "channel", SS_UINT8);
-    ssRegDlgParamAsRunTimeParam(S, cycleCounterFiltering_IDX, cycleCounterFiltering_IDX, "cycleCounterFiltering", SS_UINT8);
-    ssRegDlgParamAsRunTimeParam(S, maxPayload_IDX, maxPayload_IDX, "maxPayload", SS_UINT8);
-    ssRegDlgParamAsRunTimeParam(S, msgBufferInterrupt_IDX, msgBufferInterrupt_IDX, "msgBufferInterrupt", SS_BOOLEAN);
-    ssRegDlgParamAsRunTimeParam(S, payloadPreambleIndicatorTr_IDX, payloadPreambleIndicatorTr_IDX, "payloadPreambleIndicatorTr", SS_BOOLEAN);
-    ssRegDlgParamAsRunTimeParam(S, singleTransmit_IDX, singleTransmit_IDX, "singleTransmit", SS_BOOLEAN);
-    ssRegDlgParamAsRunTimeParam(S, slotId_IDX, slotId_IDX, "slotId", SS_UINT32);
-}
-#endif
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
diff --git a/rpp/blocks/sfunction_fraysbc.c b/rpp/blocks/sfunction_fraysbc.c
deleted file mode 100644 (file)
index 2dd0d83..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Copyright (C) 2013, 2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornimch@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_fraysbc.c
- * Abstract:
- *     C-MEX S-function block for RPP FlexRay static buffer configuration.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *     <matlabroot>/bin/mex sfunction_fraysbc.c
- */
-
-/*
-%YAML 1.2
----
-Name: FlexRay static buffer configuration
-Category: FlexRay
-Header: rpp/fr.h
-Mnemonic: FRC
-
-Inputs:
-
-Outputs:
-
-Parameters:
-
-# Description and Help is in Markdown mark-up
-Description: &desc |
-
-  This block ...
-
-Help: *desc
-
-Status: Beta
-
-RPP API functions used:
-
-Relevant demos:
-...
-*/
-
-#define S_FUNCTION_NAME sfunction_fraysbc
-#include "header.c"
-#include <stdio.h>
-
-#define channel_IDX                                            0
-#define cycleCounterFiltering_IDX              1
-#define isTx_IDX                                               2
-#define maxPayload_IDX                                 3
-#define msgBufferInterrupt_IDX                 4
-#define payloadPreambleIndicatorTr_IDX 5
-#define singleTransmit_IDX                             6
-#define slotId_IDX                                             7
-
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-    /*
-     * Configure parameters: 25
-        * channel (0 - A, 1 - B, 2 - AB)
-        * cycleCounterFiltering
-        * isTx
-        * maxPayload
-        * msgBufferInterrupt
-        * payloadPreambleIndicatorTr
-        * singleTransmit
-        * slotId
-     */
-    if (!rppSetNumParams(S, 8)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 0
-     */
-    if (!ssSetNumInputPorts(S, 0)) {
-        return;
-    }
-
-    /*
-     * Configure output ports: 0
-     */
-    if (!ssSetNumOutputPorts(S, 0)) {
-        return;
-    }
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_CHECK_PARAMETERS
-static void mdlCheckParameters(SimStruct *S)
-{
-
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_SET_WORK_WIDTHS
-static void mdlSetWorkWidths(SimStruct *S)
-{
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, 8)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-       ssRegDlgParamAsRunTimeParam(S, channel_IDX, channel_IDX, "channel", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, cycleCounterFiltering_IDX, cycleCounterFiltering_IDX, "cycleCounterFiltering", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, isTx_IDX, isTx_IDX, "isTx", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, maxPayload_IDX, maxPayload_IDX, "maxPayload", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, msgBufferInterrupt_IDX, msgBufferInterrupt_IDX, "msgBufferInterrupt", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, payloadPreambleIndicatorTr_IDX, payloadPreambleIndicatorTr_IDX, "payloadPreambleIndicatorTr", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, singleTransmit_IDX, singleTransmit_IDX, "singleTransmit", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, slotId_IDX, slotId_IDX, "slotId", SS_UINT32);
-}
-#endif
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
diff --git a/rpp/blocks/sfunction_fraytransmit.c b/rpp/blocks/sfunction_fraytransmit.c
deleted file mode 100644 (file)
index b752533..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/* Copyright (C) 2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornimch@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_fraytransmit.c
- * Abstract:
- *     C-MEX S-function block for RPP FlexRay TX buffer configuration and message transmittion.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *             <matlabroot>/bin/mex -I<matlabroot>/toolbox/shared/can/src/scanutil -I<matlabroot>/toolbox/rtw/targets/common/can/datatypes sfunction_cantransmit.c <matlabroot>/toolbox/rtw/targets/common/can/datatypes/sfun_can_util.c <matlabroot>/toolbox/rtw/targets/common/can/datatypes/can_msg.c
- */
-
-/*
-%YAML 1.2
----
-Name: Configure TX buffer
-Category: FlexRay
-Header: rpp/fr.h
-Mnemonic: FRC
-
-Inputs:
-  - { name: "Send", type: "uint8 vector" }
-
-Outputs:
-  - { name: "ErrFlag", type: "bool" }
-
-Parameters:
-  - { name: "channel", type: "uint8" }
-  - { name: "cycleCounterFiltering", type: "uint8" }
-  - { name: "maxPayload", type: "uint8", range: "(in half-words)"  }
-  - { name: "msgBufferInterrupt", type: "bool" }
-  - { name: "payloadPreambleIndicatorTr", type: "bool" }
-  - { name: "singleTransmit", type: "bool" }
-  - { name: "slotId", type: "uint32" }
-
-# Description and Help is in Markdown mark-up
-Description: &desc |
-
-  This block ...
-
-Help: *desc
-
-Status: Beta
-
-RPP API functions used:
-
-Relevant demos:
-...
-*/
-
-#define S_FUNCTION_NAME sfunction_fraytransmit
-#include "header.c"
-#include <stdio.h>
-
-enum params {
-       channel_IDX                                             = 0,
-       cycleCounterFiltering_IDX               = 1,
-       maxPayload_IDX                                  = 2,
-       msgBufferInterrupt_IDX                  = 3,
-       payloadPreambleIndicatorTr_IDX  = 4,
-       singleTransmit_IDX                              = 5,
-       slotId_IDX                                              = 6,
-       PARAM_COUNT
-};
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-    if (!rppSetNumParams(S, PARAM_COUNT)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 1
-     */
-    if (!ssSetNumInputPorts(S, 1)) {
-        return;
-    }
-       rppAddInputVectorPort(S, 0, SS_UINT8, 2*(int_T)mxGetPr(ssGetSFcnParam(S, 2))[0]);
-
-    /*
-     * Configure output ports: 1
-     *  - Error flag.
-     */
-    if (!ssSetNumOutputPorts(S, 1)) {
-        return;
-    }
-    rppAddOutputPort(S, 0, SS_BOOLEAN);
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_CHECK_PARAMETERS
-static void mdlCheckParameters(SimStruct *S)
-{
-
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_SET_WORK_WIDTHS
-static void mdlSetWorkWidths(SimStruct *S)
-{
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, PARAM_COUNT)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-       ssRegDlgParamAsRunTimeParam(S, channel_IDX, channel_IDX, "channel", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, cycleCounterFiltering_IDX, cycleCounterFiltering_IDX, "cycleCounterFiltering", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, maxPayload_IDX, maxPayload_IDX, "maxPayload", SS_UINT8);
-       ssRegDlgParamAsRunTimeParam(S, msgBufferInterrupt_IDX, msgBufferInterrupt_IDX, "msgBufferInterrupt", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, payloadPreambleIndicatorTr_IDX, payloadPreambleIndicatorTr_IDX, "payloadPreambleIndicatorTr", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, singleTransmit_IDX, singleTransmit_IDX, "singleTransmit", SS_BOOLEAN);
-       ssRegDlgParamAsRunTimeParam(S, slotId_IDX, slotId_IDX, "slotId", SS_UINT32);
-}
-#endif
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
diff --git a/rpp/blocks/sfunction_hbr.c b/rpp/blocks/sfunction_hbr.c
deleted file mode 100644 (file)
index e19889e..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright (C) 2013, 2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Carlos Jenkins <carlos@jenkins.co.cr>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_hbr.c
- * Abstract:
- *     C-MEX S-function block for RPP H-Bridge output.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *     <matlabroot>/bin/mex sfunction_hbr.c
- */
-
-/*
-%YAML 1.2
----
-Name: H-Bridge Control
-Category: Power output blocks
-Header: rpp/hbr.h
-Mnemonic: HBR
-
-Inputs:
-  - { name: "Enable",  type: "bool"   }
-  - { name: "Control", type: "double" }
-
-Outputs:
-  - { name: "ErrFlag", type: "bool" }
-
-Parameters:
-
-# Description and Help is in Markdown mark-up
-Description: |
-
-  Control H-Bridge (10A, PWM) at default frequency.
-
-  This block expects input in range [-1.0, 1.0].
-
-Help: |
-
-  This block allows to control the H-Bridge on the RPP board. The ErrFlag should raise only if
-  `rpp_hbr_control()` returns error. The H-Bridge is initialized with the default frequency 
-  (~18kHz). A future improvement could include a parameter to set the frequency. Because the ErrFlag 
-  should never set, once set the following steps will never clear it back.
-
-Status: Stable
-
-RPP API functions used:
-    - rpp_hbr_enable()
-    - rpp_hbr_control()
-
-Relevant demos:
-   - hbridge_analog_control
-   - hbridge_digital_control
-   - hbridge_sinewave_control
-...
-*/
-
-#define S_FUNCTION_NAME sfunction_hbr
-#include "header.c"
-
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-    /*
-     * Configure parameters: 0
-     */
-    if (!rppSetNumParams(S, 0)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 1
-     *  - Enable
-     *  - Control power.
-     */
-    if (!ssSetNumInputPorts(S, 2)) {
-        return;
-    }
-    rppAddInputPort(S, 0, SS_BOOLEAN);
-    rppAddInputPort(S, 1, SS_DOUBLE);
-
-    /*
-     * Configure output ports: 1
-     *  - Error flag.
-     */
-    if (!ssSetNumOutputPorts(S, 1)) {
-        return;
-    }
-    rppAddOutputPort(S, 0, SS_BOOLEAN);
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLCHECKPARAMETERS
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
diff --git a/rpp/blocks/sfunction_irc.c b/rpp/blocks/sfunction_irc.c
deleted file mode 100644 (file)
index 3b305ed..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Copyright (C) 2013, 2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Karel Kočí
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_irc.c
- * Abstract:
- *     C-MEX S-function block for RPP IRC input.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *     <matlabroot>/bin/mex sfunction_irc.c
- */
-
-/*
-%YAML 1.2
----
-Name: IRC Input
-Category: IO blocks
-Header: rpp/irc.h
-Mnemonic: IRC
-
-Inputs:
-
-Outputs:
-  - { name: "IRC value", type: "int32" }
-  - { name: "ErrFlag", type: "bool" }
-
-Parameters:
-  - { name: "IRC number [1-2]", type: "uint8" }
-
-# Description and Help is in Markdown mark-up
-Description: &desc |
-
-  This block allows to read a value of an IRC sensors. Two
-  configurations are supported: IRC is connected to pins DIN10 and DIN11
-  and/or pins DIN14 and DIN15. The ErrFlag output raises if an error is
-  detected, which should normally not happen.
-
-Help: *desc
-
-Status: Stable
-
-RPP API functions used:
-    - rpp_irc_enable()
-    - rpp_irc_status()
-    - rpp_irc_get()
-
-Relevant demos:
-    - irc_input
-...
-*/
-
-#define S_FUNCTION_NAME sfunction_irc
-#include "header.c"
-
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-    /*
-     * Configure parameters: 1
-     *  - IRC number: [1-2]
-     */
-    if (!rppSetNumParams(S, 1)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 0
-     */
-    if (!ssSetNumInputPorts(S, 0)) {
-        return;
-    }
-
-    /*
-     * Configure output ports: 2
-     *  - IRC input.
-     *  - Error flag.
-     */
-    if (!ssSetNumOutputPorts(S, 2)) {
-        return;
-    }
-    rppAddOutputPort(S, 0, SS_INT32);
-    rppAddOutputPort(S, 1, SS_BOOLEAN);
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_CHECK_PARAMETERS
-static void mdlCheckParameters(SimStruct *S)
-{
-    /* Check the parameter 1 */
-    if (!rppValidParamRange(S, 0, 1, 2)) {
-        return;
-    }
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_SET_WORK_WIDTHS
-static void mdlSetWorkWidths(SimStruct *S)
-{
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, 1)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-    ssRegDlgParamAsRunTimeParam(S, 0, 0, "p1", SS_UINT8);
-}
-#endif
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
diff --git a/rpp/blocks/sfunction_lout.c b/rpp/blocks/sfunction_lout.c
deleted file mode 100644 (file)
index ef5bf7a..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Copyright (C) 2013, 2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Carlos Jenkins <carlos@jenkins.co.cr>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_lout.c
- * Abstract:
- *     C-MEX S-function block for RPP digital output.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *     <matlabroot>/bin/mex sfunction_lout.c
- */
-
-/*
-%YAML 1.2
----
-Name: Digital Output
-Category: IO blocks
-Header: rpp/lout.h
-Mnemonic: LOUT
-
-Inputs:
-  - { name: "Digital Output",   type: "bool"  }
-
-Outputs:
-  - { name: "ErrFlag",          type: "bool"  }
-
-Parameters:
-  - { name: "Pin number", type: "uint8", range: "[1-8]" }
-
-# Description and Help is in Markdown mark-up
-Description: |
-
-  Sends the digital value to the specified logic output pin on the RPP
-  board.
-
-  An input of 1 sets the pin high and 0 sets the pin low.
-
-  If an error is detected while setting the pin, the ErrFlag is set
-  high.
-
-Help: |
-
-  This block allows to write to the digital outputs on the RPP board. The ErrFlag should raise if 
-  `rpp_lout_set()` or `rpp_lout_update()` returns error. Because the ErrFlag should never set, 
-  once set the following steps will never clear it back. `rpp_lout_update()` is called on each 
-  block, which is not the most efficient but guaranties consistent behavior.
-
-Status: Stable
-
-RPP API functions used:
-    - rpp_lout_set()
-    - rpp_lout_update()
-
-Relevant demos:
-    - digital_passthrough
-    - led_blink_all
-    - led_blink
-...
-*/
-
-#define S_FUNCTION_NAME sfunction_lout
-#include "header.c"
-
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-    /*
-     * Configure parameters: 1
-     *  - Pin number: [1-8]
-     */
-    if (!rppSetNumParams(S, 1)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 1
-     *  - Digital output.
-     */
-    if (!ssSetNumInputPorts(S, 1)) {
-        return;
-    }
-    rppAddInputPort(S, 0, SS_BOOLEAN);
-
-    /*
-     * Configure output ports: 1
-     *  - Error flag.
-     */
-    if (!ssSetNumOutputPorts(S, 1)) {
-        return;
-    }
-    rppAddOutputPort(S, 0, SS_BOOLEAN);
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_CHECK_PARAMETERS
-static void mdlCheckParameters(SimStruct *S)
-{
-    /* Check the parameter 1 */
-    if (!rppValidParamRange(S, 0, 1, 8)) {
-        return;
-    }
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_SET_WORK_WIDTHS
-static void mdlSetWorkWidths(SimStruct *S)
-{
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, 1)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-    ssRegDlgParamAsRunTimeParam(S, 0, 0, "p1", SS_UINT8);
-}
-#endif
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
diff --git a/rpp/blocks/sfunction_mout.c b/rpp/blocks/sfunction_mout.c
deleted file mode 100644 (file)
index 8ffbbbb..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Copyright (C) 2013, 2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Carlos Jenkins <carlos@jenkins.co.cr>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_mout.c
- * Abstract:
- *     C-MEX S-function block for RPP power output.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *     <matlabroot>/bin/mex sfunction_mout.c
- */
-
-/*
-%YAML 1.2
----
-Name: Power Output
-Category: Power output blocks
-Header: rpp/mout.h
-Mnemonic: MOUT
-
-Inputs:
-  - { name: "Power Output", type: "bool" }
-
-Outputs:
-  - { name: "ErrFlag", type: "bool" }
-
-Parameters:
-  - { name: "Pin number [1-6]", type: "uint8" }
-
-# Description and Help is in Markdown mark-up
-Description: &desc |
-
-  This block allows to write the power outputs (2A) on the RPP board. The ErrFlag should raise only 
-  if `rpp_mout_set()` returns error. Note that `rpp_mout_set()` returns error only if some bad 
-  parameter or in case it could detect a faulty condition on the pin in a very very short period of 
-  time after setting the value, see the function API for details. If the faulty condition persist on 
-  the next step the call will successfully detect the faulty condition and ErrFlag should set. 
-  Because the ErrFlag should never set, once set the following steps will never clear it back.
-
-Help: *desc
-
-Status: Stable
-
-RPP API functions used:
-    - rpp_mout_set()
-
-Relevant demos:
-    - power_toggle
-...
-*/
-
-#define S_FUNCTION_NAME sfunction_mout
-#include "header.c"
-
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-    /*
-     * Configure parameters: 1
-     *  - Pin number: [1-6]
-     */
-    if (!rppSetNumParams(S, 1)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 1
-     *  - Power output.
-     */
-    if (!ssSetNumInputPorts(S, 1)) {
-        return;
-    }
-    rppAddInputPort(S, 0, SS_BOOLEAN);
-
-    /*
-     * Configure output ports: 1
-     *  - Error flag.
-     */
-    if (!ssSetNumOutputPorts(S, 1)) {
-        return;
-    }
-    rppAddOutputPort(S, 0, SS_BOOLEAN);
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_CHECK_PARAMETERS
-static void mdlCheckParameters(SimStruct *S)
-{
-    /* Check the parameter 1 */
-    if (!rppValidParamRange(S, 0, 1, 6)) {
-        return;
-    }
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_SET_WORK_WIDTHS
-static void mdlSetWorkWidths(SimStruct *S)
-{
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, 1)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-    ssRegDlgParamAsRunTimeParam(S, 0, 0, "p1", SS_UINT8);
-}
-#endif
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
diff --git a/rpp/blocks/sfunction_sdrw.c b/rpp/blocks/sfunction_sdrw.c
deleted file mode 100644 (file)
index 7ac5fc2..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright (C) 2013, 2014 Czech Technical University in Prague
- *
- * Authors:
- *     - Carlos Jenkins <carlos@jenkins.co.cr>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : sfunction_sdrw.c
- * Abstract:
- *     C-MEX S-function block for RPP SD-RAM log write.
- *
- * References:
- *     header.c
- *     trailer.c
- *
- * Compile with:
- *     <matlabroot>/bin/mex sfunction_sdrw.c
- */
-
-/*
-%YAML 1.2
----
-Name: SD-RAM Log Data
-Category: Logging
-Header: rpp/sdc.h
-Mnemonic: SDRW
-
-Inputs:
-  - { name: "Data", type: "double" }
-
-Outputs:
-  - { name: "ErrFlag", type: "bool" }
-
-Parameters:
-  - { name: "Block ID",              type: "uint8", range: "[0-255]" }
-  - { name: "Printf format for logging", type: "string", range: "(include specifiers)" }
-
-# Description and Help is in Markdown mark-up
-Description: &desc |
-
-  This block allows to log a double value to the SD-RAM. User needs to provide a valid PrintFormat 
-  string to format and register the double value on the log. The PrintFormat string should include 
-  two specifiers:  
-    1. For the block ID. Any valid integer specifier.  
-    2. For the value to log. Any valid double specifier.  
-
-  Note that the value of PrintFormat is inserted raw between quotes on code generation and thus there 
-  is no validation on it. Error to provide a valid PrintFormat could generate compilation errors or 
-  even run-time errors (normally this generates a warning on compile time). Note that the function 
-  for logging used is `rpp_sdr_printf()`, which is a blocking call, and can potentially overrun the 
-  step. The ErrFlag will set if `rpp_sdr_printf()` returns an error (for example out of memory), 
-  but will clear back if the next step the call to this function is successful.
-
-Help: *desc
-
-Status: Beta
-
-RPP API functions used:
-    - rpp_sdr_printf()
-
-Relevant demos:
-    - log_analog_input
-...
-*/
-
-#define S_FUNCTION_NAME sfunction_sdrw
-#include "header.c"
-
-
-static void mdlInitializeSizes(SimStruct *S)
-{
-    /*
-     * Configure parameters: 2
-     *  - Block ID.
-     *  - Printf format [setting].
-     */
-    if (!rppSetNumParams(S, 2)) {
-        return;
-    }
-
-    /*
-     * Configure input ports: 1
-     *  - Data.
-     */
-    if (!ssSetNumInputPorts(S, 1)) {
-        return;
-    }
-    rppAddInputPort(S, 0, SS_DOUBLE);
-
-    /*
-     * Configure output ports: 1
-     *  - Error flag.
-     */
-    if (!ssSetNumOutputPorts(S, 1)) {
-        return;
-    }
-    rppAddOutputPort(S, 0, SS_BOOLEAN);
-
-    /* Set standard options for this block */
-    rppSetStandardOptions(S);
-}
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_CHECK_PARAMETERS
-static void mdlCheckParameters(SimStruct *S)
-{
-    /* Check the parameter 1 */
-    if (!rppValidParamRange(S, 0, 0, 255)) {
-        return;
-    }
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_SET_WORK_WIDTHS
-static void mdlSetWorkWidths(SimStruct *S)
-{
-    /* Set number of run-time parameters */
-    if (!ssSetNumRunTimeParams(S, 1)) {
-        return;
-    }
-
-    /* Register the run-time parameter 1 */
-    ssRegDlgParamAsRunTimeParam(S, 0, 0, "p1", SS_UINT8);
-}
-#endif
-
-
-#ifdef MATLAB_MEX_FILE
-#define MDL_RTW
-static void mdlRTW(SimStruct* S)
-{
-    /* Register parameter 2 as a parameter setting */
-    static char_T str[128];
-    mxGetString(ssGetSFcnParam(S, 1), (char*)&str, sizeof(str)); /* Get string */
-    if (!ssWriteRTWParamSettings(S, 1,
-            SSWRITE_VALUE_QSTR, "PrintfFormat", (const char_T*)&str)) {
-        /* An error ocurred */
-        return;
-    }
-}
-#endif
-
-
-#define COMMON_MDLINITIALIZESAMPLETIMES_INHERIT
-#define UNUSED_MDLOUTPUTS
-#define UNUSED_MDLTERMINATE
-#include "trailer.c"
index 3c0358c3d5b92d3e8de37ecdd322c65bac65c503..c3220b953573d4d4c7392387307453e2116e7e30 100644 (file)
@@ -1,13 +1,12 @@
-%% the Free Software Foundation; either version 2 of the License, or
-%% (at your option) any later version.
+%% Copyright (C) 2013 Czech Technical University in Prague
 %%
-%% This program is distributed in the hope that it will be useful,
-%% but WITHOUT ANY WARRANTY; without even the implied warranty of
-%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-%% GNU General Public License for more details.
+%% Authors:
+%%     - Carlos Jenkins <carlos@jenkins.co.cr>
 %%
-%% You should have received a copy of the GNU General Public License
-%% along with this program.  If not, see <http://www.gnu.org/licenses/>.
+%% This document contains proprietary information belonging to Czech
+%% Technical University in Prague. Passing on and copying of this
+%% document, and communication of its contents is not permitted
+%% without prior written authorization.
 %%
 %% File : common.tlc
 %% Abstract:
@@ -18,7 +17,6 @@
 %% References:
 %%     None
 
-
 %function SLibCodeGenForSim() void
     %if (CompiledModel.TargetStyle=="SimulationTarget")
         %return 1
             %<LibAddToCommonIncludes("<rpp/sci.h>")>
         %endif
    %endif
-   %if EXISTS("::rpp_fray_buffer_config") == 0
-               %assign ::rpp_fray_buffer_config = ""
-   %endif
-   %if EXISTS("::rpp_fray_buffer_count") == 0
-               %assign ::rpp_fray_buffer_count = 0
-   %endif
-   %if EXISTS("::rpp_fray_buffer_key_slot") == 0
-               %assign ::rpp_fray_buffer_key_slot = ""
-   %endif
 %endfunction
 
diff --git a/rpp/blocks/tlc_c/sfunction_aout.tlc b/rpp/blocks/tlc_c/sfunction_aout.tlc
deleted file mode 100644 (file)
index c7454a2..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-%% Copyright (C) 2013 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Carlos Jenkins <carlos@jenkins.co.cr>
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_aout.tlc
-%% Abstract:
-%%     TLC file for inlining RPP analog output block.
-%%
-%% References:
-%%     BlockTypeSetup() : refs/rtw_tlc.pdf p. 277
-%%     Start()          : refs/rtw_tlc.pdf p. 279
-%%     Outputs()        : refs/rtw_tlc.pdf p. 281
-
-
-%implements sfunction_aout "C"
-
-%include "common.tlc"
-
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/dac.h")>
-    %assign ::rpp_aout_present=1
-
-%endfunction
-
-
-%% Function: Start =============================================================
-%function Start(block, system) Output
-
-    %if !SLibCodeGenForSim()
-        %assign pin_num = LibBlockParameterValue(p1, 0)
-        rpp_dac_setup(%<pin_num>, TRUE);
-        rpp_dac_set(%<pin_num>, 0);
-        /*
-         * Warning! This should be the correct way to initialize DAC.
-         * Nevertheless rpp_dac_update() has a known bug that if it is called
-         * before starting the FreeRTOS Scheduler the application will freeze.
-         * Check the RPP API documentation for more information.
-         * Not updating now is harmless though.
-         */
-        /* rpp_dac_update(); */
-    %endif
-
-%endfunction
-
-
-%% Function: Outputs ===========================================================
-%function Outputs(block, system) Output
-
-    %if !SLibCodeGenForSim()
-
-        %% Get parameters
-        %assign pin_num = LibBlockParameterValue(p1, 0)
-        %assign use_voltage = LibBlockParameterValue(p2, 0)
-
-        %% Get IO signals
-        %assign analog_out = LibBlockInputSignal(0, "", "", 0)
-        %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
-
-        %if use_voltage
-        if (rpp_dac_set_voltage(%<pin_num>, %<analog_out>) != SUCCESS) {
-        %else
-        if (rpp_dac_set(%<pin_num>, %<analog_out>) != SUCCESS) {
-        %endif
-
-            %<err_flag> = TRUE;
-
-        } else {
-            %% The call is smart enought to commit only the changed outputs
-            %% so it is efficient to call this at the end of each block.
-            if (rpp_dac_update() != SUCCESS) {
-                %<err_flag> = TRUE;
-            }
-        }
-
-    %endif
-
-%endfunction
-
-%% [EOF]
index 0cdf2caf22a72b3624ac7425dac905291cc11767..04dd10a4fd2aeeb10f6deb7b90012ea3f14e29ec 100644 (file)
@@ -1,7 +1,8 @@
-%% Copyright (C) 2013, 2014 Czech Technical University in Prague
+%% Copyright (C) 2013 Czech Technical University in Prague
 %%
 %% Authors:
 %%     - Carlos Jenkins <carlos@jenkins.co.cr>
+%%     - Michal Horn <hornmich@fel.cvut.cz>
 %%
 %% This document contains proprietary information belonging to Czech
 %% Technical University in Prague. Passing on and copying of this
 %include "common.tlc"
 
 
-%% Function: BlockInstanceSetup ================================================
-%function BlockInstanceSetup(block, system) void
-    %assign ::rpp_din_present=1
-    %assign pin_num = LibBlockParameterValue(p1, 0)
-    
-    %switch (%<pin_num>)
-        %case 10
-        %case 11
-            %if EXISTS("rpp_irc_1_used") == 1
-                %<LibBlockReportError(block, "Either IRC1 or Digital Input pin 10 and 11 blocks are allowed in one model, not both.")>
-            %else
-                %assign ::rpp_din_10_11_used = 1
-            %endif
-            %break
-        %case 14
-        %case 15
-            %if EXISTS("rpp_irc_2_used") == 1
-                %<LibBlockReportError(block, "Either IRC2 or Digital Input pin 14 and 15 blocks are allowed in one model, not both.")>
-            %else
-                %assign ::rpp_din_14_15_used = 1
-            %endif
-            %break
-    %endswitch
-
-    %if %<pin_num> < 8
-        %% Create array if not exist
-        %if EXISTS("rpp_din_in_model_array") == 0
-            %assign ::rpp_din_in_model_array = [0, 0, 0, 0, 0, 0, 0, 0]
-        %endif
-
-        %if ::rpp_din_in_model_array[%<pin_num>] == 0
-            %assign ::rpp_din_in_model_array[%<pin_num>] = 1
-        %else
-            %assign err_msg = "Only one Digital Input block of pin %<pin_num> is allowed in the model."
-            %<LibBlockReportError(block, err_msg)>
-        %endif
-    %endif
-
-%endfunction
-
 %% Function: BlockTypeSetup ====================================================
 %function BlockTypeSetup(block, system) void
 
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/din.h")>
+       %% Ensure required header files are included
+       %<RppCommonBlockTypeSetup(block, system)>
+       %<LibAddToCommonIncludes("rpp/gio.h")>
+       %assign ::rpp_din_present = 1
 
 %endfunction
 
+%function BlockInstanceSetup(block, system) void
+       %assign port_par = LibBlockParameterValue(port_type, 0)
+       %assign pin_number_par = LibBlockParameterValue(pin_number, 0)
+
+       %% Ensure that every pin is configured only once
+       %if EXISTS("::rpp_%<port_par>_%<pin_number_par>_present") == 0
+               %assign ::rpp_%<port_par>_%<pin_number_par>_present = 1
+       %else
+               %<LibBlockReportError(block, "GPIO pin %<pin_number_par> on port %<port_par> has already been configred.")>
+       %endif
+%endfunction
 
 %% Function: Start =============================================================
 %function Start(block, system) Output
-
-    %if !SLibCodeGenForSim()
-        %assign pin_num = LibBlockParameterValue(p1, 0)
-        %if pin_num < 8
-            %assign pull_up = LibBlockParameterValue(p3, 0) - 1
-            %assign active = LibBlockParameterValue(p4, 0) - 1
-            rpp_din_setup(%<pin_num>, %<pull_up>, %<active>, FALSE);
-        %endif
-    %endif
+       %assign port_par = LibBlockParameterValue(port_type, 0)
+       %assign pin_number_par = LibBlockParameterValue(pin_number, 0)
+       %assign config = LibBlockParameterValue(input_type, 0)
+
+       %if !SLibCodeGenForSim()
+               %openfile buffer
+               uint32_t* din_%<port_par>_%<pin_number_par>_desc = NULL;
+               %closefile buffer
+               %<LibSetSourceFileSection(LibGetModelDotCFile(), "Declarations", buffer)>
+
+               uint32_t din_%<port_par>_%<pin_number_par>_cfg = PORT_CONF_FNC_GPIO|PORT_CONF_DIR_IN;
+               %if port_par == 1       %% GIOA
+                       %assign name = "GIOA%<pin_number_par>"
+               %elseif port_par == 2   %% GIOB
+                       %assign name = "GIOB%<pin_number_par>"
+               %elseif port_par == 3   %% NHET1
+                       %assign name = "NHET1%<pin_number_par>"
+               %else
+                       %<LibBlockReportError(block, "Bad port identifier: %<port_par>")>
+               %endif
+
+               din_%<port_par>_%<pin_number_par>_desc = hal_gpio_pin_get_dsc("%<name>", -1);
+
+               %if config == 1         %% Tri-state
+                       din_%<port_par>_%<pin_number_par>_cfg |= PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON;
+               %elseif config == 2     %% Pull up
+                       din_%<port_par>_%<pin_number_par>_cfg |= PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF|PORT_CONF_MODE_PU;
+               %elseif config == 3     %% Pull down
+                       din_%<port_par>_%<pin_number_par>_cfg |= PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF|PORT_CONF_MODE_PD;
+               %else   %% error
+                       %<LibBlockReportError(block, "Bad configuration value: %<config>")>
+               %endif
+
+               hal_gpio_pin_conf_set(*din_%<port_par>_%<pin_number_par>_desc, din_%<port_par>_%<pin_number_par>_cfg);
+               
+       %endif
 
 %endfunction
 
 %% Function: Outputs ===========================================================
 %function Outputs(block, system) Output
 
-    %if !SLibCodeGenForSim()
-
-        %% Declare temporal variables
-        %if EXISTS("_RPP_DIN_TMP_VARS_") == 0
-            %assign ::_RPP_DIN_TMP_VARS_ = 1
-            int8_t din_tmp;
-        %endif
-
-        %% Error flag
-        %assign err_flag = LibBlockOutputSignal(1, "", "", 0)
-
-        %% First executed block must update cached values
-        %if EXISTS("_RPP_DIN_UPDATE_") == 0
-            %assign ::_RPP_DIN_UPDATE_ = 1
-            if (rpp_din_update() != SUCCESS) {
-                %<err_flag> = TRUE;
-            }
-        %endif
-
-        %% Get pin number and if to use variable threshold
-        %assign pin_num = LibBlockParameterValue(p1, 0)
-        %assign var_thr = LibBlockParameterValue(p2, 0)
-
-        %% Get pin value
-       %if var_thr == 0
-         din_tmp = rpp_din_get(%<pin_num>);
-       %else
-         din_tmp = rpp_din_get_tr(%<pin_num>);
+       %if !SLibCodeGenForSim()
+               %assign digital_in = LibBlockOutputSignal(0, "", "", 0)
+               %assign port_par = LibBlockParameterValue(port_type, 0)
+               %assign pin_number_par = LibBlockParameterValue(pin_number, 0)
+               uint32_t din_%<port_par>_%<pin_number_par>_val = hal_gpio_pin_get_value(*din_%<port_par>_%<pin_number_par>_desc);
+               %<digital_in> = din_%<port_par>_%<pin_number_par>_val;
        %endif
-        if (din_tmp < 0) {
-            %<err_flag> = TRUE;
-            din_tmp = LOW;
-        }
-
-        %% Return input
-        %assign digital_in = LibBlockOutputSignal(0, "", "", 0)
-        %<digital_in> = din_tmp;
-
-    %endif
 
 %endfunction
 
diff --git a/rpp/blocks/tlc_c/sfunction_dinc.tlc b/rpp/blocks/tlc_c/sfunction_dinc.tlc
deleted file mode 100644 (file)
index 675600b..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-%% Copyright (C) 2013-2014 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Karel Kočí
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_dinc.tlc
-%% Abstract:
-%%     TLC file for inlining RPP digital input configuration block.
-%%
-%% References:
-%%     BlockTypeSetup() : rtw_tlc.pdf p. 277
-%%     Start()          : rtw_tlc.pdf p. 279
-%%     Outputs()        : rtw_tlc.pdf p. 281
-
-
-%implements sfunction_dinc "C"
-
-%include "common.tlc"
-
-
-%% Function: BlockInstanceSetup ================================================
-%function BlockInstanceSetup(block, system) void
-    %if EXISTS("rpp_dinc_in_model") == 0
-        %<LibAddToCommonIncludes("rpp/din.h")>
-        %assign ::rpp_dinc_in_model = 1
-    %else
-        %<LibBlockReportError(block, "Only one Digital Input Configure block is allowed in the model.")>
-    %endif
-    %assign ::rpp_din_present=1
-%endfunction
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-
-%endfunction
-
-
-%% Function: Start =============================================================
-%function Start(block, system) Output
-
-    %if !SLibCodeGenForSim()
-        %assign ref_a = LibBlockParameterValue(p1, 0)
-        %assign ref_b = LibBlockParameterValue(p2, 1)
-        rpp_din_ref(%<ref_a>, %<ref_b>);
-    %endif
-
-%endfunction
-
-%% [EOF]
diff --git a/rpp/blocks/tlc_c/sfunction_dout.tlc b/rpp/blocks/tlc_c/sfunction_dout.tlc
new file mode 100644 (file)
index 0000000..27b95b8
--- /dev/null
@@ -0,0 +1,112 @@
+%% Copyright (C) 2013 Czech Technical University in Prague
+%%
+%% Authors:
+%%     - Carlos Jenkins <carlos@jenkins.co.cr>
+%%     - Michal Horn <hornmich@fel.cvut.cz>
+%%
+%% This document contains proprietary information belonging to Czech
+%% Technical University in Prague. Passing on and copying of this
+%% document, and communication of its contents is not permitted
+%% without prior written authorization.
+%%
+%% File : sfunction_dout.tlc
+%% Abstract:
+%%     TLC file for inlining RPP digital output block.
+%%
+%% References:
+%%     BlockTypeSetup() : rtw_tlc.pdf p. 277
+%%     Start()          : rtw_tlc.pdf p. 279
+%%     Outputs()        : rtw_tlc.pdf p. 281
+
+
+%implements sfunction_dout "C"
+
+%include "common.tlc"
+
+
+%% Function: BlockTypeSetup ====================================================
+%function BlockTypeSetup(block, system) void
+
+       %% Ensure required header files are included
+       %<RppCommonBlockTypeSetup(block, system)>
+       %<LibAddToCommonIncludes("rpp/gio.h")>
+       %assign ::rpp_dout_present = 1
+
+%endfunction
+
+%function BlockInstanceSetup(block, system) void
+       %assign port_par = LibBlockParameterValue(port_type, 0)
+       %assign pin_number_par = LibBlockParameterValue(pin_number, 0)
+
+       %% Ensure that every pin is configured only once
+       %if EXISTS("::rpp_%<port_par>_%<pin_number_par>_present") == 0
+               %assign ::rpp_%<port_par>_%<pin_number_par>_present = 1
+       %else
+               %<LibBlockReportError(block, "GPIO pin %<pin_number_par> on port %<port_par> has already been configred.")>
+       %endif
+%endfunction
+
+%% Function: Start =============================================================
+%function Start(block, system) Output
+       %assign port_par = LibBlockParameterValue(port_type, 0)
+       %assign pin_number_par = LibBlockParameterValue(pin_number, 0)
+       %assign config = LibBlockParameterValue(output_type, 0)
+       %assign init_val = LibBlockParameterValue(default_output, 0)
+
+       %if !SLibCodeGenForSim()
+               %openfile buffer
+               uint32_t* dout_%<port_par>_%<pin_number_par>_desc = NULL;
+               %closefile buffer
+               %<LibSetSourceFileSection(LibGetModelDotCFile(), "Declarations", buffer)>
+
+
+
+               uint32_t dout_%<port_par>_%<pin_number_par>_cfg = PORT_CONF_FNC_GPIO|PORT_CONF_DIR_OUT;
+               %if port_par == 1       %% GIOA
+                       %assign name = "GIOA%<pin_number_par>"
+               %elseif port_par == 2   %% GIOB
+                       %assign name = "GIOB%<pin_number_par>"
+               %elseif port_par == 3   %% NHET1
+                       %assign name = "NHET1%<pin_number_par>"
+               %else
+                       %<LibBlockReportError(block, "Bad port identifier: %<port_par>")>
+               %endif
+
+               dout_%<port_par>_%<pin_number_par>_desc = hal_gpio_pin_get_dsc("%<name>", -1);
+
+               %if init_val == 0
+                       dout_%<port_par>_%<pin_number_par>_cfg |= PORT_CONF_INIT_LOW | PORT_CONF_MODE_PD;
+               %elseif init_val == 1
+                       dout_%<port_par>_%<pin_number_par>_cfg |= PORT_CONF_INIT_HIGH | PORT_CONF_MODE_PU;
+               %else
+                       %<LibBlockReportError(block, "Bad init output value: %<init_val>")>
+               %endif          
+
+               %if config == 1         %% Open drain
+                       dout_%<port_par>_%<pin_number_par>_cfg |= PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON;
+               %elseif config == 2     %% push/pull
+                       dout_%<port_par>_%<pin_number_par>_cfg |= PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF;
+               %else   %% error
+                       %<LibBlockReportError(block, "Bad configuration value: %<config>")>
+               %endif
+
+               hal_gpio_pin_conf_set(*dout_%<port_par>_%<pin_number_par>_desc, dout_%<port_par>_%<pin_number_par>_cfg);
+               
+       %endif
+
+%endfunction
+
+
+%% Function: Outputs ===========================================================
+%function Outputs(block, system) Output
+
+       %if !SLibCodeGenForSim()
+               %assign digital_out = LibBlockInputSignal(0, "", "", 0)
+               %assign port_par = LibBlockParameterValue(port_type, 0)
+               %assign pin_number_par = LibBlockParameterValue(pin_number, 0)
+               hal_gpio_pin_set_value(*dout_%<port_par>_%<pin_number_par>_desc, (uint32_t) %<digital_out>);
+       %endif
+
+%endfunction
+
+%% [EOF]
diff --git a/rpp/blocks/tlc_c/sfunction_frayconfig.tlc b/rpp/blocks/tlc_c/sfunction_frayconfig.tlc
deleted file mode 100644 (file)
index c2577d4..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-%% Copyright (C) 2013 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Michal Horn <hornmich@fel.cvut.cz>
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_frayconfig.tlc
-%% Abstract:
-%%     TLC file for inlining RPP FlexRay TX buffer configuration and message transmittion.
-%%
-%% References:
-%%     BlockTypeSetup() : refs/rtw_tlc.pdf p. 277
-%%     Outputs()        : refs/rtw_tlc.pdf p. 281
-
-
-%implements sfunction_frayconfig "C"
-
-%include "common.tlc"
-
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/fr.h")>
-    %assign ::rpp_fray_config_present = 1
-    %assign ::rpp_fray_present=1
-
-%endfunction
-
-%function BlockInstanceSetup(block, system) void
-%endfunction
-
-
-%% Function: Start =============================================================
-%function Start(block, system) Output
- %openfile buffer
-  static const Fr_TMS570LS_ClusterConfigType fray_cluster_cfg = {
-       .gColdStartAttempts = %<LibBlockParameterValue(gColdStartAttempts, 0)>,
-       .gListenNoise = %<LibBlockParameterValue(gListenNoise, 0)>,
-       .gMacroPerCycle = %<LibBlockParameterValue(gMacroPerCycle, 0)>,
-       .gMaxWithoutClockCorrectionFatal = %<LibBlockParameterValue(gMaxWithoutClockCorrectionFatal, 0)>,
-       .gMaxWithoutClockCorrectionPassive = %<LibBlockParameterValue(gMaxWithoutClockCorrectionPassive, 0)>,
-       .gNetworkManagementVectorLength = %<LibBlockParameterValue(gNetworkManagementVectorLength, 0)>,
-       .gNumberOfMinislots = %<LibBlockParameterValue(gNumberOfMinislots, 0)>,
-       .gNumberOfStaticSlots = %<LibBlockParameterValue(gNumberOfStaticSlots, 0)>,
-       .gOffsetCorrectionStart = %<LibBlockParameterValue(gOffsetCorrectionStart, 0)>,
-       .gPayloadLengthStatic = %<LibBlockParameterValue(gPayloadLengthStatic, 0)>,
-       .gSyncNodeMax = %<LibBlockParameterValue(gSyncNodeMax, 0)>,
-       .gdActionPointOffset = %<LibBlockParameterValue(gdActionPointOffset, 0)>,
-       .gdCASRxLowMax = %<LibBlockParameterValue(gdCASRxLowMax, 0)>,
-       .gdDynamicSlotIdlePhase = %<LibBlockParameterValue(gdDynamicSlotIdlePhase, 0)>,
-       .gdMinislot = %<LibBlockParameterValue(gdMinislot, 0)>,
-       .gdMinislotActionPointOffset = %<LibBlockParameterValue(gdMinislotActionPointOffset, 0)>,
-       .gdNIT = %<LibBlockParameterValue(gdNIT, 0)>,
-       .gdSampleClockPeriod = %<LibBlockParameterValue(gdSampleClockPeriod, 0)>,
-       .gdStaticSlot = %<LibBlockParameterValue(gdStaticSlot, 0)>,
-       .gdTSSTransmitter = %<LibBlockParameterValue(gdTSSTransmitter, 0)>,
-       .gdWakeupSymbolRxIdle = %<LibBlockParameterValue(gdWakeupSymbolRxIdle, 0)>,
-       .gdWakeupSymbolRxLow = %<LibBlockParameterValue(gdWakeupSymbolRxLow, 0)>,
-       .gdWakeupSymbolRxWindow = %<LibBlockParameterValue(gdWakeupSymbolRxWindow, 0)>,
-       .gdWakeupSymbolTxIdle = %<LibBlockParameterValue(gdWakeupSymbolTxIdle, 0)>,
-       .gdWakeupSymbolTxLow = %<LibBlockParameterValue(gdWakeupSymbolTxLow, 0)>,
-  };
-
-  static const Fr_TMS570LS_NodeConfigType fray_node_cfg = {
-       .pAllowHaltDueToClock =  %<LibBlockParameterValue(pAllowHaltDueToClock, 0)>,
-       .pAllowPassiveToActive =  %<LibBlockParameterValue(pAllowPassiveToActive, 0)>,
-       %if %<LibBlockParameterValue(pChannels, 0)>==1
-         .pChannels = FR_CHANNEL_A,
-       %elseif %<LibBlockParameterValue(pChannels, 0)>==2
-         .pChannels = FR_CHANNEL_B,
-       %else
-         .pChannels = FR_CHANNEL_AB,
-       %endif
-       .pClusterDriftDamping =  %<LibBlockParameterValue(pClusterDriftDamping, 0)>,
-       .pDelayCompensationA =  %<LibBlockParameterValue(pDelayCompensationA, 0)>,
-       .pDelayCompensationB =  %<LibBlockParameterValue(pDelayCompensationB, 0)>,
-       .pExternOffsetCorrection =  %<LibBlockParameterValue(pExternOffsetCorrection, 0)>,
-       .pExternRateCorrection =  %<LibBlockParameterValue(pExternRateCorrection, 0)>,
-       .pKeySlotUsedForStartup =  %<LibBlockParameterValue(pKeySlotUsedForStartup, 0)>,
-       .pKeySlotUsedForSync =  %<LibBlockParameterValue(pKeySlotUsedForSync, 0)>,
-       .pLatestTx =  %<LibBlockParameterValue(pLatestTx, 0)>,
-       .pMacroInitialOffsetA =  %<LibBlockParameterValue(pMacroInitialOffsetA, 0)>,
-       .pMacroInitialOffsetB =  %<LibBlockParameterValue(pMacroInitialOffsetB, 0)>,
-       .pMicroInitialOffsetA =  %<LibBlockParameterValue(pMicroInitialOffsetA, 0)>,
-       .pMicroInitialOffsetB =   %<LibBlockParameterValue(pMicroInitialOffsetB, 0)>,
-       .pMicroPerCycle =  %<LibBlockParameterValue(pMicroPerCycle, 0)>,
-       .pRateCorrectionOut =  %<LibBlockParameterValue(pRateCorrectionOut, 0)>,
-       .pOffsetCorrectionOut =  %<LibBlockParameterValue(pOffsetCorrectionOut, 0)>,
-       .pSamplesPerMicrotick =  %<LibBlockParameterValue(pSamplesPerMicrotick, 0)>,
-       .pSingleSlotEnabled =  %<LibBlockParameterValue(pSingleSlotEnabled, 0)>,
-       %if %<LibBlockParameterValue(pWakeupChannel, 0)>==1
-         .pWakeupChannel = FR_CHANNEL_A,
-       %else
-         .pWakeupChannel = FR_CHANNEL_B,
-       %endif
-       .pWakeupPattern =  %<LibBlockParameterValue(pWakeupPattern, 0)>,
-       .pdAcceptedStartupRange =  %<LibBlockParameterValue(pdAcceptedStartupRange, 0)>,
-       .pdListenTimeout =  %<LibBlockParameterValue(pdListenTimeout, 0)>,
-       .pdMaxDrift =  %<LibBlockParameterValue(pdMaxDrift, 0)>,
-       .pDecodingCorrection =  %<LibBlockParameterValue(pDecodingCorrection, 0)>,
-  };
-
-  #define FRAY_STATIC_BUFFER_COUNT %<::rpp_fray_buffer_count>
-  static const Fr_TMS570LS_BufferConfigType fray_static_buffers_cfg[FRAY_STATIC_BUFFER_COUNT] = {
-       %<::rpp_fray_buffer_key_slot>
-       %<::rpp_fray_buffer_config>
-  };
-
-  static const Fr_TMS570LS_MsgRAMConfig fray_msg_ram_cfg = {
-       .syncFramePayloadMultiplexEnabled = %<LibBlockParameterValue(syncFramePayloadMultiplexEnabled, 0)>,
-       %if %<LibBlockParameterValue(secureBuffers, 0)>==1
-         .secureBuffers = FR_SB_RECONFIG_ENABLED,
-       %elseif %<LibBlockParameterValue(secureBuffers, 0)>==2
-         .secureBuffers = FR_SB_STAT_REC_DISABLED_STAT_TR_DISABLED,
-       %elseif %<LibBlockParameterValue(secureBuffers, 0)>==3
-         .secureBuffers = FR_SB_ALL_REC_DISABLED,
-       %else
-         .secureBuffers = FR_SB_ALL_REC_DISABLED_STAT_TR_DISABLED,
-       %endif
-       .statSegmentBufferCount = FRAY_STATIC_BUFFER_COUNT,
-       .dynSegmentBufferCount = 0,
-       .fifoBufferCount = 0
-  };
-
-  static const Fr_ConfigType flexray_cfg = {
-       .clusterConfiguration = &fray_cluster_cfg,
-       .nodeConfiguration = &fray_node_cfg,
-       .msgRAMConfig = &fray_msg_ram_cfg,
-       .staticBufferConfigs =  fray_static_buffers_cfg,
-       .dynamicBufferConfigs = NULL,
-       .fifoBufferConfigs = NULL,
-  };
-
-  %closefile buffer
-  %<LibSetSourceFileSection(LibGetModelDotCFile(), "Declarations", buffer)>
-
-    %if !SLibCodeGenForSim()
-
-               %% Error flag
-               %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
-
-
-               %% Declare temporal variables
-               %if EXISTS("_RPP_FRAYCONFIG_TMP_VARS_") == 0
-                 %assign ::_RPP_FRAYCONFIG_TMP_VARS_ = 1
-               %endif
-               int8_t retVal;
-               uint32_t error;
-
-               retVal = rpp_fr_init_driver(&flexray_cfg, &error);
-               if (retVal == FAILURE) {
-                   rpp_sci_printf("FlexRay driver init error.\n");
-                       %<err_flag> = TRUE;
-               }
-               else {
-                       rpp_sci_printf("FlexRay driver initialized.\n");
-               }
-
-               retVal = rpp_fr_init_controller(0, &error);
-               if (retVal == FAILURE) {
-                       rpp_sci_printf("FlexRay controller init error: %#x.\n", error);
-                       %<err_flag> = TRUE;
-               }
-               else {
-                       rpp_sci_printf("FlexRay controller initialized.\n");
-               }
-
-               retVal = rpp_fr_start_communication(0, &error);
-               if (retVal == FAILURE) {
-                       rpp_sci_printf("FlexRay start communication failed: %#x.\n", error);
-                       %<err_flag> = TRUE;
-               }
-               else {
-                       rpp_sci_printf("FlexRay communication started.\n");
-               }
-               retVal = rpp_fr_all_slots(0);
-               if (retVal == FAILURE) {
-                       rpp_sci_printf("FlexRay all slots failed: %#x.\n", error);
-                       %<err_flag> = TRUE;
-               }
-               else {
-                       rpp_sci_printf("FlexRay is communicating on all slots.\n");
-               }
-    %endif
-%endfunction
-
-
-%% [EOF]
diff --git a/rpp/blocks/tlc_c/sfunction_frayreceive.tlc b/rpp/blocks/tlc_c/sfunction_frayreceive.tlc
deleted file mode 100644 (file)
index 7ce2490..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-%% Copyright (C) 2013 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Michal Horn <hornmich@fel.cvut.cz>
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_frayreceive.tlc
-%% Abstract:
-%%     TLC file for inlining RPP FlexRay node configuration.
-%%
-%% References:
-%%     BlockTypeSetup() : refs/rtw_tlc.pdf p. 277
-%%     Outputs()        : refs/rtw_tlc.pdf p. 281
-
-
-%implements sfunction_frayreceive "C"
-
-%include "common.tlc"
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/fr.h")>
-
-%endfunction
-
-%function BlockInstanceSetup(block, system) void
-  %assign channel_val                                   = LibBlockParameterValue(channel, 0)
-  %assign cycleCounterFiltering_val     = LibBlockParameterValue(cycleCounterFiltering, 0)
-  %assign maxPayload_val                                = LibBlockParameterValue(maxPayload, 0)
-  %assign msgBufferInterrupt_val                = LibBlockParameterValue(msgBufferInterrupt, 0)
-  %assign payloadPreambleIndicatorTr_val = LibBlockParameterValue(payloadPreambleIndicatorTr, 0)
-  %assign singleTransmit_val                    = LibBlockParameterValue(singleTransmit, 0)
-  %assign slotId_val                                    = LibBlockParameterValue(slotId, 0)
-
-  %openfile buffer
-  {
-       %if %<channel_val>==1
-         .channel = FR_CHANNEL_A,
-       %elseif %<channel_val>==2
-         .channel = FR_CHANNEL_B,
-       %else
-         .channel = FR_CHANNEL_AB,
-       %endif
-       .cycleCounterFiltering = %<cycleCounterFiltering_val>,
-       .fidMask = 0,
-       .isTx = FALSE,
-       .maxPayload = %<maxPayload_val>,
-       .msgBufferInterrupt = %<msgBufferInterrupt_val>,
-       .payloadPreambleIndicatorTr = %<payloadPreambleIndicatorTr_val>,
-       .rejectNullFrames = FALSE,
-       .rejectStaticSegment = FALSE,
-       .singleTransmit = %<singleTransmit_val>,
-       .slotId = %<slotId_val>
-  },
-  %closefile buffer
-  %assign ::rpp_fray_buffer_config = "%<::rpp_fray_buffer_config> %<buffer>"
-  %assign ::rpp_fray_buffer_count = %<::rpp_fray_buffer_count> + 1
-%endfunction
-
-%% Function: Outputs ===========================================================
-%function Outputs(block, system) Output
-
-       %if EXISTS("_RPP_FRAYSTEP_TMP_VARS_") == 0
-           %assign ::_RPP_FRAYSTEP_TMP_VARS_ = 1
-               int8_t retVal;
-       %endif
-       %if EXISTS("_RPP_FRAYREC_TMP_VARS_") == 0
-           %assign ::_RPP_FRAYREC_TMP_VARS_ = 1
-               int8_t i;
-       %endif
-
-    %if !SLibCodeGenForSim()
-               %% Get parameters
-        %assign slotId_val = LibBlockParameterValue(slotId, 0)
-        %assign maxPayload_val = LibBlockParameterValue(maxPayload, 0)
-
-        %% Get IO signals
-        %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
-        %assign message = LibBlockOutputSignal(1, "", "", 0)
-        %assign length = LibBlockOutputSignal(2, "", "", 0)
-        %assign trigger = LibBlockOutputSignal(3, "", "", 0)
-
-               %if EXISTS("_RPP_FRAYSTEP_RX_VARS_") == 0
-                 %assign ::_RPP_FRAYSTEP_RX_VARS_ = 1
-                 uint8_t rec_msg[%<maxPayload_val>*2];
-                 uint8_t rec_length;
-                 Fr_RxLPduStatusType rec_status;
-               %endif
-
-               retVal = rpp_fr_receive_lpdu(0, %<slotId_val>, rec_msg, &rec_status, &rec_length);
-               if (retVal == FAILURE) {
-                       rpp_sci_printf("Receiving a message from slot %#x failed.\n", %<slotId_val>);
-                       %<err_flag> = TRUE;
-                       %<message> = 0;
-                       %<length> = 0;
-                       %<trigger> = 0;
-               }
-               else {
-                       if (rec_status == FR_NOT_RECEIVED) {
-                               %<trigger> = 0;
-                               %<message> = 0;
-                               %<length> = 0;
-                       }
-                       else {
-                               rpp_sci_printf("Message from slot %#x received:%#x\n", %<slotId_val>, rec_msg[0]);
-                               %<trigger> = 1;
-                               for (i = 0; i < %<maxPayload_val>*2; i++) {
-                                       *(&%<message>+i) = rec_msg[i];
-                               }
-                               %<length> = rec_length;
-                       }
-               }
-    %endif
-%endfunction
-
-
-%% [EOF]
diff --git a/rpp/blocks/tlc_c/sfunction_fraysbc.tlc b/rpp/blocks/tlc_c/sfunction_fraysbc.tlc
deleted file mode 100644 (file)
index 3abd0ab..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-%% Copyright (C) 2013 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Michal Horn <hornmich@fel.cvut.cz>
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_fraysbc.tlc
-%% Abstract:
-%%     TLC file for inlining RPP FlexRay node configuration.
-%%
-%% References:
-%%     BlockTypeSetup() : refs/rtw_tlc.pdf p. 277
-%%     Outputs()        : refs/rtw_tlc.pdf p. 281
-
-
-%implements sfunction_fraysbc "C"
-
-%include "common.tlc"
-
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/fr.h")>
-
-%endfunction
-
-
-%% Function: Start =============================================================
-%function Start(block, system) Output
-
-    %if !SLibCodeGenForSim()
-        %assign channel_val = LibBlockParameterValue(channel, 0)
-        %assign cycleCounterFiltering_val = LibBlockParameterValue(cycleCounterFiltering, 0)
-        %assign isTx_val = LibBlockParameterValue(isTx, 0)
-        %assign maxPayload_val = LibBlockParameterValue(maxPayload, 0)
-        %assign msgBufferInterrupt_val = LibBlockParameterValue(msgBufferInterrupt, 0)
-        %assign payloadPreambleIndicatorTr_val = LibBlockParameterValue(payloadPreambleIndicatorTr, 0)
-        %assign singleTransmit_val = LibBlockParameterValue(singleTransmit, 0)
-        %assign slotId_val = LibBlockParameterValue(slotId, 0)
-
-        %% Declare temporal variables
-        %if EXISTS("_RPP_FRAYCONFIG_TMP_VARS_") == 0
-            %assign ::_RPP_FRAYCONFIG_TMP_VARS_ = 1
-                       #define MAX_ST_BUF_CFG 62
-                       Fr_TMS570LS_ClusterConfigType cluster_cfg;
-                       Fr_TMS570LS_NodeConfigType node_cfg;
-                       Fr_TMS570LS_BufferConfigType static_buffers_cfg[MAX_ST_BUF_CFG];
-                       Fr_TMS570LS_MsgRAMConfig msg_ram_cfg;
-                       uint8_t static_buffers_cnt = 0;
-        %endif
-           static_buffers_cfg[static_buffers_cnt].channel = %<channel_val>;
-           static_buffers_cfg[static_buffers_cnt].cycleCounterFiltering = %<cycleCounterFiltering_val>;
-           static_buffers_cfg[static_buffers_cnt].isTx = %<isTx_val>;
-           static_buffers_cfg[static_buffers_cnt].maxPayload = %<maxPayload_val>;
-           static_buffers_cfg[static_buffers_cnt].msgBufferInterrupt = %<msgBufferInterrupt_val>;
-           static_buffers_cfg[static_buffers_cnt].payloadPreambleIndicatorTr = %<payloadPreambleIndicatorTr_val>;
-           static_buffers_cfg[static_buffers_cnt].singleTransmit = %<singleTransmit_val>;
-           static_buffers_cfg[static_buffers_cnt].slotId = %<slotId_val>;
-               static_buffers_cnt++;
-               rpp_sci_printf("Buffer %d added.\n", static_buffers_cnt);
-    %endif
-
-%endfunction
-
-
-%% [EOF]
diff --git a/rpp/blocks/tlc_c/sfunction_fraytransmit.tlc b/rpp/blocks/tlc_c/sfunction_fraytransmit.tlc
deleted file mode 100644 (file)
index 4c0fbdd..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-%% Copyright (C) 2013, 2014 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Michal Horn <hornmich@fel.cvut.cz>
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_fraytransmit.tlc
-%% Abstract:
-%%     TLC file for inlining RPP FlexRay node configuration.
-%%
-%% References:
-%%     BlockTypeSetup() : refs/rtw_tlc.pdf p. 277
-%%     Outputs()        : refs/rtw_tlc.pdf p. 281
-
-
-%implements sfunction_fraytransmit "C"
-
-%include "common.tlc"
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/fr.h")>
-
-%endfunction
-
-%function BlockInstanceSetup(block, system) void
-  %assign channel_val                                   = LibBlockParameterValue(channel, 0)
-  %assign cycleCounterFiltering_val     = LibBlockParameterValue(cycleCounterFiltering, 0)
-  %assign maxPayload_val                                = LibBlockParameterValue(maxPayload, 0)
-  %assign msgBufferInterrupt_val                = LibBlockParameterValue(msgBufferInterrupt, 0)
-  %assign payloadPreambleIndicatorTr_val = LibBlockParameterValue(payloadPreambleIndicatorTr, 0)
-  %assign singleTransmit_val                    = LibBlockParameterValue(singleTransmit, 0)
-  %assign slotId_val                                    = LibBlockParameterValue(slotId, 0)
-
-  %openfile buffer
-  {
-       %if channel_val == 1U
-         .channel = FR_CHANNEL_A,
-       %elseif channel_val == 2U
-         .channel = FR_CHANNEL_B,
-       %else
-         .channel = FR_CHANNEL_AB,       
-       %endif
-       .cycleCounterFiltering = %<cycleCounterFiltering_val>,
-       .fidMask = 0,
-       .isTx = TRUE,
-       .maxPayload = %<maxPayload_val>,
-       .msgBufferInterrupt = %<msgBufferInterrupt_val>,
-       .payloadPreambleIndicatorTr = %<payloadPreambleIndicatorTr_val>,
-       .rejectNullFrames = FALSE,
-       .rejectStaticSegment = FALSE,
-       .singleTransmit = %<singleTransmit_val>,
-       .slotId = %<slotId_val>
-  },
-  %closefile buffer
-
-  %if ISEQUAL(::rpp_fray_buffer_key_slot, "")
-       %assign ::rpp_fray_buffer_key_slot = "%<buffer>"
-  %else
-       %assign ::rpp_fray_buffer_config = "%<::rpp_fray_buffer_config> %<buffer>"
-  %endif
-  %assign ::rpp_fray_buffer_count = %<::rpp_fray_buffer_count> + 1     
-
-%endfunction
-
-
-%% Function: Start =============================================================
-%function Start(block, system) Output
-
-    %if !SLibCodeGenForSim()
-
-         %if EXISTS(::rpp_fray_config_present) == 0
-               %<LibBlockReportError(block, "FlexRay config block not present!")>
-         %endif
-    %endif
-%endfunction
-
-%% Function: Outputs ===========================================================
-%function Outputs(block, system) Output
-
-       %if EXISTS("_RPP_FRAYSTEP_TMP_VARS_") == 0
-           %assign ::_RPP_FRAYSTEP_TMP_VARS_ = 1
-               int8_t retVal;
-       %endif
-
-
-    %if !SLibCodeGenForSim()
-               %% Get parameters
-        %assign slotId_val = LibBlockParameterValue(slotId, 0)
-        %assign maxPayload_val = LibBlockParameterValue(maxPayload, 0)
-
-        %% Get IO signals
-        %assign message = LibBlockInputSignal(0, "", "", 0)
-        %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
-
-               rpp_sci_printf("sending message %#x on slot %d.\n", %<message>, %<slotId_val>);
-
-               retVal = rpp_fr_transmit_lpdu(0, %<slotId_val>, &%<message>, %<maxPayload_val>*2);
-               if (retVal == FAILURE) {
-                       rpp_sci_printf("Sending a message to slot %#x failed.\n", %<slotId_val>);
-                       %<err_flag> = TRUE;
-               }
-    %endif
-%endfunction
-
-
-%% [EOF]
diff --git a/rpp/blocks/tlc_c/sfunction_hbr.tlc b/rpp/blocks/tlc_c/sfunction_hbr.tlc
deleted file mode 100644 (file)
index bf02999..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-%% Copyright (C) 2013-2014 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Carlos Jenkins <carlos@jenkins.co.cr>
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_hbr.tlc
-%% Abstract:
-%%     TLC file for inlining RPP H-Bridge control block.
-%%
-%% References:
-%%     BlockTypeSetup() : refs/rtw_tlc.pdf p. 277
-%%     Start()          : refs/rtw_tlc.pdf p. 279
-%%     Outputs()        : refs/rtw_tlc.pdf p. 281
-
-
-%implements sfunction_hbr "C"
-
-%include "common.tlc"
-
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/hbr.h")>
-    %assign ::rpp_hbr_present=1
-
-%endfunction
-
-
-%% Function: Start =============================================================
-%function Start(block, system) Output
-
-    %if !SLibCodeGenForSim()
-        rpp_hbr_enable(-1);
-    %endif
-
-%endfunction
-
-
-%% Function: Outputs ===========================================================
-%function Outputs(block, system) Output
-
-    %if !SLibCodeGenForSim()
-
-        %% Get IO signals
-        %assign enable = LibBlockInputSignal(0, "", "", 0)
-        %assign control = LibBlockInputSignal(1, "", "", 0)
-        %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
-
-        if (%<enable>) {
-            rpp_hbr_enable(-1); %% enable if not enabled
-            if (rpp_hbr_control(%<control>) != SUCCESS) {
-                %<err_flag> = TRUE;
-            }
-        } else {
-            rpp_hbr_disable(); %% disable if not disabled
-        }
-
-    %endif
-
-%endfunction
-
-%% [EOF]
diff --git a/rpp/blocks/tlc_c/sfunction_irc.tlc b/rpp/blocks/tlc_c/sfunction_irc.tlc
deleted file mode 100644 (file)
index ec22e8d..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-%% Copyright (C) 2013, 2014 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Karel Kočí
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_irc.tlc
-%% Abstract:
-%%     TLC file for inlining RPP IRC input block.
-%%
-%% References:
-%%     BlockTypeSetup() : rtw_tlc.pdf p. 277
-%%     Start()          : rtw_tlc.pdf p. 279
-%%     Outputs()        : rtw_tlc.pdf p. 281
-
-
-%implements sfunction_irc "C"
-
-%include "common.tlc"
-
-
-%% Function: BlockInstanceSetup ================================================
-%function BlockInstanceSetup(block, system) void
-    %assign irc_num = LibBlockParameterValue(p1, 0)
-    
-    %switch (%<irc_num>)
-        %case 1
-            %if EXISTS("rpp_din_10_11_used") == 1
-                %<LibBlockReportError(block, "Either IRC1 or Digital Input pin 10 and 11 blocks are allowed in one model, not both.")>
-            %else
-                %assign ::rpp_irc_1_used = 1
-            %endif
-            %break
-        %case 2
-            %if EXISTS("rpp_din_14_15_used") == 1
-                %<LibBlockReportError(block, "Either IRC2 or Digital Input pin 14 and 15 blocks are allowed in one model, not both.")>
-            %else
-                %assign ::rpp_irc_2_used = 1
-            %endif
-            %break
-    %endswitch
-%endfunction
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/irc.h")>
-    %assign ::rpp_irc_present=1
-
-%endfunction
-
-
-%% Function: Start =============================================================
-%function Start(block, system) Output
-
-    %if !SLibCodeGenForSim()
-        %assign irc_num = LibBlockParameterValue(p1, 0)
-        rpp_irc_enable(%<irc_num>);
-    %endif
-
-%endfunction
-
-
-%% Function: Outputs ===========================================================
-%function Outputs(block, system) Output
-
-    %if !SLibCodeGenForSim()
-
-        %% Error flag
-        %assign err_flag = LibBlockOutputSignal(1, "", "", 0)
-
-        %% Get irc number
-        %assign irc_num = LibBlockParameterValue(p1, 0)
-
-        %% Control if irc running
-        if (rpp_irc_status(%<irc_num>) != 1) {
-            %<err_flag> = TRUE;
-        } else {
-            %% Return input
-            %assign irc_val = LibBlockOutputSignal(0, "", "", 0)
-            %<irc_val> = rpp_irc_get(%<irc_num>);
-        }
-
-    %endif
-
-%endfunction
-
-%% [EOF]
diff --git a/rpp/blocks/tlc_c/sfunction_lout.tlc b/rpp/blocks/tlc_c/sfunction_lout.tlc
deleted file mode 100644 (file)
index 204bef9..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-%% Copyright (C) 2013 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Carlos Jenkins <carlos@jenkins.co.cr>
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_lout.tlc
-%% Abstract:
-%%     TLC file for inlining RPP digital output block.
-%%
-%% References:
-%%     BlockTypeSetup() : refs/rtw_tlc.pdf p. 277
-%%     Start()          : refs/rtw_tlc.pdf p. 279
-%%     Outputs()        : refs/rtw_tlc.pdf p. 281
-
-
-%implements sfunction_lout "C"
-
-%include "common.tlc"
-
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/lout.h")>
-    %assign ::rpp_lout_present=1
-
-%endfunction
-
-
-%% Function: Start =============================================================
-%function Start(block, system) Output
-
-    %if !SLibCodeGenForSim()
-        %%No initialization needed for this block
-    %endif
-
-%endfunction
-
-
-%% Function: Outputs ===========================================================
-%function Outputs(block, system) Output
-
-    %if !SLibCodeGenForSim()
-
-        %% Get pin number
-        %assign pin_num = LibBlockParameterValue(p1, 0)
-
-        %% Get IO signals
-        %assign digital_out = LibBlockInputSignal(0, "", "", 0)
-        %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
-
-        if (rpp_lout_set(%<pin_num>, %<digital_out>) != SUCCESS) {
-
-            %<err_flag> = TRUE;
-
-        } else {
-            %% FIXME: Improve to call this function only once per step on the
-            %%        last block.
-            %%  But... what happens if the next block want to check it's
-            %%  diagnostic value and is not the last LOUT block?
-            if (rpp_lout_update() != SUCCESS) {
-                %<err_flag> = TRUE;
-            }
-        }
-
-    %endif
-
-%endfunction
-
-%% [EOF]
diff --git a/rpp/blocks/tlc_c/sfunction_mout.tlc b/rpp/blocks/tlc_c/sfunction_mout.tlc
deleted file mode 100644 (file)
index 2a15cac..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-%% Copyright (C) 2013 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Carlos Jenkins <carlos@jenkins.co.cr>
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_mout.tlc
-%% Abstract:
-%%     TLC file for inlining RPP power output block.
-%%
-%% References:
-%%     BlockTypeSetup() : refs/rtw_tlc.pdf p. 277
-%%     Start()          : refs/rtw_tlc.pdf p. 279
-%%     Outputs()        : refs/rtw_tlc.pdf p. 281
-
-
-%implements sfunction_mout "C"
-
-%include "common.tlc"
-
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/mout.h")>
-    %assign ::rpp_mout_present=1
-
-%endfunction
-
-
-%% Function: Start =============================================================
-%function Start(block, system) Output
-
-    %if !SLibCodeGenForSim()
-        %%No initialization needed for this block
-    %endif
-
-%endfunction
-
-
-%% Function: Outputs ===========================================================
-%function Outputs(block, system) Output
-
-    %if !SLibCodeGenForSim()
-
-        %% Get pin number
-        %assign pin_num = LibBlockParameterValue(p1, 0)
-
-        %% Get IO signals
-        %assign power_out = LibBlockInputSignal(0, "", "", 0)
-        %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
-
-        if (rpp_mout_set(%<pin_num>, %<power_out>) != SUCCESS) {
-            %<err_flag> = TRUE;
-        }
-
-    %endif
-
-%endfunction
-
-%% [EOF]
diff --git a/rpp/blocks/tlc_c/sfunction_sdrw.tlc b/rpp/blocks/tlc_c/sfunction_sdrw.tlc
deleted file mode 100644 (file)
index 7b9c562..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-%% Copyright (C) 2013 Czech Technical University in Prague
-%%
-%% Authors:
-%%     - Carlos Jenkins <carlos@jenkins.co.cr>
-%%
-%% This document contains proprietary information belonging to Czech
-%% Technical University in Prague. Passing on and copying of this
-%% document, and communication of its contents is not permitted
-%% without prior written authorization.
-%%
-%% File : sfunction_sdrw.tlc
-%% Abstract:
-%%     TLC file for inlining RPP SD-RAM write block.
-%%
-%% References:
-%%     BlockTypeSetup() : refs/rtw_tlc.pdf p. 277
-%%     Start()          : refs/rtw_tlc.pdf p. 279
-%%     Outputs()        : refs/rtw_tlc.pdf p. 281
-
-
-%implements sfunction_sdrw "C"
-
-%include "common.tlc"
-
-
-%% Function: BlockTypeSetup ====================================================
-%function BlockTypeSetup(block, system) void
-
-    %% Ensure required header files are included
-    %<RppCommonBlockTypeSetup(block, system)>
-    %<LibAddToCommonIncludes("rpp/sdr.h")>
-    %assign ::rpp_sdr_present=1
-
-%endfunction
-
-
-%% Function: Start =============================================================
-%function Start(block, system) Output
-
-    %if !SLibCodeGenForSim()
-        rpp_sdr_setup(TRUE);
-    %endif
-
-%endfunction
-
-
-%% Function: Outputs ===========================================================
-%function Outputs(block, system) Output
-
-    %if !SLibCodeGenForSim()
-
-        %% Get block id
-        %assign block_id = LibBlockParameterValue(p1, 0)
-
-        %% Get IO signals
-        %assign data = LibBlockInputSignal(0, "", "", 0)
-        %assign err_flag = LibBlockOutputSignal(0, "", "", 0)
-
-        %assign printf_format = SFcnParamSettings.PrintfFormat
-        if (rpp_sdr_printf(
-                (const char*)"%<printf_format>",
-                %<block_id>, %<data>
-            ) <= 0) { // <0 for error code, 0 for no data being written.
-            %<err_flag> = TRUE;
-        } else {
-            %<err_flag> = FALSE;
-        }
-
-    %endif
-
-%endfunction
-
-%% [EOF]
index c54e02777a45c25b3f503af5d4a2df1c6a7aafe2..d15c79d6caebcf94de6aff068402a99559a3f5b7 100644 (file)
@@ -1,3 +1,17 @@
+# Copyright (C) 2013 Czech Technical University in Prague
+#
+# Authors:
+#     - Michal Sojka <sojkam1@fel.cvut.cz>
+#
+# This document contains proprietary information belonging to Czech
+# Technical University in Prague. Passing on and copying of this
+# document, and communication of its contents is not permitted
+# without prior written authorization.
+#
+# File : Makefile
+# Abstract:
+#     Build demos
+
 MODELS=$(wildcard *.slx)
 BUILD_DIRS=$(MODELS:%.slx=%_rpp)
 
diff --git a/rpp/demos/adc_demo.slx b/rpp/demos/adc_demo.slx
new file mode 100644 (file)
index 0000000..471cc1a
Binary files /dev/null and b/rpp/demos/adc_demo.slx differ
diff --git a/rpp/demos/analog_passthrough.slx b/rpp/demos/analog_passthrough.slx
deleted file mode 100644 (file)
index b5a9922..0000000
Binary files a/rpp/demos/analog_passthrough.slx and /dev/null differ
diff --git a/rpp/demos/analog_sinewave.slx b/rpp/demos/analog_sinewave.slx
deleted file mode 100644 (file)
index 555aa96..0000000
Binary files a/rpp/demos/analog_sinewave.slx and /dev/null differ
diff --git a/rpp/demos/can_demo.slx b/rpp/demos/can_demo.slx
deleted file mode 100644 (file)
index 20e391b..0000000
Binary files a/rpp/demos/can_demo.slx and /dev/null differ
index bbb6b4dbe6612172b4d47f6d5b4871ec55e1678f..0432c705165a0638d4819c44a4851a4dd4c4bcf1 100644 (file)
Binary files a/rpp/demos/can_ext_mode_demo.slx and b/rpp/demos/can_ext_mode_demo.slx differ
diff --git a/rpp/demos/can_simple_demo.slx b/rpp/demos/can_simple_demo.slx
new file mode 100644 (file)
index 0000000..4192657
Binary files /dev/null and b/rpp/demos/can_simple_demo.slx differ
index 23e86e4fbb1759af1776dce0da3cfb557d31a4f3..71532f70bf96f456c47934c44e2346dd123c5ee1 100644 (file)
Binary files a/rpp/demos/cantransmit.slx and b/rpp/demos/cantransmit.slx differ
index 4d527ce397188beb7eae733153ca4fad38ac8101..5a4b6b32b2b0a6abfad29e71022e1c5866fd40bf 100644 (file)
Binary files a/rpp/demos/demo_board.slx and b/rpp/demos/demo_board.slx differ
diff --git a/rpp/demos/digital_passthrough.slx b/rpp/demos/digital_passthrough.slx
deleted file mode 100644 (file)
index 73d2498..0000000
Binary files a/rpp/demos/digital_passthrough.slx and /dev/null differ
index f6ee95ebb5146f6ab1e6e2bbdaf0b6c1d65c1b70..8100b9ec77dcacfc88cd399fb4ea128633220c2b 100644 (file)
Binary files a/rpp/demos/echo_char.slx and b/rpp/demos/echo_char.slx differ
diff --git a/rpp/demos/fray_basic_demo.slx b/rpp/demos/fray_basic_demo.slx
deleted file mode 100644 (file)
index 5e37355..0000000
Binary files a/rpp/demos/fray_basic_demo.slx and /dev/null differ
diff --git a/rpp/demos/fray_motor_demo.slx b/rpp/demos/fray_motor_demo.slx
deleted file mode 100644 (file)
index 2b5c81a..0000000
Binary files a/rpp/demos/fray_motor_demo.slx and /dev/null differ
diff --git a/rpp/demos/gio_demo.slx b/rpp/demos/gio_demo.slx
new file mode 100644 (file)
index 0000000..9929220
Binary files /dev/null and b/rpp/demos/gio_demo.slx differ
diff --git a/rpp/demos/hbridge_analog_control.slx b/rpp/demos/hbridge_analog_control.slx
deleted file mode 100644 (file)
index d860f2a..0000000
Binary files a/rpp/demos/hbridge_analog_control.slx and /dev/null differ
diff --git a/rpp/demos/hbridge_digital_control.slx b/rpp/demos/hbridge_digital_control.slx
deleted file mode 100644 (file)
index 4b698b0..0000000
Binary files a/rpp/demos/hbridge_digital_control.slx and /dev/null differ
diff --git a/rpp/demos/hbridge_sinewave_control.slx b/rpp/demos/hbridge_sinewave_control.slx
deleted file mode 100644 (file)
index 23fca6c..0000000
Binary files a/rpp/demos/hbridge_sinewave_control.slx and /dev/null differ
index 34100c7cf45d88c2abb85f23d9814be2f5c02dd7..cca105a94c5f42fdbbd45e7ac08f79bea3eae171 100644 (file)
Binary files a/rpp/demos/hello_world.slx and b/rpp/demos/hello_world.slx differ
diff --git a/rpp/demos/irc_input.slx b/rpp/demos/irc_input.slx
deleted file mode 100644 (file)
index 8093fde..0000000
Binary files a/rpp/demos/irc_input.slx and /dev/null differ
diff --git a/rpp/demos/led_blink.slx b/rpp/demos/led_blink.slx
deleted file mode 100644 (file)
index 0d6d57a..0000000
Binary files a/rpp/demos/led_blink.slx and /dev/null differ
diff --git a/rpp/demos/led_blink_all.slx b/rpp/demos/led_blink_all.slx
deleted file mode 100644 (file)
index 53e6450..0000000
Binary files a/rpp/demos/led_blink_all.slx and /dev/null differ
diff --git a/rpp/demos/log_analog_input.slx b/rpp/demos/log_analog_input.slx
deleted file mode 100644 (file)
index 83815e4..0000000
Binary files a/rpp/demos/log_analog_input.slx and /dev/null differ
diff --git a/rpp/demos/power_toggle.slx b/rpp/demos/power_toggle.slx
deleted file mode 100644 (file)
index 4c50869..0000000
Binary files a/rpp/demos/power_toggle.slx and /dev/null differ
diff --git a/rpp/demos/three_phase_freq.slx b/rpp/demos/three_phase_freq.slx
deleted file mode 100644 (file)
index 8ffe614..0000000
Binary files a/rpp/demos/three_phase_freq.slx and /dev/null differ
diff --git a/rpp/lib b/rpp/lib
index dc9ab0f4439a251dec4c69d7b58d08c82b39de65..d2effbc43952a447c183ce4f956262f546064e96 160000 (submodule)
--- a/rpp/lib
+++ b/rpp/lib
@@ -1 +1 @@
-Subproject commit dc9ab0f4439a251dec4c69d7b58d08c82b39de65
+Subproject commit d2effbc43952a447c183ce4f956262f546064e96
diff --git a/rpp/loadti/RM48L952.ccxml b/rpp/loadti/RM48L952.ccxml
new file mode 100644 (file)
index 0000000..cfff996
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<configurations XML_version="1.2" id="configurations_0">
+    <configuration XML_version="1.2" id="configuration_0">
+        <instance XML_version="1.2" desc="Texas Instruments XDS100v2 USB Emulator" href="connections/TIXDS100v2_Connection.xml" id="Texas Instruments XDS100v2 USB Emulator" xml="TIXDS100v2_Connection.xml" xmlpath="connections"/>
+        <connection XML_version="1.2" id="Texas Instruments XDS100v2 USB Emulator">
+            <instance XML_version="1.2" href="drivers/tixds100v2icepick_c.xml" id="drivers" xml="tixds100v2icepick_c.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
+            <instance XML_version="1.2" href="drivers/tixds100v2cortexR.xml" id="drivers" xml="tixds100v2cortexR.xml" xmlpath="drivers"/>
+            <platform XML_version="1.2" id="platform_0">
+                <instance XML_version="1.2" desc="RM48L952" href="devices/rm48l952.xml" id="RM48L952" xml="rm48l952.xml" xmlpath="devices"/>
+            </platform>
+        </connection>
+    </configuration>
+</configurations>
index 9196589feb34ab8c67eac97215dc7e466b2eab59..061894343baf94212b5f1c3bec49381cce9d5a5c 100644 (file)
@@ -306,7 +306,7 @@ $(MODEL)$(PROGRAM_FILE_EXT): $(PREBUILT_OBJS) $(OBJS) $(MODELLIB) $(MODELREF_LIN
 endif
 
 ifeq ($(BUILD_MODE), real_time)
-$(OBJS): $(RPP_LIB_ROOT)/$(RPP_STATIC_LIB) $(RPP_LIB_ROOT)/rpp/TMS570LS313xFlashLnk.cmd
+$(OBJS): $(RPP_LIB_ROOT)/$(RPP_STATIC_LIB) $(RPP_LIB_ROOT)/rpp/RM48L952FlashLnk.cmd
 
 $(MODEL)$(PROGRAM_FILE_EXT): $(OBJS) $(MODELREF_LINK_LIBS) $(SHARED_LIB) $(LIBS)
        @echo "### BUILD_MODE $(BUILD_MODE)"
index 58a2536ad82ed85ebce3b7a61a14850fff46bf17..22f072cec36a3bb9f972636617f848c44756dbb7 100644 (file)
@@ -84,7 +84,7 @@ function rpp_download(modelName, buildDirectory, use_openocd, use_sdram)
                                command = [...
                                        'CCS_SCRIPTING="' CCSRoot '/ccs_base/scripting/" ' ...
                                        '"' RppLibRoot '/../loadti/loadti.sh" -r ' ...
-                                       '-c "', RppLibRoot, '/rpp/TMS570LS3137.ccxml" ', ...
+                                       '-c "', RppLibRoot, '/../loadti/RM48L952.ccxml" ', ...
                                        '"', outfile, ...
                                        '" 2> "', downloadLog, '"'];
                        else
@@ -93,7 +93,7 @@ function rpp_download(modelName, buildDirectory, use_openocd, use_sdram)
                                command = [...
                                        'set CCS_SCRIPTING="' CCSRoot '\ccs_base\DebugServer"&&' ...
                                        '"' RppLibRoot '\..\loadti\loadti.bat" -r ' ...
-                                       '-c "', RppLibRoot, '\rpp\TMS570LS3137.ccxml" ', ...
+                                       '-c "', RppLibRoot, '\..\loadti\RM48L952.ccxml" ', ...
                                        '"', outfile];
             end
             disp('### Running downloader script:');
index 9aa6e6b5a3962a4e30a3b589a4ac64264d23f730..fcf6960769b86abea668c940febb96c6dc8e2058 100644 (file)
@@ -24,7 +24,7 @@
 function rpp_select_callback_handler(hDlg, hSrc)
 
     % Setup the hardware configuration
-    %slConfigUISetVal(hDlg, hSrc, 'ProdHWDeviceType', 'Texas Instruments->TMS570');
+    %slConfigUISetVal(hDlg, hSrc, 'ProdHWDeviceType', 'Texas Instruments->RM48');
 
     % The target is model reference compliant
     slConfigUISetVal(hDlg, hSrc, 'ModelReferenceCompliant', 'on');
index aebd2c38e2cfc92a1b40b05500448dd51db0a8da..93051f608c315d146619f7d0fefc5955c6d7cb85 100644 (file)
     void main(void)
     {
         /* Initialize RPP board */
-               %if EXISTS(::rpp_ain_present)
+        %if EXISTS(::rpp_ain_present)
             rpp_adc_init();
         %endif
-               %if EXISTS(::rpp_aout_present)
-            rpp_dac_init();
+        %if EXISTS(::rpp_din_present) || EXISTS(::rpp_dout_present)
+            rpp_gio_init(RPP_GIO_PORT_ALL);
         %endif
-               %if EXISTS(::rpp_din_present)
-            rpp_din_init();
-        %endif
-               %if EXISTS(::rpp_hbr_present)
-            rpp_hbr_init();
-        %endif
-               %if EXISTS(::rpp_irc_present)
-            rpp_irc_init();
-        %endif
-               %if EXISTS(::rpp_lout_present)
-            rpp_lout_init();
-        %endif
-               %if EXISTS(::rpp_mout_present)
-            rpp_mout_init();
-        %endif
-               %if EXISTS(::rpp_sdr_present)
-            rpp_sdr_init();
-        %endif
-               rpp_sci_init();
+        rpp_sci_init();
 
         // Speed up the SCI
         rpp_sci_setup(115200);
index a8772896d527d632db4d39a7f601cd06bebffd72..f1d5cc6465944e4b5b0a6c541459f987d2dc56bb 100644 (file)
@@ -25,7 +25,7 @@ include $(START_DIR)/slprj/target_paths.mk
 
 # RPP options
 RPP_STATIC_LIB   = rpp-lib.lib
-RPP_OS_LAYER_INC = $(RPP_LIB_ROOT)/os/7.0.2_tms570/include/
+RPP_OS_LAYER_INC = $(RPP_LIB_ROOT)/os/7.0.2_rm48/include/
 
 # Options for target source files
 TARGET_INCS      =
@@ -33,7 +33,7 @@ TARGET_SRCS      =
 
 # Compiler command and options
 CC      = "$(COMPILER_ROOT)/bin/armcl"
-CFLAGS  = -mv7R4 --code_state=32 --float_support=VFPv3D16               \
+CFLAGS  = -mv7R4 -me --code_state=32 --float_support=VFPv3D16           \
           --abi=eabi --compile_only -O2 --gcc --diag_wrap=on            \
           --diag_warning=225 --display_error_number                     \
           --enum_type=packed --gen_func_subsections                     \
@@ -61,7 +61,7 @@ CXXDEBUG         =
 LD      = $(CC)
 LDFLAGS = -mv7R4 --code_state=32 --float_support=VFPv3D16 --abi=eabi    \
           -O2 --diag_warning=225 --display_error_number                 \
-          --enum_type=packed --run_linker -m"$(MODEL).map" --be32       \
+          --enum_type=packed --run_linker -m"$(MODEL).map"              \
           --diag_wrap=on --stack_size=$(RPP_STACK_SIZE)                 \
           --heap_size=$(RPP_HEAP_SIZE) --reread_libs --warn_sections    \
           --display_error_number --rom_model                            \
@@ -69,8 +69,8 @@ LDFLAGS = -mv7R4 --code_state=32 --float_support=VFPv3D16 --abi=eabi    \
           --library="$(RPP_STATIC_LIB)"                                 \
           --retain="$(RPP_STATIC_LIB)<sys_intvecs.obj>(.intvecs)"       \
           --search_path="$(COMPILER_ROOT)/lib"                          \
-          --library="rtsv7R4_T_be_v3D16_eabi.lib"                       \
-          "$(RPP_LIB_ROOT)/rpp/TMS570LS313xFlashLnk.cmd"                \
+          --library="rtsv7R4_T_le_v3D16_eabi.lib"                       \
+          "$(RPP_LIB_ROOT)/rpp/RM48L952FlashLnk.cmd"                \
           --generate_dead_funcs_list=$(MODEL)-deadfuncs.xml
 
 LDDEBUG          = -g
diff --git a/tests/.latexmkrc b/tests/.latexmkrc
new file mode 100644 (file)
index 0000000..91e4f67
--- /dev/null
@@ -0,0 +1,5 @@
+$pdflatex = 'pdflatex -synctex=1 -file-line-error -interaction nonstopmode %O %S';
+$pdf_mode = 1;
+$postscript_mode = $dvi_mode = 0;
+$recorder = 1;
+$use_make_for_missing_files = 1;
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644 (file)
index 0000000..3eada84
--- /dev/null
@@ -0,0 +1,21 @@
+DOC = functional_tests.pdf
+
+all: $(DOC)
+
+-include *.deps
+
+%.tex: %.lyx
+       lyx -e pdflatex $<
+
+%.pdf: %.tex
+       latexmk -deps -deps-out=$@.deps $< # See also .latexmkrc
+
+clean:
+       rm -f $(DOC)
+
+%.pdf: %.svg
+       inkscape --export-pdf=$@ $<
+
+.PHONY: version.tex
+version.tex:
+       git describe --dirty --always --match 'version_*'|sed -e s/^version_// > $@
diff --git a/tests/functional_tests.lyx b/tests/functional_tests.lyx
new file mode 100644 (file)
index 0000000..400c33b
--- /dev/null
@@ -0,0 +1,13583 @@
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
+\begin_document
+\begin_header
+\textclass article
+\begin_preamble
+\newcommand{\superscript}[1]{\ensuremath{^{\textrm{\small#1}}}}
+\newcommand{\subscript}[1]{\ensuremath{_{\textrm{\small#1}}}}
+
+
+
+% images and graphics
+\usepackage{paralist}% needed for compact lists
+\usepackage{ulem}% needed by strike
+\usepackage{listings}% required for code blocks
+% links
+% char encoding
+\usepackage[bottom]{footmisc}% footnotes
+\usepackage{todonotes}
+
+% header
+% To fix images position
+
+% Prettify code documentation
+\definecolor{gray97}{gray}{.97}
+\definecolor{gray75}{gray}{.75}
+\definecolor{gray45}{gray}{.45}
+\lstset{ frame=Ltb,
+     framerule=0pt,
+     aboveskip=0.5cm,
+     framextopmargin=3pt,
+     framexbottommargin=3pt,
+     framexleftmargin=0.4cm,
+     framesep=0pt,
+     rulesep=.4pt,
+     backgroundcolor=\color{gray97},
+     rulesepcolor=,
+     %
+     stringstyle=\ttfamily,
+     showstringspaces = false,
+     basicstyle=\small\ttfamily,
+     commentstyle=\color{gray45},
+     keywordstyle=\bfseries,
+     %
+     numbers=left,
+     numbersep=15pt,
+     numberstyle=\tiny,
+     numberfirstline = false,
+     breaklines=true,
+     xleftmargin=20px,
+   }
+
+% Spacing
+\linespread{1.15} % Lines spacing
+\setlength{\plitemsep}{0.5\baselineskip} % List items spacing
+\definecolor{deepblue}{RGB}{0,0,61}
+
+
+% Table of content depth
+
+
+% Landscape pages
+\usepackage{lscape}\usepackage{pdflscape}
+
+% Change page
+\usepackage{changepage}
+
+% Font options
+% Sans-serif
+% \renewcommand{\familydefault}{\sfdefault}
+% Better PDF font
+
+
+% Multiple columns
+\usepackage{multicol}
+
+\newcommand{\repo}{$\langle$repo$\rangle$}
+\end_preamble
+\use_default_options false
+\maintain_unincluded_children false
+\language english
+\language_package none
+\inputencoding utf8x
+\fontencoding default
+\font_roman lmodern
+\font_sans default
+\font_typewriter lmodern
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
+
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref true
+\pdf_bookmarks true
+\pdf_bookmarksnumbered false
+\pdf_bookmarksopen false
+\pdf_bookmarksopenlevel 1
+\pdf_breaklinks false
+\pdf_pdfborder false
+\pdf_colorlinks true
+\pdf_backref section
+\pdf_pdfusetitle true
+\pdf_quoted_options "urlcolor=blue,hyperfootnotes=false,linkcolor=deepblue"
+\papersize default
+\use_geometry true
+\use_amsmath 1
+\use_esint 1
+\use_mhchem 0
+\use_mathdots 0
+\cite_engine basic
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 4
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+% Title
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset FormulaMacro
+\newcommand{\HRule}{\rule{\linewidth}{0.5mm}}
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{titlepage}
+\end_layout
+
+\end_inset
+
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+% Upper part of the page
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset Graphics
+       filename images/logo_ctu.pdf
+       width 35text%
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+
+\backslash
+[1cm]
+\end_layout
+
+\end_inset
+
+\shape smallcaps
+\size largest
+Czech Technical University in Prague
+\shape default
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+
+\backslash
+[1.5cm]
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+% Document title
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+HRule
+\end_layout
+
+\end_inset
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+
+\backslash
+[0.4cm]
+\end_layout
+
+\end_inset
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+{
+\end_layout
+
+\end_inset
+
+\series bold
+\size huge
+Functional tests of software for RM48L952ZWT
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+
+\backslash
+[0.4cm]
+\end_layout
+
+\end_inset
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+HRule
+\end_layout
+
+\end_inset
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+
+\backslash
+[1.5cm]
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+% Author
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\emph on
+Authors:
+\emph default
+
+\begin_inset Newline newline
+\end_inset
+
+ Ing.
+ Michal Horn
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+
+\backslash
+[
+\backslash
+baselineskip]
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\align center
+
+\emph on
+Version:
+\emph default
+\begin_inset CommandInset include
+LatexCommand input
+filename "version.tex"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset VSpace vfill
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\align center
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+% Bottom of the page
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\size large
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+today
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{titlepage}
+\end_layout
+
+\end_inset
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+% Title end
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset toc
+LatexCommand tableofcontents
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+addtolength{
+\backslash
+parskip}{
+\backslash
+baselineskip}
+\end_layout
+
+\end_inset
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+% Paragraph spacing
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+hypertarget{introduction}{
+\end_layout
+
+\end_inset
+
+
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\end_inset
+
+\end_layout
+
+\begin_layout Section
+Introduction
+\end_layout
+
+\begin_layout Standard
+This document contains tests of required functionality, described in a document
+\noun on
+Simulink-to-RM48 Framework Project Requirements
+\noun default
+, version 1.2 from October 22, 2014.
+\end_layout
+
+\begin_layout Subsection
+Structure of the document
+\end_layout
+
+\begin_layout Standard
+The tests are designed to verify the functionality of the software from
+ the bottom to the top, which means that the lower software layers are tested
+ first and after this basic functionality is confirmed, the higher software
+ layer tests are performed.
+ The document is thus divided in two sections.
+\end_layout
+
+\begin_layout Standard
+The first section contains tests of the lower levels of the software.
+ Here the main control interface is a serial interface with a command processor.
+ The command processor calls functions of the RPP library layer and HAL
+ layer to control the hardware.
+ In this section the tests go from the bottom to the top as well, so the
+ serial interface with the command processor is tested first and other periphera
+ls tests are following.
+\end_layout
+
+\begin_layout Standard
+The second section contains tests of the Matlab Simulink blocks, which provide
+ more comfortable and more sophisticated means of the hardware control.
+ Because the underlying layers have been tested in the first section, only
+ the functions of the blocks are tested here.
+\end_layout
+
+\begin_layout Subsection
+Structure of the tests
+\end_layout
+
+\begin_layout Standard
+Every test is sumarized in three subsections.
+\noun on
+Test goals
+\noun default
+, which describes what was tested, 
+\noun on
+Test procedure
+\noun default
+, which describes how it was tested to easily reproduce the test and 
+\noun on
+Results
+\noun default
+, which provides a summary table of the results of the test goals.
+ Each goal has a column Passed, which contains L if the test passed for
+ Linux, W if the test passed for Windows or X if the test did not passed
+ at all.
+\end_layout
+
+\begin_layout Subsection
+Tested platforms
+\end_layout
+
+\begin_layout Standard
+All tests were performed on both platforms, Windows and Linux.
+ The mark PASSED has been granted only when the test passed on both of the
+ platforms.
+\end_layout
+
+\begin_layout Standard
+Be aware that especially the tests of the CAN functionality are designed
+ to be performed on Linux based machine, because of easiness of the creation
+ of software CAN ports.
+ But this does not interfere with Windows test as long as the firmware is
+ compiled and downloaded to the board from Windows and serial interface
+ is connected to the Windows based computer.
+\end_layout
+
+\begin_layout Section
+Behavior of the HW controlled by the command processor.
+\end_layout
+
+\begin_layout Standard
+All those tests requires the command processor to be loaded in the board.
+ To load the command processor use Code Composer Studio, open a rpp_test_sw
+ project and download it to the board before performing any of the following
+ tests.
+\end_layout
+
+\begin_layout Subsection
+\begin_inset CommandInset label
+LatexCommand label
+name "sub:Serial-Communication-Interface"
+
+\end_inset
+
+Serial Communication Interface and Command processor
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Itemize
+Verify configuration of the SCI 2 port to the baud rate 115200.
+\end_layout
+
+\begin_layout Itemize
+Verify characters transmission from a HDK to a computer.
+\end_layout
+
+\begin_layout Itemize
+Verify characters reception from the computer in the HDK.
+\end_layout
+
+\begin_layout Itemize
+Verify that the command processor is processing the input characters.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Standard
+The TMDSRM48HDK contains a serial interface provided by a FTDI chip, connected
+ to the microUSB port J7.
+ This chip is connected to the SCI 2 port of the MCU.
+\end_layout
+
+\begin_layout Standard
+Tools for accessing the serial port on the computer are GtkTerm for Linux
+ and Terminal for Windows.
+ Both programs have to be configured as follows:
+\end_layout
+
+\begin_layout Itemize
+Baud Rate: 115200
+\end_layout
+
+\begin_layout Itemize
+Parity: none
+\end_layout
+
+\begin_layout Itemize
+Bits: 8
+\end_layout
+
+\begin_layout Itemize
+Stopbits: 1
+\end_layout
+
+\begin_layout Itemize
+Flow control: none
+\end_layout
+
+\begin_layout Standard
+The test procedure is:
+\end_layout
+
+\begin_layout Enumerate
+Connect the HDK board with a computer via a USB cable.
+\end_layout
+
+\begin_layout Enumerate
+Launch and configure program for access to the serial port.
+\end_layout
+
+\begin_layout Enumerate
+Plug in the power supply.
+\end_layout
+
+\begin_layout Enumerate
+Verify that a welcome message has been received on the computer.
+\end_layout
+
+\begin_layout Enumerate
+Input characters h e l p 
+\backslash
+n.
+\end_layout
+
+\begin_layout Enumerate
+Verify that the characters apper on the computer as you are typing them.
+\end_layout
+
+\begin_layout Enumerate
+Verify that the command processor has processed the command 
+\noun on
+help
+\noun default
+ and that help text has been received on the computer.
+\end_layout
+
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="5" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Test
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+SCI 2 Configuration
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+SCI 2 Transmission
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+5-6
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+SCI 2 Reception
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+5-6
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Command processor
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+7
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+\begin_inset CommandInset label
+LatexCommand label
+name "sub:Digital-output"
+
+\end_inset
+
+Digital output
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Itemize
+Verify that all pins are configured in Push/Pull output mode after the reset.
+\end_layout
+
+\begin_layout Itemize
+Verify availability of pins GIOA0-7, GIOB0-7, NHET1 0-31, except NHET1 6
+ and NHET1 13.
+\end_layout
+
+\begin_layout Itemize
+Verify that toggling all available pins high and low in Push/Pull mode really
+ changes the output value.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Run pinlist command and check that pins GIOA 0-7, GIOB 0-7, NHET1 0-5, NHET1
+ 7-12, NHET1 14-31 are listed.
+\end_layout
+
+\begin_layout Enumerate
+For every pin PINNAME in the list:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Connect a LED to the PINNAME GIO output pin.
+ The anode of the LED is connected to the GIO output pin, the cathode of
+ the LED is connected to the GND pin.
+ The LED should not be shining at the moment.
+\end_layout
+
+\begin_layout Enumerate
+Input command 
+\noun on
+pinvalPINNAME 1.
+
+\noun default
+ Check that the LED is shining now.
+\end_layout
+
+\begin_layout Enumerate
+Input command 
+\noun on
+pinvalPINNAME 0.
+
+\noun default
+ Check that the LED is turned off again.
+\end_layout
+
+\end_deeper
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Paragraph
+GIOA
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="10" columns="7">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Pin name
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Startup configuration
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Available
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+High/Low, Push/Pull
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 3
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 4
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 5
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 6
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 7
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Paragraph
+GIOB
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="10" columns="7">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Pin name
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Startup configuration
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Available
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+High/Low, Push/Pull
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 3
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 4
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 5
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 6
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 7
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Paragraph
+NHET
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="32" columns="7">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Pin name
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Startup configuration
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Available
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+High/Low, Push/Pull
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 3
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 4
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 5
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 7
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 8
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 9
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 10
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 11
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 12
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 14
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 15
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 16
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 17
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 18
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 19
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 20
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 21
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 22
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 23
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 24
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 25
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 26
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 27
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 28
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 29
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 30
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 31
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+\begin_inset CommandInset label
+LatexCommand label
+name "sub:Digital-input"
+
+\end_inset
+
+Digital input
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Itemize
+Verify switching all available pins of the GIOA, GIOB and NHET1 ports to
+ input pull up mode.
+\end_layout
+
+\begin_layout Itemize
+Verify that toggling of the input pin by an external source really changes
+ the value retrieved by a read command.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Retrieve a list of available pins like in test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Digital-output"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+For every pin PINNAME listed by the pinlist command:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Run 
+\noun on
+pindirPINNAME 0
+\noun default
+ to switch the pin to pull up input mode,
+\end_layout
+
+\begin_layout Enumerate
+connect the pin to a GND and read a value by a 
+\noun on
+pinvalPINNAME
+\noun default
+ command.
+ Check that the retrieved value is logical low.
+\end_layout
+
+\begin_layout Enumerate
+Disconnect the pin from the GND and read a value by the 
+\noun on
+pinvalPINNAME
+\noun default
+ command.
+ Check that the retrieved value is logical high.
+\end_layout
+
+\end_deeper
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Paragraph
+GIOA
+\end_layout
+
+\begin_layout Standard
+
+\family roman
+\series medium
+\shape up
+\size normal
+\emph off
+\bar no
+\strikeout off
+\uuline off
+\uwave off
+\noun off
+\color none
+\begin_inset Tabular
+<lyxtabular version="3" rows="10" columns="5">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Pin name
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Switch to input pull up mode
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Value reading
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 3
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 4
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 5
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 6
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA 7
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Paragraph
+GIOB
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="10" columns="5">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Pin name
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Switch to input pull up mode
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Value reading
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 3
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 4
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 5
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 6
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB 7
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Paragraph
+NHET1
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="32" columns="5">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Pin name
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Switch to input pull up mode
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Value reading
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 3
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 4
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 5
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 7
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 8
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 9
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 10
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 11
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 12
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 14
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 15
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 16
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 17
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 18
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 19
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 20
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 21
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 22
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 23
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 24
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 25
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 26
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 27
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 28
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 29
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 30
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1 31
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a,3c
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b,3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Analog input
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Standard
+Verify that voltage retrieved from ADC1 pins 0-15 is equal to the reference
+ voltage 0V and 5V.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Standard
+The HDK provides a reference voltages 0V and 5V on ADREFL and ADREFH pin.
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Run a 
+\noun on
+adcwatch
+\noun default
+ command to see a voltages on all ADC1 pins in real time.
+\end_layout
+
+\begin_layout Enumerate
+\begin_inset CommandInset label
+LatexCommand label
+name "enu:Ain-test-procedure-For-all-pins"
+
+\end_inset
+
+For pin X from 0-15 do:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Connect ADCREFL to AD1INX.
+ Check that the measured voltage is 0V.
+\end_layout
+
+\begin_layout Enumerate
+Connect ADCREFH to AD1INX.
+ Check that the measured voltage is 5V.
+\end_layout
+
+\end_deeper
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Paragraph
+ADC1
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="18" columns="5">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Pin name
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0V
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+5V
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN3
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN4
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN5
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN6
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN7
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN8
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN9
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN10
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN11
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN12
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN13
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN14
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN15
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+CAN Configuration
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Itemize
+Verify an automatic CAN bit timing calculation for bitrates 125k, 250k and
+ 500k,
+\end_layout
+
+\begin_layout Itemize
+Verify a message transmission in a loopback,
+\end_layout
+
+\begin_layout Itemize
+Verify a message reception in a loopback,
+\end_layout
+
+\begin_layout Itemize
+Verify a transmission request pending flag detection,
+\end_layout
+
+\begin_layout Itemize
+Verify overwriting of a current transmission request by calling a consecutive
+ CAN send function,
+\end_layout
+
+\begin_layout Itemize
+Verify a reception indicator reading.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Standard
+The command processor has a built in test command 
+\noun on
+canrpptest
+\noun default
+.
+ This test requires a hardware loopback between CAN1 (J2) and CAN2 (J3)
+ pins.
+ See the command documentation for more details.
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Create external CAN loopback by connecting CAN1 (J2) and CAN2 (J3).
+\end_layout
+
+\begin_layout Enumerate
+Run command 
+\noun on
+canrpptest
+\noun default
+ and check that there is OK status for all of its sections.
+\end_layout
+
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="9" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Test
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+CAN bit timing calculation 125 kb/sec
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+CAN bit timing calculation 250 kb/sec
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+CAN bit timing calculation 500 kb/sec
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Message reception
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Message transmission
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Transmission request pending detection
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Overwriting older TX request
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Reception indicator detection
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+CAN Transmission
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Standard
+Verify a transmission of CAN messages to an external device at speed 125
+ kb/sec, 250 kb/sec and 500 kb/sec.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Connect the CAN1 (J2) connector of the HDK to a computer via a USB2CAN converter.
+\end_layout
+
+\begin_layout Enumerate
+For speed X from 125000, 250000 and 500000 do:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Input 
+\noun on
+canbaudrate1:X
+\noun default
+ to the command processor.
+\end_layout
+
+\begin_layout Enumerate
+Input 
+\noun on
+caninit
+\noun default
+ to the command processor.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command sudo ip link set can0 down.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command sudo ip link set can0 up type can bitrate
+ X.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command candump can0.
+\end_layout
+
+\begin_layout Enumerate
+Input 
+\noun on
+cansend 1 0x1 DEAD BEEF
+\noun default
+ to the command processor.
+\end_layout
+
+\begin_layout Enumerate
+Check that the candump has received this message.
+\end_layout
+
+\begin_layout Enumerate
+Terminate the candump by pressing CTRL+C.
+\end_layout
+
+\end_deeper
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="4" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+CAN speed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+125 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+250 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+500 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+CAN Reception
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Standard
+Verify a reception of CAN messages transmitted from an external device to
+ the HDK at speed 125 kb/sec, 250 kb/sec and 500 kb/sec.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Connect the CAN1 (U2) connector of the HDK to a computer via a USB2CAN converter.
+\end_layout
+
+\begin_layout Enumerate
+For speed X from 125000, 250000 and 500000 do:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Input 
+\noun on
+canbaudrate1 X
+\noun default
+ to the command processor.
+\end_layout
+
+\begin_layout Enumerate
+Input 
+\noun on
+caninit
+\noun default
+ to the command processor.
+\end_layout
+
+\begin_layout Enumerate
+Input 
+\noun on
+candump 1
+\noun default
+ to the command processor.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command sudo ip link set can0 down.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command sudo ip link set can0 up type can bitrate
+ X.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command cansend can0 00000001#DEADBEEF.
+\end_layout
+
+\begin_layout Enumerate
+Check that the candump has received this message.
+\end_layout
+
+\begin_layout Enumerate
+Terminate the candump by pressing any key.
+\end_layout
+
+\end_deeper
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="4" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+CAN speed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+125 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+250 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+500 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L, W
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Newpage newpage
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Behavioral of the HW controlled by software generated from Matlab Simulink
+ Code generator
+\end_layout
+
+\begin_layout Subsection
+Serial Communication Interface
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Itemize
+Verify functionality of Serial Receive block.
+\end_layout
+
+\begin_layout Itemize
+Verify functionality of Serial Send block.
+\end_layout
+
+\begin_layout Itemize
+Verify functionality of Serial Printf block.
+\end_layout
+
+\begin_layout Itemize
+Verify functionality of Serial Configure block.
+\end_layout
+
+\begin_layout Standard
+The verification of Serial interface itself has been done in test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Open, build and download model echo_char.slx.
+\end_layout
+
+\begin_layout Enumerate
+Check that characters you are typing are echoed back.
+\end_layout
+
+\begin_layout Enumerate
+Open a hello_world model, double click on the Serial Configure block and
+ input speed 9600.
+\end_layout
+
+\begin_layout Enumerate
+Reconfigure the access to the serial interface on the computer to speed
+ 9600.
+\end_layout
+
+\begin_layout Enumerate
+Build and download the model to he HDK and check that a message 'Hello Simulink'
+ is printed.
+\end_layout
+
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="5" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Test
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Serial Receive
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Serial Send
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Serial Configure
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4-6
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Serial Printf
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Digital output
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Standard
+Verify functionality of a Digital Output (DOUT) block:
+\end_layout
+
+\begin_layout Itemize
+For GIOA, GIOB, NHET1 ports.
+\end_layout
+
+\begin_layout Itemize
+Output value 0 and 1 after the reset.
+\end_layout
+
+\begin_layout Itemize
+Push/Pull and Open Drain mode.
+\end_layout
+
+\begin_layout Standard
+Only one pin for every port is tested just to verify the block functionality.
+ All pins controlling has been verified in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Digital-output"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Open model gio_demo.slx.
+\end_layout
+
+\begin_layout Enumerate
+Comment out all DIN blocks.
+\end_layout
+
+\begin_layout Enumerate
+For port PORTNAME in GIOA, GIOB, NHET1 do:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Double click on all of the Digital Output blocks and change the port to
+ PORTNAME.
+\end_layout
+
+\begin_layout Enumerate
+Build, download and run the model.
+\end_layout
+
+\begin_layout Enumerate
+Connect an oscilloscope to the PORTNAME 4 pin, reset the board and check
+ that the value that appears right after the reset is logical low.
+\end_layout
+
+\begin_layout Enumerate
+Connect the oscilloscope to the PORTNAME 5 pin, reset the board and check
+ that the value that appears right after the reset is logical high.
+\end_layout
+
+\begin_layout Enumerate
+Connect the oscilloscope to the PORTNAME 4 pin and check that the voltage
+ value is switching between 0V and 3.3V.
+\end_layout
+
+\begin_layout Enumerate
+Connect the oscilloscope to the PORTNAME 3 pin and check that the voltage
+ is switching between 0V and some floating voltage between 0-3.3V.
+\end_layout
+
+\end_deeper
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="13" columns="4">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Test
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Port
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Default output value 0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Default output value 1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3d
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3d
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3d
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Push/Pull mode
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3e
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3e
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3e
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Open Drain mode
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3f
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3f
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3f
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Digital input
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Standard
+Verify functionality of a Digital Input (DIN) block:
+\end_layout
+
+\begin_layout Itemize
+For GIOA, GIOB, NHET1 ports,
+\end_layout
+
+\begin_layout Itemize
+Tri-state, Pull up, Pull down mode.
+\end_layout
+
+\begin_layout Itemize
+Reading values
+\end_layout
+
+\begin_layout Standard
+Only one pin for every port is tested just to verify the block functionality.
+ All pins controlling has been verified in the test
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Digital-input"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Open model gio_demo.slx.
+\end_layout
+
+\begin_layout Enumerate
+Comment out blocks Digital Output 1 and 2.
+\end_layout
+
+\begin_layout Enumerate
+For port PORTNAME in GIOA, GIOB, NHET1 do:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Double click on all of the Digital input blocks and change the port to PORTNAME.
+\end_layout
+
+\begin_layout Enumerate
+Connect the output pin GIOA 4 with an input pin PORTNAME 7 and check that
+ the printed value is changing from 0 to 1.
+\end_layout
+
+\begin_layout Enumerate
+Connect the output pin GIOA 4 with the input pin PORTNAME 6 and check that
+ the printed value is changing from 0 to 1.
+\end_layout
+
+\begin_layout Enumerate
+Disconnect the wire and check that the value of the pin remains 1.
+\end_layout
+
+\begin_layout Enumerate
+Connect the output pin GIOA 4 with the input pin PORTNAME 5 and check that
+ the printed value is changing from 0 to 1.
+\end_layout
+
+\begin_layout Enumerate
+Disconnect the wire and check that the value of the pin remains 0.
+\end_layout
+
+\end_deeper
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="13" columns="4">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Test
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Port
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Tri-state
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Pull-up
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2c, 2d
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2c, 2d
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2c, 2d
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Pull-down
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2e, 2f
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2e, 2f
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2e, 2f
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Reading
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOA
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2b, 2c, 2e
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+GIOB
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2b, 2c, 2e
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+NHET1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+2b, 2c, 2e
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+Analog input
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Standard
+Verify that the Analog Input (AIN) block measures voltage on the selected
+ A1IN pin.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Open, build, download and run a model adc_demo.slx.
+\end_layout
+
+\begin_layout Enumerate
+For all A1INX pins do the procedure like in point 
+\begin_inset CommandInset ref
+LatexCommand vref
+reference "enu:Ain-test-procedure-For-all-pins"
+
+\end_inset
+
+ and check that the values printed for each pin change between 0 and 4095.
+\end_layout
+
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="18" columns="5">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Pin name
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+0V
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+5V
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN3
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN4
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN5
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN6
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN7
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN8
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN9
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN10
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN11
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN12
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN13
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN14
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+AD1IN15
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+CAN Configuration
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Standard
+Verify that the CAN Setup block configures the CAN1 and CAN2 bus with apropriate
+ bit rate 125k, 250k and 500k.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Open model can_simple_demo.slx.
+\end_layout
+
+\begin_layout Enumerate
+Connect the CAN1 bus (connector J2) to a computer via a USB2CAN converter.
+\end_layout
+
+\begin_layout Enumerate
+For speed X from 125000, 250000, 500000 do:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Double click on CAN Setup block and set CANX baudrate to X.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command sudo ip link set can0 down.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command sudo ip link set can0 up type can bitrate
+ X.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command candump can0.
+\end_layout
+
+\begin_layout Enumerate
+Build, download and run the model and check that a CAN message is received
+ in the Linux terminal.
+\end_layout
+
+\begin_layout Enumerate
+Terminate the candump by pressing Ctrl+C.
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Double click on the CAN Transmit block and change module to CAN2.
+\end_layout
+
+\begin_layout Enumerate
+Connect the CAN2 bus (connector J3) to a computer via a USB2CAN converter.
+\end_layout
+
+\begin_layout Enumerate
+Repeat step 4 for CAN2.
+\end_layout
+
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="7" columns="4">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+CAN Bus
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Bit rate
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+CAN 1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+125 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+250 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+500 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+CAN 2
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+125 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4-7
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+250 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4-7
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+500 000
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4-7
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+CAN Transmission
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Standard
+Verify the functionality of the CAN Transmit block:
+\end_layout
+
+\begin_layout Itemize
+Module selection CAN1 and CAN2.
+\end_layout
+
+\begin_layout Itemize
+Frame type selection Standart and Extended.
+\end_layout
+
+\begin_layout Itemize
+Message ID configuration:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Negative values.
+\end_layout
+
+\begin_layout Itemize
+Values higher than allowed for both frame types.
+\end_layout
+
+\begin_layout Itemize
+Two equal values.
+\end_layout
+
+\begin_layout Itemize
+Normal values.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+Automatic and manual mailbox number configuration:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Negative values.
+\end_layout
+
+\begin_layout Itemize
+Two equal values.
+\end_layout
+
+\begin_layout Itemize
+High values.
+\end_layout
+
+\begin_layout Itemize
+Normal values.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+Mixing of automatic and manual mailbox numbering.
+\end_layout
+
+\begin_layout Itemize
+Automatic detection of data type as an input message - uint8, uint16, uint32.
+\end_layout
+
+\begin_layout Itemize
+Support for CAN_MESSAGE data type, generated by CAN Pack block for Raw data
+ and for manually specified signals.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Connect the CAN1 (J2) to a computer via a USB2CAN converter.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command sudo ip link set can0 down.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command sudo ip link set can0 up type can bitrate
+ 500000.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command candump can0.
+\end_layout
+
+\begin_layout Enumerate
+Open, build and run model cantransmit.slx.
+ Check that messages with following IDs are received by the candump in the
+ Linux terminal:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+0x4
+\end_layout
+
+\begin_layout Enumerate
+0x5
+\end_layout
+
+\begin_layout Enumerate
+0x14
+\end_layout
+
+\begin_layout Enumerate
+0x80
+\end_layout
+
+\begin_layout Enumerate
+0x81
+\end_layout
+
+\begin_layout Enumerate
+0x82
+\end_layout
+
+\begin_layout Enumerate
+0x400000
+\end_layout
+
+\begin_layout Enumerate
+0x540000
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Double click on the CAN Transmit 9 block, uncheck the Automatic mailbox
+ number and enter Mailbox number 1, then -1 and finally 150.
+\end_layout
+
+\begin_layout Enumerate
+Try to build the model for every value from the previous step and check
+ if it will not build.
+\end_layout
+
+\begin_layout Enumerate
+Revert changes to the initial state.
+\end_layout
+
+\begin_layout Enumerate
+Double click on the CAN Transmit 9 block and change the message ID to 128.
+\end_layout
+
+\begin_layout Enumerate
+Build, download and run the modela and check that the mesage ID 0x81 does
+ not appear between received messages.
+\end_layout
+
+\begin_layout Enumerate
+Double click on the CAN Transmit 9 block, change the message ID to -1 and
+ then 2050 .
+\end_layout
+
+\begin_layout Enumerate
+Try to build the model for both values and check that it does not go through.
+\end_layout
+
+\begin_layout Enumerate
+Double click on the CAN Transmit 9 block, change the frame type to Extended
+ and change message ID to -1 and then 540000000 .
+\end_layout
+
+\begin_layout Enumerate
+Try to build the model for both values and check that it does not go through.
+\end_layout
+
+\begin_layout Enumerate
+Revert changes to the initial state.
+\end_layout
+
+\begin_layout Enumerate
+Connect the CAN2 (J3) to the computer via the USB2CAN converter.
+\end_layout
+
+\begin_layout Enumerate
+Terminate the candump by pressing ctrl+D.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command sudo ip link set can0 down.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command sudo ip link set can0 up type can bitrate
+ 500000.
+\end_layout
+
+\begin_layout Enumerate
+In Linux terminal run command candump can0.
+\end_layout
+
+\begin_layout Enumerate
+Open model cantransmit.slx, double click on CAN Transmit block and change
+ module to CAN2.
+\end_layout
+
+\begin_layout Enumerate
+Build, download and run the model.
+ Check that the message with message ID 0x80 is received by the candump.
+\end_layout
+
+\begin_layout Enumerate
+Terminate the candump by pressing Ctrl+C.
+\end_layout
+
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="20" columns="4">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Test
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Module selection
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+21-22
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Frame type selection
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Standart
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6a-6f
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Extended
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6a,6g,6h
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Message ID
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Negative val
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+12-15
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+High Standart
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+X (2050)
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+12-13
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+High Extended
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+14-15
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Two equal
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+10-11
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Normal
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Automatic mailbox calculation
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6d-6h
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Manual mailbox numbering
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Negative values
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+7-8
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+High values
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+7-8
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Two equal
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+7-8
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Normal
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Mix of manual and automatic mailbox numbering
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Input message data type
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+uint8
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6d
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+uint16
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6e
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+uint32
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6f
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+CAN Pack support
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Raw data
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6a
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+User defined data
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+6b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+CAN Reception
+\end_layout
+
+\begin_layout Subsubsection
+Test goals
+\end_layout
+
+\begin_layout Standard
+Verify the functionality of the CAN Receive block:
+\end_layout
+
+\begin_layout Itemize
+Module selection CAN1 and CAN2.
+\end_layout
+
+\begin_layout Itemize
+Frame type selection Standart and Extended.
+\end_layout
+
+\begin_layout Itemize
+Message filtering selection.
+\end_layout
+
+\begin_layout Itemize
+Message filtering with ID only.
+\end_layout
+
+\begin_layout Itemize
+Message filtering with message ID and mask.
+\end_layout
+
+\begin_layout Itemize
+Message ID configuration:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Negative values.
+\end_layout
+
+\begin_layout Itemize
+Values higher than allowed for both frame types.
+\end_layout
+
+\begin_layout Itemize
+Two equal values.
+\end_layout
+
+\begin_layout Itemize
+Normal values.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+Automatic and manual mailbox number configuration:
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+Negative values.
+\end_layout
+
+\begin_layout Itemize
+Two equal values.
+\end_layout
+
+\begin_layout Itemize
+High values.
+\end_layout
+
+\begin_layout Itemize
+Normal values.
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+Mixing of automatic and manual mailbox numbering.
+\end_layout
+
+\begin_layout Itemize
+Output message data type selection.
+\end_layout
+
+\begin_layout Itemize
+Support for CAN_MESSAGE data type, accepted by CAN Unpack block for Raw
+ data and for manually specified signals.
+\end_layout
+
+\begin_layout Subsubsection
+Test procedure
+\end_layout
+
+\begin_layout Enumerate
+Connect the board with a computer and configure access to the serial interface
+ like in the test 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Serial-Communication-Interface"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Enumerate
+Create external loopback between CAN1 (J2) and CAN2 (J3).
+\end_layout
+
+\begin_layout Enumerate
+Open, build and run model cantransmit.slx and check that:
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Message 0xA with data type uint8 is received.
+\end_layout
+
+\begin_layout Enumerate
+Message 0x5A6B with data type uint16 is received.
+\end_layout
+
+\begin_layout Enumerate
+Message 0x5A6B7C8D with data type uint32 is received.
+\end_layout
+
+\begin_layout Enumerate
+8B long message CAN Pack Raw message data with manual mailbox configuration
+ selected (data: 0xAB, 0xAC, 0xAD, 0xAE, 0xAB, 0xAC, 0xAD, 0xAE)
+\end_layout
+
+\begin_layout Enumerate
+3B long message CAN Pack Maually defined message data with manual mailbox
+ configuration selected (data: 0xB4, 0xB5, 0xB6)
+\end_layout
+
+\begin_layout Enumerate
+Messages with ID 0x14 and 0x15 are received in turns as they are filtered
+ with ID mask
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+Double click on CAN Receive 1 block, uncheck Automatic mailbox number and
+ configure the Mailbox number to -1, then 5 and finally 150.
+\end_layout
+
+\begin_layout Enumerate
+Try to build the model for every value from the previous step and check
+ that it does not go through.
+\end_layout
+
+\begin_layout Enumerate
+Revert changes to the initial state.
+\end_layout
+
+\begin_layout Enumerate
+Double click on the CAN Receive 1 block, change the message ID to 128.
+\end_layout
+
+\begin_layout Enumerate
+Build, download and run the modela and check that the uint16 message is
+ not received any more.
+\end_layout
+
+\begin_layout Enumerate
+Double click on the CAN Receive 1 block, change the message ID to -1 and
+ then 2050 .
+\end_layout
+
+\begin_layout Enumerate
+Try to build the model for both values and check that it does not go through.
+\end_layout
+
+\begin_layout Enumerate
+Double click on the CAN Receive 1 block, change the frame type to Extended
+ and change message ID to -1 and then 540000000 .
+\end_layout
+
+\begin_layout Enumerate
+Try to build the model for both values and check that it does not go through
+\end_layout
+
+\begin_layout Enumerate
+Revert changes to the initial state.
+\end_layout
+
+\begin_layout Enumerate
+Double click on CAN Transmit block and switch Module to CAN2.
+\end_layout
+
+\begin_layout Enumerate
+Double click on CAN Receive block and switch Module to CAN1.
+\end_layout
+
+\begin_layout Enumerate
+Build, download and run the model and check that the output still matches
+ to the subpoints a-e of the point 3.
+\end_layout
+
+\begin_layout Subsubsection
+Results
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="22" columns="4">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<column alignment="center" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Test
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Passed
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Covered by
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Module selection
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+14-16
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Frame type selection
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Standard
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a-3d
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Extended
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3e
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Message filtering
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+ID
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a-3d
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+ID & mask
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3f
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Message ID
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Negative value
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+9-12
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+High for standard
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+X
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+9-10
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+High for extended
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+11-12
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Two equal
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+7-8
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Normal
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Manual mailbox
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Negative value
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4-5
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+High value
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4-5
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Two equal
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+4-5
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Normal
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3, 7-10
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Mixing automatic and manual mailbox numbering
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3, 7-10
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Automatic mailbox calculation
+\end_layout
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3, 7-10
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Output data type selection
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+uint8
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3a
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+uint16
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3b
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+uint32
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3c
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="3" alignment="left" valignment="middle" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+CAN Unpack support
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Raw data
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3d
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multirow="4" alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+User defined data
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+L
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+3e
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
diff --git a/tests/images/logo_ctu.pdf b/tests/images/logo_ctu.pdf
new file mode 100644 (file)
index 0000000..1ffa835
Binary files /dev/null and b/tests/images/logo_ctu.pdf differ