]> rtime.felk.cvut.cz Git - jenkicar/rpp-simulink.git/commitdiff
Merge branch 'maint-rm48' into rm48/master eaton-0.1-beta
authorMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 4 Dec 2014 10:57:17 +0000 (11:57 +0100)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Thu, 4 Dec 2014 10:57:17 +0000 (11:57 +0100)
97 files changed:
.gitmodules
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/board-photo.png [deleted file]
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.tex
doc/test-sw
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
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/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/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 a491e513c88a0f1b9113db2c3932b4a9f52de310..78e9a08cedbc96a8a7fd7f508965403d7029f855 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}
@@ -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
@@ -312,139 +322,141 @@ 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.
-
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=300px]{images/board-photo.png}
-\caption{The RPP board (signal connector missing).}
-\label{board_photo}
-\end{center}\end{figure}
-
-
-\subsection{Connectors pinout}
-\label{sec-connector-pinout}
-The pinout of the board, described by the Figure \ref{pinout}, follows the
-layout described in the previous section. The side connectors for communication
-(24 pins), signals (56 pins) and power (24 pins) are automotive approved
-humidity resistant connectors.
-
-\begin{figure}[H]
-\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]
-\advance
-\leftskip-1cm
-\noindent
-\includegraphics[width=500px]{images/blocks.pdf}
-\caption{The RPP layer modules.}
-\label{blocks}
-\end{figure}
-
-\subsubsection{Logic IO}
-\label{sec-logic-io}
+TODO
+
+% \subsection{Layout description}
+% \label{sec-layout-description}
+% The RPP board has been designed with strict Automotive standards and safety in
+% mind. The components and pins are placed in sections and wires are routed in a
+% way to avoid any significant electromagnetic interference.
+
+% As can be seen on Figure \ref{board_photo}, the high power output logic is
+% placed in the top left corner, the low power output logic is placed on the
+% bottom left corner, while the communication logic is placed on the top right
+% corner.  In the middle there is the only one button available, the reset button
+% and below it is placed the TMS570 MCU itself. In the bottom right corner there
+% are components of analog inputs.
+
+% \begin{figure}[H]\begin{center}
+% \noindent
+% \includegraphics[width=300px]{images/board-photo.png}
+% \caption{The RPP board (signal connector missing).}
+% \label{board_photo}
+% \end{center}\end{figure}
+
+
+% \subsection{Connectors pinout}
+% \label{sec-connector-pinout}
+% The pinout of the board, described by the Figure \ref{pinout}, follows the
+% layout described in the previous section. The side connectors for communication
+% (24 pins), signals (56 pins) and power (24 pins) are automotive approved
+% humidity resistant connectors.
+
+% \begin{figure}[H]
+% \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]
+% \advance
+% \leftskip-1cm
+% \noindent
+% \includegraphics[width=500px]{images/blocks.pdf}
+% \caption{The RPP layer modules.}
+% \label{blocks}
+% \end{figure}
+
+% \subsubsection{Logic IO}
+% \label{sec-logic-io}
 
 \paragraph{Digital Inputs (DIN)}
 \label{par-digital-inputs}
-\begin{compactitem}
-       \item 16 pins available on Signal Connector.
-       \item Pins 8-15 status can be read via GPIO using configurable
-threshold.  \newline{} Pins 8-11 use variable threshold B and pins 12-15 use
-variable threshold A.
-       \item Variable threshold is a DAC chip MCP4922.
-       \item All pins are read at once via SPI (fixed threshold) using chip
-MC33972.
-       \item 0-7 are programmable pins and can be set to pull-up or
-pull-down. 8-15 are pull-down only.
-       \item All pins can be set to be active or tri-stated.
-       \item All pins can be set to trigger interrupt.
-       \item On-line diagnostic of broken wire.
-\end{compactitem}
-
-\paragraph{Digital Outputs (LOUT)}
-\label{par-digital-outputs}
-\begin{compactitem}
-       \item 8 pins available on Signal Connector.
-       \item Pins for logic output only, up to 100mA.
-       \item All pins are set at once using a chip through SPI.
-\end{compactitem}
+\begin{compactitem}
+%      \item 16 pins available on Signal Connector.
+%      \item Pins 8-15 status can be read via GPIO using configurable
+threshold.  \newline{} Pins 8-11 use variable threshold B and pins 12-15 use
+variable threshold A.
+%      \item Variable threshold is a DAC chip MCP4922.
+%      \item All pins are read at once via SPI (fixed threshold) using chip
+MC33972.
+%      \item 0-7 are programmable pins and can be set to pull-up or
+pull-down. 8-15 are pull-down only.
+%      \item All pins can be set to be active or tri-stated.
+%      \item All pins can be set to trigger interrupt.
+%      \item On-line diagnostic of broken wire.
+\end{compactitem}
+
+\paragraph{Digital Outputs (LOUT)}
+\label{par-digital-outputs}
+\begin{compactitem}
+%      \item 8 pins available on Signal Connector.
+%      \item Pins for logic output only, up to 100mA.
+%      \item All pins are set at once using a chip through SPI.
+\end{compactitem}
 
 \paragraph{Analog Input (ADC)}
 \label{par-analog-input}
-\begin{compactitem}
-       \item 12 channels available.
-       \item Differential inputs, thus 24 pins available on Signal Connector.
-       \item Range for 0-20 volts.
-       \item 12 bits resolution.
-       \item Using CPU ADC.
-\end{compactitem}
-
-\paragraph{Analog Output (DAC)}
-\label{par-analog-output}
-\begin{compactitem}
-       \item 4 pins available on Signal Connector.
-       \item Output range is 0-12 volts.
-       \item Using 2 x MCP4922 DACs controlled using SPI.
-       \item Resolution is 12 bits. But because of amplification and voltage
-reference not all range is used.
-\end{compactitem}
-
-\subsubsection{Power Output}
-\label{sec-power-output}
-\paragraph{H-Bridge (HBR)}
-\label{par-hbr}
-\begin{compactitem}
-       \item 1 port (2 pins) available on Power Connector.
-       \item Communication is done through SPI.
-       \item H-Bridge can be enabled or disabled.
-       \item Current direction can be set.
-       \item PWM control with 1\% resolution change of the duty cycle.
-       \item Port can drive load up to 10A.
-\end{compactitem}
-
-\paragraph{Power Output (MOUT)}
-\label{par-power-output}
-\begin{compactitem}
-       \item 6 pins available on Power Connector.
-       \item Pins can drive a load up to 2A. Push/Pull.
-       \item Pins are set using 6 CPU output GPIOs. Diagnostic are read using 6
-externally pulled-up open-drain input GPIOs.
-       \item On-line diagnostics. Driver chip will pull-down the corresponding
-diagnostic pin on the CPU.  
-\end{compactitem}
-
-\paragraph{High-Power Output (HOUT)}
-\label{par-high-power-output}
-\begin{compactitem}
-       \item 6 pins available on Power Connector.
-       \item Pins can be set ON/OFF.
-       \item Pins can drive a load up to 10A with PWM.
-       \item System can read analog values of current flowing (IFBK).
-       \item System can read diagnostics values (DIAG). Detection of a fault
-condition.  
-\end{compactitem}
+\begin{compactitem}
+%      \item 12 channels available.
+%      \item Differential inputs, thus 24 pins available on Signal Connector.
+%      \item Range for 0-20 volts.
+%      \item 12 bits resolution.
+%      \item Using CPU ADC.
+\end{compactitem}
+
+\paragraph{Analog Output (DAC)}
+\label{par-analog-output}
+\begin{compactitem}
+%      \item 4 pins available on Signal Connector.
+%      \item Output range is 0-12 volts.
+%      \item Using 2 x MCP4922 DACs controlled using SPI.
+%      \item Resolution is 12 bits. But because of amplification and voltage
+reference not all range is used.
+\end{compactitem}
+
+\subsubsection{Power Output}
+\label{sec-power-output}
+\paragraph{H-Bridge (HBR)}
+\label{par-hbr}
+\begin{compactitem}
+%      \item 1 port (2 pins) available on Power Connector.
+%      \item Communication is done through SPI.
+%      \item H-Bridge can be enabled or disabled.
+%      \item Current direction can be set.
+%      \item PWM control with 1\% resolution change of the duty cycle.
+%      \item Port can drive load up to 10A.
+\end{compactitem}
+
+\paragraph{Power Output (MOUT)}
+\label{par-power-output}
+\begin{compactitem}
+%      \item 6 pins available on Power Connector.
+%      \item Pins can drive a load up to 2A. Push/Pull.
+%      \item Pins are set using 6 CPU output GPIOs. Diagnostic are read using 6
+externally pulled-up open-drain input GPIOs.
+%      \item On-line diagnostics. Driver chip will pull-down the corresponding
+diagnostic pin on the CPU.  
+\end{compactitem}
+
+\paragraph{High-Power Output (HOUT)}
+\label{par-high-power-output}
+\begin{compactitem}
+%      \item 6 pins available on Power Connector.
+%      \item Pins can be set ON/OFF.
+%      \item Pins can drive a load up to 10A with PWM.
+%      \item System can read analog values of current flowing (IFBK).
+%      \item System can read diagnostics values (DIAG). Detection of a fault
+condition.  
+\end{compactitem}
 
 \subsubsection{Communication}
 \label{sec-communication}
@@ -458,20 +470,20 @@ are available on Communication connector.
        \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{Local Interconnect Network (LIN)}
+\label{par-lin}
+\begin{compactitem}
+%      \item 2 ports/pins available on Communication Connector.
+%      \item Only first port can be used when using the SCI. Second port is
+shared with SCI.  
+\end{compactitem}
+
+\paragraph{FlexRay (FR)}
+\label{par-flexray}
+\begin{compactitem}
+%      \item 2 ports available. FlexRay uses differential signaling thus 4 pins are available on
+ Communication Connector.
+\end{compactitem}
 
 \paragraph{Serial Comm. Interface (SCI)}
 \label{par-sci}
@@ -481,29 +493,29 @@ shared with SCI.
        \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}
+\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}
@@ -749,8 +761,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{}
+TMS570 and RPP includes, in that order.\newline{}
 \noindent\includegraphics[width=350px]{images/base_5.png}
 \newpage
        \item Configure compiler to allow GCC extensions.\newline{}
@@ -929,7 +940,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.  
@@ -1179,7 +1190,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}
@@ -1742,8 +1757,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}
@@ -1761,39 +1778,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}
@@ -1822,31 +1830,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}
-
-\textbf{Description:}
+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.
 
-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}
@@ -1857,63 +1859,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}
+\subsection{GIO demo}
 \begin{figure}[H]\begin{center}
 \noindent
-\includegraphics[width=450px]{images/demo_hbridge_analog_control.png}
-\caption{H-Bridge Analog Control Simulink demo for RPP.}
+\includegraphics[width=450px]{images/demo_gio.png}
+\caption{Demonstration of DIN and DOUT blocks}
 \end{center}\end{figure}
 
 \textbf{Description:}
 
-This demo will read values from the analog input, map them, and control the H-Bridge. This allows
-a motor connected to the H-Bridge to be controlled with a potentiometer connected to Analog Input 1.
-
-Setting the potentiometer to output around 6 volts will stop the motor. Less (or greater) than 6
-volts will trigger the motor in one sense (or in the other sense) and speed proportional with 1\%
-resolution.
-
-In laboratory the minimum read value for analog input is 107 at 0 volts. The maximum read at 12 volts
-is 2478. The map subsystem will map the input domain (ADC)\textsc{[110, 2400]} to the output domain
-(HBR)\textsc{[-1.0, 1.0]}.
-
-
-\subsection{H-bridge digital control}
-\begin{figure}[H]\begin{center}
-\noindent
-\includegraphics[width=450px]{images/demo_hbridge_digital_control.png}
-\caption{H-Bridge Digital Control Simulink demo for RPP.}
-\end{center}\end{figure}
-
-\textbf{Description:}
-
-This demo toggle the H-Bridge from stop to full speed in one direction using digital input 1.
-So basically is a ON/OFF switch on DIN 1 for a motor connected on the HBR. Note the data type
-conversion because the output of the DIN is a boolean and the input to the HBR is a double.
-
-\subsection{H-bridge sine wave control}
-\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}
@@ -1924,158 +1887,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 380e2cc5b23006b993d3d4a35561f1dd8a06e0e8..bc441c9ebe319c98fba3d75c8b0b47b3f6d1670c 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 380e2cc5b23006b993d3d4a35561f1dd8a06e0e8
+Subproject commit bc441c9ebe319c98fba3d75c8b0b47b3f6d1670c
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..0a7353c1aaab68397943c876a48fc949d56d0621 160000 (submodule)
--- a/rpp/lib
+++ b/rpp/lib
@@ -1 +1 @@
-Subproject commit b446fb76462cbf0d15f7a26d078613635d9d8ffd
+Subproject commit 0a7353c1aaab68397943c876a48fc949d56d0621
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