Commit 7c913fc1 authored by Matthieu Cattin's avatar Matthieu Cattin

doc: Update doc to describe new features.

parent 267af46a
......@@ -9,8 +9,8 @@
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="397.87109"
height="95.080078"
width="522.79785"
height="90.06543"
id="svg18660"
version="1.1"
inkscape:version="0.47 r22583"
......@@ -221,6 +221,53 @@
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2917"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="TriangleOutM-0"
style="overflow:visible">
<path
id="path3353-66"
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="scale(0.4,0.4)" />
</marker>
<inkscape:perspective
id="perspective2960"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="TriangleOutM-4"
style="overflow:visible">
<path
id="path3353-5"
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="scale(0.4,0.4)" />
</marker>
<inkscape:perspective
id="perspective2990"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
......@@ -229,16 +276,16 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="130.96882"
inkscape:cy="124.39521"
inkscape:zoom="1.979899"
inkscape:cx="222.48035"
inkscape:cy="35.167165"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1920"
inkscape:window-height="1123"
inkscape:window-height="1173"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-y="0"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
......@@ -256,7 +303,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
......@@ -264,7 +311,7 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-0.98144531,-146.86218)">
transform="translate(28.041992,-111.44226)">
<path
sodipodi:type="arc"
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
......@@ -274,38 +321,46 @@
sodipodi:rx="5"
sodipodi:ry="5"
d="m 140,47.362183 c 0,2.761423 -2.23858,5 -5,5 -2.76142,0 -5,-2.238577 -5,-5 0,-2.761424 2.23858,-5 5,-5 2.76142,0 5,2.238576 5,5 z"
transform="matrix(4,0,0,4,-355,-22.086548)" />
<rect
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect19214"
width="70"
height="40"
x="230"
y="147.36218" />
transform="matrix(4,0,0,4,-354.01855,-57.506472)" />
<text
xml:space="preserve"
style="font-size:8px;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;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="243.39355"
y="202.36218"
x="264.32129"
y="161.94226"
id="text3237-3-4-5-9-32-8"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="243.39355"
y="202.36218"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8">Saturate</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 265,152.36218 0,30"
id="path19277" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 235,167.36218 60,0"
id="path19279" />
<path
style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 240,177.36218 10,0 30,-20 10,0"
id="path19287" />
x="264.32129"
y="161.94226"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8">Saturate to</tspan><tspan
sodipodi:role="line"
x="264.32129"
y="174.44226"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan3010">16-bit signed</tspan></text>
<g
id="g2903">
<rect
y="111.94226"
x="230.98145"
height="40"
width="70"
id="rect19214"
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
id="path19277"
d="m 265.98145,116.94226 0,30"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path19279"
d="m 235.98145,131.94226 60,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path19287"
d="m 240.98145,141.94226 10,0 30,-20 10,0"
style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path
sodipodi:type="arc"
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
......@@ -315,114 +370,162 @@
sodipodi:rx="5"
sodipodi:ry="5"
d="m 140,47.362183 c 0,2.761423 -2.23858,5 -5,5 -2.76142,0 -5,-2.238577 -5,-5 0,-2.761424 2.23858,-5 5,-5 2.76142,0 5,2.238576 5,5 z"
transform="matrix(4,0,0,4,-420,-22.086548)" />
transform="matrix(4,0,0,4,-449.01855,-57.506472)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 120,157.36218 0,20 0,0"
d="m 90.98145,121.94226 0,20 0,0"
id="path19388" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 110,167.36218 20,0"
d="m 80.98145,131.94226 20,0"
id="path19390" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 195,157.36218 -20,20 0,0"
d="m 195.98145,121.94226 -20,20 0,0"
id="path19392" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 175,157.36218 20,20"
d="m 175.98145,121.94226 20,20"
id="path19394" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 140,167.36218 20,0"
d="m 110.98145,131.94226 49.99999,0"
id="path3202" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 205,167.36218 20,0"
d="m 205.98145,131.94226 20,0"
id="path3202-9" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 75,167.36218 20,0"
d="m 45.981445,131.94226 20,0"
id="path3202-8" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 300,167.36218 20,0"
d="m 300.98145,131.94226 20,0"
id="path3202-4" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 120,212.36218 0,-20"
d="m 90.98145,176.94226 0,-20"
id="path3202-3" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 185,212.36218 0,-20"
d="m 185.98145,176.94226 0,-20"
id="path3202-3-2" />
<text
xml:space="preserve"
style="font-size:8px;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;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="65"
y="227.36218"
x="91.13282"
y="186.94226"
id="text3237-3-4-5-9-32-8-6"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="65"
y="227.36218"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
x="91.13282"
y="186.94226"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8-9">Offset correction</tspan><tspan
sodipodi:role="line"
x="65"
y="239.86218"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
x="91.13282"
y="199.44226"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan19579">16-bit signed</tspan></text>
<text
xml:space="preserve"
style="font-size:8px;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;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="170"
y="227.36218"
x="185.40771"
y="186.94226"
id="text3237-3-4-5-9-32-8-5"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="170"
y="227.36218"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
x="185.40771"
y="186.94226"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8-2">Gain correction</tspan><tspan
sodipodi:role="line"
x="170"
y="239.86218"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
x="185.40771"
y="199.44226"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan19581">16-bit fixed point</tspan></text>
<text
xml:space="preserve"
style="font-size:8px;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;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="0"
y="163.87097"
x="-29.018555"
y="128.45105"
id="text3237-3-4-5-9-32-8-4"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="0"
y="163.87097"
x="-29.018555"
y="128.45105"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8-8">Raw ADC data</tspan><tspan
sodipodi:role="line"
x="0"
y="176.37097"
x="-29.018555"
y="140.95105"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
id="tspan19577">16-bit signed</tspan></text>
<text
xml:space="preserve"
style="font-size:8px;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;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="325"
y="163.87097"
x="420.98145"
y="128.45837"
id="text3237-3-4-5-9-32-8-9"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="325"
y="163.87097"
x="420.98145"
y="128.45837"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8-83">Corrected data</tspan><tspan
sodipodi:role="line"
x="325"
y="176.37097"
x="420.98145"
y="140.95837"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
id="tspan19583">16-bit signed</tspan></text>
<g
transform="translate(94.999995,-1.875e-6)"
id="g2903-6">
<rect
y="111.94226"
x="230.98145"
height="40"
width="70"
id="rect19214-3"
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
id="path19277-9"
d="m 265.98145,116.94226 0,30"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path19279-4"
d="m 235.98145,131.94226 60,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path19287-2"
d="m 240.98145,141.94226 10,0 30,-20 10,0"
style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 395.98145,131.94226 20,0"
id="path3202-4-8" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 360.98145,176.94226 0,-20"
id="path3202-3-2-9" />
<text
xml:space="preserve"
style="font-size:8px;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;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="361.16211"
y="187.80652"
id="text3237-3-4-5-9-32-8-3"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="361.16211"
y="187.80652"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan3014">User prog. saturation</tspan><tspan
sodipodi:role="line"
x="361.16211"
y="200.30652"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan3020">15-bit unsigned</tspan></text>
</g>
</svg>
......@@ -322,6 +322,26 @@
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="scale(0.4,0.4)" />
</marker>
<inkscape:perspective
id="perspective3596"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="TriangleOutM-9"
style="overflow:visible">
<path
id="path3353-9"
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="scale(0.4,0.4)" />
</marker>
</defs>
<sodipodi:namedview
id="base"
......@@ -330,17 +350,17 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="297.12732"
inkscape:cy="159.55387"
inkscape:zoom="2"
inkscape:cx="302.48352"
inkscape:cy="61.274911"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
showgrid="true"
inkscape:snap-global="true"
inkscape:window-width="1920"
inkscape:window-height="1123"
inkscape:window-height="1173"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-y="0"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
......@@ -358,7 +378,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
......@@ -533,7 +553,7 @@
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 317.48138,83.464046 0,16.576924"
d="m 292.73138,83.464046 0,16.576924"
id="path6082" />
<text
xml:space="preserve"
......@@ -575,12 +595,12 @@
<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%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="293.26508"
x="268.51508"
y="77.244675"
id="text8539"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="293.26508"
x="268.51508"
y="77.244675"
id="tspan8541">Threshold</tspan></text>
<text
......@@ -780,5 +800,20 @@
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 455.13411,254.23453 8.2921,0"
id="path8587" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 340.48138,83.46405 0,16.57692"
id="path6082-8" />
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="340.93304"
y="77.244682"
id="text8539-8"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="340.93304"
y="77.244682"
id="tspan3622">Filter</tspan></text>
</g>
</svg>
......@@ -27,88 +27,112 @@ REG @tab
Number of shots
@item @code{0x18} @tab
REG @tab
@code{shots_cnt} @tab
Remaining shots counter
@item @code{0x1c} @tab
REG @tab
@code{trig_pos} @tab
Trigger address register
@item @code{0x1c} @tab
@item @code{0x20} @tab
REG @tab
@code{fs_freq} @tab
Sampling clock frequency
@item @code{0x24} @tab
REG @tab
@code{sr} @tab
Sample rate
@item @code{0x20} @tab
@item @code{0x28} @tab
REG @tab
@code{pre_samples} @tab
Pre-trigger samples
@item @code{0x24} @tab
@item @code{0x2c} @tab
REG @tab
@code{post_samples} @tab
Post-trigger samples
@item @code{0x28} @tab
@item @code{0x30} @tab
REG @tab
@code{samples_cnt} @tab
Samples counter
@item @code{0x2c} @tab
@item @code{0x34} @tab
REG @tab
@code{ch1_ctl} @tab
Channel 1 control register
@item @code{0x30} @tab
@item @code{0x38} @tab
REG @tab
@code{ch1_sta} @tab
Channel 1 status register
@item @code{0x34} @tab
@item @code{0x3c} @tab
REG @tab
@code{ch1_gain} @tab
Channel 1 gain calibration register
@item @code{0x38} @tab
@item @code{0x40} @tab
REG @tab
@code{ch1_offset} @tab
Channel 1 offset calibration register
@item @code{0x3c} @tab
@item @code{0x44} @tab
REG @tab
@code{ch1_sat} @tab
Channel 1 saturation register
@item @code{0x48} @tab
REG @tab
@code{ch2_ctl} @tab
Channel 2 control register
@item @code{0x40} @tab
@item @code{0x4c} @tab
REG @tab
@code{ch2_sta} @tab
Channel 2 status register
@item @code{0x44} @tab
@item @code{0x50} @tab
REG @tab
@code{ch2_gain} @tab
Channel 2 gain calibration register
@item @code{0x48} @tab
@item @code{0x54} @tab
REG @tab
@code{ch2_offset} @tab
Channel 2 offset calibration register
@item @code{0x4c} @tab
@item @code{0x58} @tab
REG @tab
@code{ch2_sat} @tab
Channel 2 saturation register
@item @code{0x5c} @tab
REG @tab
@code{ch3_ctl} @tab
Channel 3 control register
@item @code{0x50} @tab
@item @code{0x60} @tab
REG @tab
@code{ch3_sta} @tab
Channel 3 status register
@item @code{0x54} @tab
@item @code{0x64} @tab
REG @tab
@code{ch3_gain} @tab
Channel 3 gain calibration register
@item @code{0x58} @tab
@item @code{0x68} @tab
REG @tab
@code{ch3_offset} @tab
Channel 3 offset calibration register
@item @code{0x5c} @tab
@item @code{0x6c} @tab
REG @tab
@code{ch3_sat} @tab
Channel 3 saturation register
@item @code{0x70} @tab
REG @tab
@code{ch4_ctl} @tab
Channel 4 control register
@item @code{0x60} @tab
@item @code{0x74} @tab
REG @tab
@code{ch4_sta} @tab
Channel 4 status register
@item @code{0x64} @tab
@item @code{0x78} @tab
REG @tab
@code{ch4_gain} @tab
Channel 4 gain calibration register
@item @code{0x68} @tab
@item @code{0x7c} @tab
REG @tab
@code{ch4_offset} @tab
Channel 4 offset calibration register
@item @code{0x80} @tab
REG @tab
@code{ch4_sat} @tab
Channel 4 saturation register
@end multitable
@regsection @code{ctl} - Control register
@multitable @columnfractions .10 .10 .15 .10 .55
......@@ -227,11 +251,21 @@ Software trigger enable
@code{INT_TRIG_SEL}
@tab @code{0} @tab
Channel selection for internal trigger
@item @code{15...6}
@item @code{6}
@tab R/W @tab
@code{INT_TRIG_TEST_EN}
@tab @code{0} @tab
Enable internal trigger test mode
@item @code{7}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@item @code{15...8}
@tab R/W @tab
@code{INT_TRIG_THRES_FILT}
@tab @code{0} @tab
Internal trigger threshold glitch filter
@item @code{31...16}
@tab R/W @tab
@code{INT_TRIG_THRES}
......@@ -245,7 +279,9 @@ Threshold for internal trigger
@item @code{hw_trig_en} @tab 0: disable@*1: enable
@item @code{sw_trig_en} @tab 0: disable@*1: enable
@item @code{int_trig_sel} @tab 00: channel 1@*01: channel 2@*10: channel 3@*11: channel 4
@item @code{int_trig_test_en} @tab Test mode:@* ch1 = Channel 1 input(analogue)@* ch2 = Channel input over threshold (digital)@* ch3 = Channel input over threshold filtered (digital)@* ch4 = Trigger (digital)
@item @code{reserved} @tab Ignore on read, write with 0's
@item @code{int_trig_thres_filt} @tab Configures the internal trigger threshold glitch filter length.
@item @code{int_trig_thres} @tab Treated as binary two's complement and compared to raw ADC data.
@end multitable
@regsection @code{trig_dly} - Trigger delay
......@@ -290,6 +326,25 @@ Reserved
@item @code{nb} @tab Number of shots required in multi-shot mode, set to one for single-shot mode.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{shots_cnt} - Remaining shots counter
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{15...0}
@tab R/O @tab
@code{VAL}
@tab @code{X} @tab
Remaining shots counter
@item @code{31...16}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{val} @tab Counts the number of remaining shots to acquire.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{trig_pos} - Trigger address register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
......@@ -303,6 +358,19 @@ Trigger address
@headitem Field @tab Description
@item @code{trig_pos} @tab Trigger address in DDR memory.@*Only used in single-shot mode.
@end multitable
@regsection @code{fs_freq} - Sampling clock frequency
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{31...0}
@tab R/O @tab
@code{FS_FREQ}
@tab @code{X} @tab
Sampling clock frequency
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{fs_freq} @tab ADC sampling clock frequency in Hz
@end multitable
@regsection @code{sr} - Sample rate
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
......@@ -431,6 +499,25 @@ Reserved
@item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{ch1_sat} - Channel 1 saturation register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{14...0}
@tab R/W @tab
@code{VAL}
@tab @code{0} @tab
Saturation value for channel 1
@item @code{31...15}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{val} @tab Saturation applied to all data coming from the offset/gain correction block. The format is 15-bit unsigned.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{ch2_ctl} - Channel 2 control register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
......@@ -507,6 +594,25 @@ Reserved
@item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{ch2_sat} - Channel 2 saturation register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{14...0}
@tab R/W @tab
@code{VAL}
@tab @code{0} @tab
Saturation value for channel 2
@item @code{31...15}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{val} @tab Saturation applied to all data coming from the offset/gain correction block. The format is 15-bit unsigned.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{ch3_ctl} - Channel 3 control register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
......@@ -583,6 +689,25 @@ Reserved
@item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{ch3_sat} - Channel 3 saturation register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{14...0}
@tab R/W @tab
@code{VAL}
@tab @code{0} @tab
Saturation value for channel 3
@item @code{31...15}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{val} @tab Saturation applied to all data coming from the offset/gain correction block. The format is 15-bit unsigned.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{ch4_ctl} - Channel 4 control register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
......@@ -659,3 +784,22 @@ Reserved
@item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{ch4_sat} - Channel 4 saturation register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{14...0}
@tab R/W @tab
@code{VAL}
@tab @code{0} @tab
Saturation value for channel 4
@item @code{31...15}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{val} @tab Saturation applied to all data coming from the offset/gain correction block. The format is 15-bit unsigned.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
......@@ -35,13 +35,13 @@
@setchapternewpage off
@set update-month January 2014
@set update-month March 2014
@finalout
@titlepage
@title FmcAdc100m14b4cha Gateware Guide
@subtitle @value{update-month} - Release 3.0
@subtitle @value{update-month} - Release 4.0
@subtitle For PCIe (SPEC) and VME64x (SVEC) FMC Carriers
@sp 10
@center @image{../../figures/cern_logo,3cm,,,pdf} @hfill @image{../../figures/ohr_logo,3cm,,,pdf}
......@@ -585,6 +585,9 @@ The sampling clock (@code{fs_clk}) and the ADC data de-serialiser clock (@code{s
@c TODO : possibility to control the Si570 via I2C
The ADC core implements a sampling clock frequency meter.
The measured frequency (in Hz) can be read via a register (@pxref{ADC Core Registers}).
@c --------------------------------------------------------------------------
@subsection Time-tagging Core
......@@ -757,7 +760,7 @@ The four channels data and the trigger signal are synchronised to the system clo
The configuration signals coming from registers in the system clock domain are synchronised to the sampling clock within the Wishbone slave (@command{wbgen2} feature).
@float Figure,fig:adc_core_fs_clk
@center @image{../../figures/adc_core_fs_clk, 12cm,,,pdf}
@center @image{../../figures/adc_core_fs_clk, 14cm,,,pdf}
@caption{ADC core diagram (sampling clock domain).}
@end float
......@@ -766,7 +769,7 @@ In the fmc-adc application, the default configuration is kept.
The figure @ref{fig:ltc2174_mode} is an extract from the LTC2174 datasheet illustrating the @i{2-Lane Output Mode, 16-Bit Serialization} waveforms.
@float Figure,fig:ltc2174_mode
@center @image{../../figures/ltc2174_mode, 10cm,,,pdf}
@center @image{../../figures/ltc2174_mode, 12cm,,,pdf}
@caption{LTC2174 data output mode waveforms.}
@end float
......@@ -824,7 +827,6 @@ For all others switch configurations, the behaviour is not defined and therefore
@caption{Analogue input switches configurations.}
@end float
@c ==========================================================================
@section Input Offset
......@@ -863,30 +865,50 @@ v_out = Output voltage (to filter and ADC)
@c ==========================================================================
@section Trigger
The trigger unit is made of a hardware and a software source.
Each hardware and software sources can be enabled independantly.
The two sources are then or'ed together to drive a delay generator.
The trigger unit is made of two hardware and one software sources.
The hardware and software path can be enabled independantly.
The two paths are then or'ed together to drive a delay generator.
The delay generator allows to insert an defined number of sampling clock period before the trigger goes to the acquisition state machine.
The @ref{fig:trig_unit} shows a simplified digram of trigger unit.
@float Figure,fig:trig_unit
@center @image{../../figures/trigger_unit, 10cm,,,pdf}
@center @image{../../figures/trigger_unit, 12cm,,,pdf}
@caption{Trigger unit diagram.}
@end float
The hardware trigger source can be either internal (based on an adc input channel) or external (dedicated trigger input).
For both internal and external hardware triggers, the polarity can be selected between positive and negative slope (resp. rising and falling edge). By default the polatity is set to positive slope.
The external trigger input is synchronised to the sampling clock. The external trigger pulse must be at least one sampling clock cycle wide.
For the internal trigger source, the adc input channel and the threshold should be configured.
For both internal and external hardware triggers, the polarity can be selected between positive and negative slope (resp. rising and falling edge).
By default the polatity is set to positive slope.
The external trigger input is synchronised to the sampling clock.
The external trigger pulse must be at least one sampling clock cycle wide.
To use the internal trigger source, the adc input channel and the threshold should be configured.
By default, the channel 1 is selected and the threshold is set to 0.
Note that the threshold is 16-bit signed (two's complement).
The @ref{fig:trig_hw_int} sketches the internal hardware trigger threshold behaviour.
In addition, a glitch filter can be applied to the threshold detection.
The glitch filter is useful to trigger on noisy signal.
In order to help setting the glitch filter, an internal trigger test mode can be activated.
When the test mode is enabled, the data from channels 2 to 4 are replaced as follow:
@float
@multitable @columnfractions .12 .50
@item Channel 2 @tab Input signal over threshold
@item Channel 3 @tab Input signal over threshold filtered
@item Channel 4 @tab Trigger
@end multitable
@sp 1
@end float
The software trigger source concists in a pulse generated when a write cycle is detected on the @i{Software trigger} register.
The @ref{fig:trig_unit} shows the different trigger configurations.
For futher information on the trigger configuration registers @pxref{ADC Core Registers}.
@float Figure,fig:trig_hw_int
@center @image{../../figures/trig_hw_int, 8cm,,,pdf}
@caption{Internal hardware trigger trheshold.}
@caption{Internal hardware trigger threshold.}
@end float
@c ==========================================================================
......@@ -949,7 +971,7 @@ Two registers per channel are implemented in the FPGA for ADC gain and offset co
When an input range is selected, the corresponding gain/offset correction values must be loaded from the EEPROM to those registers.
@float Figure,fig:off_gain_corr
@center @image{../../figures/offset_gain_corr, 10cm,,,pdf}
@center @image{../../figures/offset_gain_corr, 12cm,,,pdf}
@caption{ADC offset and gain correction block.}
@end float
......@@ -962,8 +984,13 @@ The fixed point format is as follow:
@caption{ADC gain register format.}
@end float
@b{Note:} On FPGA start-up, the gain registers are set to 0x8000 (1.000) and the offset registers to 0x0000.
This means a unit gain and no offset.
After the offset and gain corrections are applied, the signal is saturated to 16-bit signed values (min=-32678, max=32767).
Also an additional block allows the user to set a programmable saturation value.
The saturation register takes a 15-bit unsigned value, or in other words a positive 16-bit signed value.
@b{Note:} On FPGA start-up, the gain, offset and saturation registers are set to 0x0.
Therefore, the driver has to initialise those registers.
@b{Note:} After gain and offset correction, the two LSB of the data words can be different from zero.
......@@ -994,8 +1021,6 @@ gain = DAC gain calibration value from EEPROM (16-bit fixed point)
@node Acquisition
@chapter Acquisition
@c TODO : Add description of trigger time-tag insertion
This chapter describes the two modes of acquisition, single-shot and multi-shot.
It also explains how the software is expected to control the fmc-adc acquisitions.
......@@ -1114,6 +1139,7 @@ The acquisition state machine is also represented.
The multi-shot acquisition process is almost identical to the single-shot one, except that once the acquisition is started it will go around the state machine as many time as the number of configured shots.
It means that if the board is configured for N shots, it will generate N trigger interrupts (if enabled) and then another interrupt at the end of the acquisition.
A counter, accessible via a register, shows the remaining number of shots (@pxref{ADC Core Registers}).
Unlike the single-mode acquisition, in multi-shot, the DDR memory is not used as a circular buffer.
Instead, two dual port RAM (dpram) are implemented inside the FPGA.
......@@ -1124,7 +1150,7 @@ Even shots uses dpram0 and odd shots dpram1.
The trigger time-tag requires two 64-bit word to be stored at the end of the samples.
It means that the total number of samples (pre-trigger + trigger + post-trigger) for a shot cannot exceed 2048-2=2046.
When a shot is finished, the correcponding dpram samples are written to the DDR memory.
When a shot is finished, the corresponding dpram samples are written to the DDR memory.
Only the pre-trigger samples, the post-trigger samples and the trigger time-tag are written.
The first shot is written starting at address @code{0x0}.
Then the second shot is written right after the trigger time-tag of the first shot.
......@@ -1135,16 +1161,15 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory.
@caption{DDR memory usage in multi-shot mode acquisition.}
@end float
@b{Note:} The number of samples per shot stored in memory is equal to: number of pre-trigger samples + number of post-trigger samples + 1 (trigger sample).
@b{Note:} The number of samples per shot stored in memory is equal to: number of pre-trigger samples + number of post-trigger samples + 1 (trigger sample) + 2 (time-tag).
@b{Note:} In multi-shot mode, the start of an acquisition is prohibited if the number of sample per shot is bigger or equal to the dpram size.
@c ##########################################################################
@page
@node Missing Features and Improvements
@chapter Missing Features and Improvements
@c ==========================================================================
@section To be done before next release
@itemize @textdegree
@c DONE Take data for threshold trigger after offset/gain correction.
@c DONE Solve the internal trigger threshold issue (triggering even if signal < threshold!).
......@@ -1159,14 +1184,7 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory.
@c - Put all mezzanine related cores in a wrapper (fmc adc mezzanine).
@c - Add a crossbar inside the fmc adc block -> check impact on sdb.
@c DONE @item Add a software reset feature?
@item Remove huge files from git repo. @b{!!! This will change all commits sha !!!}
@end itemize
@c ==========================================================================
@section For a later release
@itemize @textdegree
@item Add WR core; 1)for time-tags, 2)for sampling clock control@*
- Define behaviour when WR is desconnected.@*
- Assign signals to SPEC front panel LEDs.
......@@ -1179,7 +1197,7 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory.
- Change GN4142-core WB bus(es) to byte address.@*
- Change DDR-core WB bus(es) to byte address?
- Change SVEC DDR access fifo (DDR address register) to byte address.
@item Add error flags (interrupt?):@*
@item Add error flags to status reg (+interrupt?):@*
- Instead of overwriting memory for a given acquisition.@*
- If read during acquisition (or even block read during acq?).
@item Rename decimation (and "sample rate" register) in under-sampling.
......@@ -1190,18 +1208,20 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory.
- Seems to work with proposed master (05.08.2013).@*
- Still need to replace FIFO in adc core.
@item Test sampling clocks from 10MHz to 105MHz.
@item Add sampling clock presence flag. Or better a sampling clock frequency register.
@c DONE @item Add sampling clock presence flag. Or better a sampling clock frequency register.
@item Add over-heat and input over-load interrupts? (from original specification)
@c DONE @item Time-tag for every trigger in multi-shot. -> trigger time-tag array
@item Review reset logic.
@item Generate an end of acquisition interrupt after an acquisition stop command?
@c @item Generate an end of acquisition interrupt after an acquisition stop command? => NOT USEFUL!
@c NO @item Remove meta-info field in time-tags?
@c DONE @item Move sdb device descriptions from top to the wishbone_pkg.vhd (general-cores lib).
@item Include the git tree in a .tar.gz along with the .bin file (in the files section) for each release. -> modify the Release chapter accordingly.
@item Use git submodules for dependencies (allows to work without hdlmake).
@item Add a shot counter register.
@item Add a check of the sample number in multishot and prevent starting acq with more than 2048 samples (-> acq config ok flag).
@item Add hysteresis on internal trigger slope detection (-> non-monotonic signals, noisy).
@c DONE @item Add a shot counter register.
@c DONE @item Add a check of the sample number in multishot and prevent starting acq with more than 2048 samples (-> acq config ok flag).
@c DONE @item Add hysteresis on internal trigger slope detection (-> non-monotonic signals, noisy).
@c DONE @item Add debug mode: ch1=analog input, ch2=int_trig_over_thres, ch3=int_trig, ch4=trig
@c DONE @item Make data saturation programmable.
@end itemize
......
......@@ -3,7 +3,7 @@
---------------------------------------------------------------------------------------
-- File : ../rtl/fmc_adc_100Ms_csr.vhd
-- Author : auto-generated by wbgen2 from fmc_adc_100Ms_csr.wb
-- Created : Wed Mar 19 16:50:21 2014
-- Created : Thu Mar 20 11:08:14 2014
-- Standard : VHDL'87
---------------------------------------------------------------------------------------
-- THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE fmc_adc_100Ms_csr.wb
......
......@@ -3,7 +3,7 @@
* File : fmc_adc_100Ms_csr.h
* Author : auto-generated by wbgen2 from fmc_adc_100Ms_csr.wb
* Created : Wed Mar 19 16:50:21 2014
* Created : Thu Mar 20 11:08:15 2014
* Standard : ANSI C
THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE fmc_adc_100Ms_csr.wb
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment