]> rtime.felk.cvut.cz Git - jenkicar/rpp-simulink.git/commitdiff
Merge branch 'maint-rm48' into rm48/master
authorMichal Horn <hornmich@fel.cvut.cz>
Wed, 10 Dec 2014 09:29:12 +0000 (10:29 +0100)
committerMichal Horn <hornmich@fel.cvut.cz>
Wed, 10 Dec 2014 09:29:12 +0000 (10:29 +0100)
Conflicts:
doc/rpp_simulink.tex
doc/test-sw

108 files changed:
.gitmodules
Makefile
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/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/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 acfb799e7d58e22f5e2a98a3236aa8ed695378a2..aa471265fa55ac79969ec27334533f4ffb106762 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -12,12 +12,10 @@ release: $(RELEASE_BASENAME).zip
 $(RELEASE_BASENAME):: lib
        mkdir -p $@/rpp/lib/rpp
        mkdir -p $@/rpp/lib/os/7.0.2_tms570
-       mkdir -p $@/rpp/lib/lwip/src
        cp --parents rpp/lib/rpp-lib.lib $@/
        cp -r rpp/lib/rpp/include $@/rpp/lib/rpp/include
        cp rpp/lib/rpp/TMS570LS313xFlashLnk.cmd $@/rpp/lib/rpp/TMS570LS313xFlashLnk.cmd
        cp -r rpp/lib/os/7.0.2_tms570/include $@/rpp/lib/os/7.0.2_tms570/include
-       cp -r rpp/lib/lwip/src/include $@/rpp/lib/lwip/src/include
        $(MAKE) -C doc
        mkdir -p $@/doc
        cp doc/rpp_simulink.pdf $@/doc
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
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..6f3a5050879b2cc4661fa88e38033b3a54df9fea 100644 (file)
@@ -59,11 +59,17 @@ howpublished = {\url{http://en.wikipedia.org/wiki/Model-based_design}}
     institution = "MathWorks",
     year        = "2013"
 }
-@TECHREPORT {tms570ls31xtechnicalreferencemanual2012,
+@TECHREPORT {rm48xtechnicalreferencemanual2013,
     author      = "Texas Instruments",
-    title       = "{TMS570LS31x/21x} 16/32-Bit {RISC} Flash Microcontroller -- {T}echnical Reference Manual",
+    title       = "{RM48x} 16/32-Bit {RISC} Flash Microcontroller -- {T}echnical Reference Manual",
     institution = "Texas Instruments",
-    year        = "2012"
+    year        = "2013"
+}
+@TECHREPORT {rm48hdkusersguide2013,
+    author      = "Texas Instruments",
+    title       = "{RM48} Hercules Development Kit ({HDK}) -- {U}ser's Guide",
+    institution = "Texas Instruments",
+    year        = "2013"
 }
 @BOOK {usingthefreertos2009,
     author    = "Richard Barry",
index e5178c30ef5471b85ccbc9f421f24f48d75088dc..afd659050d7410b4e4c335e09fdeabe2da673399 100644 (file)
 \begin{center}
 
 % Upper part of the page
-\includegraphics[width=0.70\textwidth]{images/logos.png}\\[1cm]
-\textsc{\LARGE Costa Rica Institute of Technology}\\[0.5cm]
+\includegraphics[width=0.40\textwidth]{images/logo_ctu.pdf}\\[1cm]
 \textsc{\LARGE Czech Technical University in Prague}\\[1.5cm]
 
 
 % Document title
-\HRule \\[0.4cm]
-{ \huge \bfseries Code generation for automotive rapid prototyping platform using Matlab/Simulink}\\[0.4cm]
+\HRule
+\vspace{0.4cm}
+{\huge \bfseries Simulink code generation target for Texas~Instruments
+  RM48 platform\par}
+\vspace{0.4cm}
 \HRule \\[1.5cm]
 
 
@@ -126,13 +128,21 @@ Michal \textsc{Sojka}\\[\baselineskip]
 \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 serves as a documentation for the Rapid Prototyping Platform
+(RPP) project based on Texas Instruments RM48 safety microcontroller.
+Originally, the RPP project was created for TMS570 microcontroller and
+the port to RM48 was derived from it under a contract with Eaton
+Corporation. 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 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.
 
 \section{Background}
 \label{sec-background}
@@ -145,7 +155,7 @@ 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}
+safety critical applications. See~\cite{rm48xtechnicalreferencemanual2013}
 for details.
 
 In order to develop non-trivial applications for the RPP, an operating
@@ -198,9 +208,9 @@ 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 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
@@ -240,7 +250,7 @@ Texas Instruments. This version is in use 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}
 
 \subsection{System Layer} 
@@ -312,199 +322,73 @@ This section provides reference documentation for the RPP board:
        \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.
+The Rapid Prototyping Platform is based on a TMDSRM48HDK development kit developed and distributed by Texas Instruments. The kit is depicted in Figure \ref{fig-board_photo}.
 
 \begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=300px]{images/board-photo.png}
-\caption{The RPP board (signal connector missing).}
-\label{board_photo}
+       \noindent
+       \includegraphics[width=300px]{images/board.png}
+       \caption{The RPP board \cite[p. 8]{rm48hdkusersguide2013}}
+       \label{fig-board_photo}
 \end{center}\end{figure}
 
+Only a subset of the peripherals available on the kit is implemented in the control software. A block scheme in Figure \ref{fig-blocks} ilustrates the implemented peripherals and their connection with the MCU, expansion connectors and other components on the development kit.
 
-\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]
-\advance\leftskip-1cm
-\noindent
-\includegraphics[width=530px]{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]\begin{center}
+       \noindent
+       \includegraphics[width=400px]{images/blocks.png}
+       \caption{The peripherals block scheme.}
+       \label{fig-blocks}
+\end{center}\end{figure}
 
-\begin{figure}[H]
-\advance
-\leftskip-1cm
-\noindent
-\includegraphics[width=500px]{images/blocks.pdf}
-\caption{The RPP layer modules.}
-\label{blocks}
-\end{figure}
+For pinout description of the implemented peripherals refer the RM48HDK User's Guide \cite{rm48hdkusersguide2013}.
 
-\subsubsection{Logic IO}
+\subsection{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}
+\subsubsection{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 \cite{rm48hdkusersguide2013} for the connection description.
+ \end{compactitem}
 
-\paragraph{Analog Input (ADC)}
+\subsubsection{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}
+ \begin{compactitem}
+       \item 16 channels available on the Expansion connector J9.
+       \item Range for 0-5 volts.
+       \item 12 bits resolution.
+       \item Using CPU ADC.
+ \end{compactitem}
 
-\subsubsection{Communication}
+\subsection{Communication}
 \label{sec-communication}
-\paragraph{CAN bus (CAN)}
+\subsubsection{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 2 ports available ready for connection to the CAN bus on connector J2 and J3.
+       \item 3 ports available as an interface for external CAN bus drivers on the Expansion connector J11.
        \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)}
+\subsubsection{Serial Comm. Interface (SCI)}
 \label{par-sci}
 \begin{compactitem}
-       \item 1 port available inside the box on SCI connector (4 pins).
+       \item 1 port available on connector J7.
        \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}
-
 \section{Document structure}
 \label{sec-document-structure}
 The structure of this document is as follows:
@@ -834,8 +718,7 @@ add \textsc{RPP\_LIB\_ROOT} to the library search path.\newline{}
        \item Configure linker to retain \textsc{.intvecs} from RPP static
 library.\newline{} \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{}
@@ -1014,7 +897,7 @@ 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.  
@@ -1038,7 +921,7 @@ 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
@@ -1266,7 +1149,11 @@ serial interface connector on the RPP board.
 \section{Bug reporting}
 \label{sec-bug-reporting}
 
-% TODO: implement
+Please report any problems at 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}
@@ -1357,7 +1244,7 @@ errors. After that all changes can be committed.
 \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
+other ARM/RM48 applications. This files are placed here by the Makefile, when
 the library is built.
 
        \item[apps/] Demo applications related to the RPP library.
@@ -1366,7 +1253,7 @@ This include the CCS studio project for generation of the static library and the
 a test suite. The test suit in this directory does not match the test suite
 mentioned later in Chapter 5 and those two suits are going to be merged in the
 future. Also other demo Hello World like applications are included as a
-reference about how to create a TMS570 application.
+reference about how to create a RM48 application.
        \item[os/] OS layers directory. See OS interchangeable layer for more
 information.  
        \item[rpp/] Main directory for the RPP Library.
@@ -1829,8 +1716,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}
@@ -1848,39 +1737,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}
@@ -1909,31 +1789,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}
@@ -1944,63 +1818,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}
+\subsection{GIO demo}
 \begin{figure}[H]\begin{center}
 \noindent
-\includegraphics[width=450px]{images/demo_hbridge_digital_control.png}
-\caption{H-Bridge Digital 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 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}
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=300px]{images/demo_hbridge_sinewave_control.png}
-\caption{H-Bridge Sinewave Control Simulink demo for RPP.}
-\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 pusched 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}
@@ -2011,158 +1846,10 @@ 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 \textsc{"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}
 The \textsc{rpp-test-suite} is a RPP application developed testing and direct
index b6361ca5eca38b897e93d821ea4629df21174219..61697a9f72516095f18681eba78ce419e195b21f 160000 (submodule)
@@ -1 +1 @@
-Subproject commit b6361ca5eca38b897e93d821ea4629df21174219
+Subproject commit 61697a9f72516095f18681eba78ce419e195b21f
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 72e17394d0650d2fea9a592e143b6beb12a78675..af7ad6a801798d08b342712d8c8371db7c7784cd 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 b446fb76462cbf0d15f7a26d078613635d9d8ffd..36b02c8c09ce72798db1dc447a5d7ad99da4a582 160000 (submodule)
--- a/rpp/lib
+++ b/rpp/lib
@@ -1 +1 @@
-Subproject commit b446fb76462cbf0d15f7a26d078613635d9d8ffd
+Subproject commit 36b02c8c09ce72798db1dc447a5d7ad99da4a582
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..532887d35849f5d19069844365b531f43560285e 100644 (file)
@@ -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,7 +69,7 @@ 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"                       \
+          --library="rtsv7R4_T_le_v3D16_eabi.lib"                       \
           "$(RPP_LIB_ROOT)/rpp/TMS570LS313xFlashLnk.cmd"                \
           --generate_dead_funcs_list=$(MODEL)-deadfuncs.xml
 
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