1
0
mirror of git://projects.qi-hardware.com/ben-blinkenlights.git synced 2024-12-25 20:07:42 +02:00

ubb-patgen/timeline.fig: timeline of pattern generation (description in README)

This commit is contained in:
Werner Almesberger 2013-01-18 14:18:44 -03:00
parent 8dda1200c1
commit a31351545c
2 changed files with 303 additions and 0 deletions

View File

@ -172,3 +172,47 @@ The trigger signal can be debounced with the option -d, e.g.,
This accepts the trigger only after it has been zero for at least
100 microseconds. If the trigger is a sequence, debouncing is
applied at each step.
Timeline details
----------------
timing.fig illustrates the various steps of pattern generation.
A PDF of the diagram can be found here:
http://downloads.qi-hardware.com/people/werner/ubb/patgen/timeline.pdf
CLK is the clock output if selected with -C. DATx are the data
lines, with the value of DAT0 shown. TRIG is the trigger input.
Note that in real life, the TRIG/CLK line can only act either as
trigger input or as clock output but not as both at the same time.
The pattern we send is 0110110. We trigger on TRIG being low, with
a debounce time of nominally about one pattern clock interval, and
some post-trigger delay.
After ubb-patgen starts, it first processes the command-line
options and arguments, then initializes the pins. DATx are set to
the value of the first pattern. Next, ubb-patgen sets up the MMC
controller, makes it send a command, receives a pseudo-response,
and begins sending copies of the first pattern on DATx. These
copies are necessary to get past the start bit and to make the MMC
controller drive DATx to known levels. Once this pattern has been
sent, we switch DATx to GPIO.
When this is done, ubb-patgen waits for the trigger. In this
example, we first ignore a glitch and then detect a correct
trigger value. Note that the effective debounce period is usually
longer than specified, since other system activity can delay the
sampling.
Once ubb-patgen has triggered, it starts the DMA controller and
thus begins sending the pattern. The first cycle (marked with a
question mark) is an uncommanded repetition of the first pattern
(apparently there is a buffer stage in the MMC controller)
followed by the entire sequence, first to last pattern.
At the end, several copies of the last pattern may be sent in
order to reach the transfer size of the DMA controller (32 bytes).
ubb-patgen then ensures that all data has left the MMC controller,
switches DATx back to GPIO, and exits.

259
ubb-patgen/timeline.fig Normal file
View File

@ -0,0 +1,259 @@
#FIG 3.2 Produced by xfig version 3.2.5b
Landscape
Center
Metric
A4
100.00
Single
-2
1200 2
6 11880 5265 12465 5535
2 2 0 0 0 7 20 -1 20 0.000 0 0 -1 0 0 5
11880 5265 12465 5265 12465 5535 11880 5535 11880 5265
4 1 0 15 -1 18 12 0.0000 4 150 525 12195 5490 Initial\001
-6
6 1575 990 2160 1260
2 2 0 0 0 7 20 -1 20 0.000 0 0 -1 0 0 5
1575 990 2160 990 2160 1260 1575 1260 1575 990
4 1 0 15 -1 18 12 0.0000 4 150 525 1890 1215 Initial\001
-6
6 1575 1890 2160 2160
2 2 0 0 0 7 20 -1 20 0.000 0 0 -1 0 0 5
1575 1890 2160 1890 2160 2160 1575 2160 1575 1890
4 1 0 15 -1 18 12 0.0000 4 150 525 1890 2115 Initial\001
-6
6 1575 2790 2340 3105
2 2 0 0 0 7 20 -1 20 0.000 0 0 -1 0 0 5
1575 2790 2340 2790 2340 3105 1575 3105 1575 2790
4 1 0 15 -1 18 12 0.0000 4 195 720 1980 3015 Ignored\001
-6
6 11610 2790 12375 3105
2 2 0 0 0 7 20 -1 20 0.000 0 0 -1 0 0 5
11610 2790 12375 2790 12375 3105 11610 3105 11610 2790
4 1 0 15 -1 18 12 0.0000 4 195 720 12015 3015 Ignored\001
-6
6 6525 7065 7290 7380
2 2 0 0 0 7 20 -1 20 0.000 0 0 -1 0 0 5
6525 7065 7290 7065 7290 7380 6525 7380 6525 7065
4 1 0 15 -1 18 12 0.0000 4 195 720 6930 7290 Ignored\001
-6
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 2
6525 2700 7650 2700
2 1 1 2 0 7 40 -1 -1 6.000 0 0 -1 0 0 2
7650 2700 8550 2700
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 8
8550 2700 9225 2700 9225 3150 9360 3150 9360 2700 10350 2700
10350 3150 11025 3150
2 1 0 2 0 7 35 -1 17 0.000 0 0 -1 0 0 4
12825 3150 11025 3150 11025 2700 12825 2700
2 1 0 2 0 7 50 -1 45 0.000 0 0 -1 0 0 4
1125 2250 3375 2250 3150 1800 1125 1800
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 2
3375 2250 7650 2250
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 2
8550 2250 11475 2250
2 1 1 2 0 7 40 -1 -1 6.000 0 0 -1 0 0 2
7650 2250 8550 2250
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 2
12150 2250 12825 2250
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 7
3600 900 4500 900 4500 1350 4725 1350 4725 900 4950 900
4950 1350
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 7
5625 1350 5625 900 5850 900 5850 1350 6075 1350 6075 900
7650 900
2 1 1 2 0 7 40 -1 -1 6.000 0 0 -1 0 0 2
4950 1350 5625 1350
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 2
8550 900 11475 900
2 1 1 2 0 7 40 -1 -1 6.000 0 0 -1 0 0 2
7650 900 8550 900
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 2
12150 900 12825 900
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
6525 3375 6525 3825
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 0 0 2
9225 2610 9225 1800
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 0 0 2
9675 2610 9675 1800
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 1 2
1 1 2.00 60.00 60.00
1 1 2.00 60.00 60.00
9225 1935 9675 1935
2 1 1 2 0 7 40 -1 -1 6.000 0 0 -1 0 0 2
11475 900 12150 900
2 1 1 2 0 7 40 -1 -1 6.000 0 0 -1 0 0 2
11475 2250 12150 2250
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
11025 3375 11025 3825
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
5580 3600 6525 3600
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
7650 3600 6525 3600
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
8370 3600 11025 3600
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 0 0 2
10350 2610 10350 1800
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 0 0 2
11025 2610 11025 1800
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
1575 3375 1575 3825
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
1800 3600 1575 3600
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
3150 3600 3375 3600
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
3375 3375 3375 3825
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
4320 3600 3375 3600
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
12825 3375 12825 3825
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
11295 3600 11025 3600
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
12555 3600 12825 3600
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
1125 6975 12825 6975
2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
1125 7425 12825 7425
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
1125 7650 1125 8100
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 10
1125 6525 3375 6525 3375 6075 4275 6075 4275 6525 4725 6525
4725 6075 5625 6075 5625 6525 7425 6525
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 47
1125 5175 2475 5175 2475 5625 2700 5625 2700 5175 2925 5175
2925 5625 3150 5625 3150 5175 3375 5175 3375 5625 3600 5625
3600 5175 3825 5175 3825 5625 4050 5625 4050 5175 4275 5175
4275 5625 4500 5625 4500 5175 4725 5175 4725 5625 4950 5625
4950 5175 5175 5175 5175 5625 5400 5625 5400 5175 5625 5175
5625 5625 5850 5625 5850 5175 6075 5175 6075 5625 6300 5625
6300 5175 6525 5175 6525 5625 6750 5625 6750 5175 6975 5175
6975 5625 7200 5625 7200 5175 7425 5175 7425 5625
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 7
8325 5625 8325 5175 8550 5175 8550 5625 8775 5625 8775 5175
11250 5175
2 1 0 2 0 7 45 -1 -1 0.000 0 0 -1 0 0 2
8325 6525 12825 6525
2 1 1 2 0 7 40 -1 -1 6.000 0 0 -1 0 0 2
7425 5625 8325 5625
2 1 1 2 0 7 40 -1 -1 6.000 0 0 -1 0 0 2
7425 6525 8325 6525
2 1 0 2 0 7 50 -1 45 0.000 0 0 -1 0 0 4
12825 5175 11250 5175 11475 5625 12825 5625
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
2970 6300 2475 6300
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
6030 6300 6525 6300
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
2475 7650 2475 8100
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
2925 7650 2925 8100
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
6075 7650 6075 8100
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
9000 7650 9000 8100
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
11925 7650 11925 8100
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
11475 7875 11925 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
9225 7875 9000 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
7965 7875 9000 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
7065 7875 6075 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
4950 7875 6075 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
4050 7875 2925 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
2340 7875 2475 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
1260 7875 1125 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
2610 7875 2475 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
2790 7875 2925 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 1 2
1 1 2.00 60.00 60.00
1 1 2.00 60.00 60.00
10350 1935 11025 1935
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 4
1125 2700 6525 2700 6525 3150 1125 3150
2 1 0 2 0 7 50 -1 45 0.000 0 0 -1 0 0 4
1125 1350 3375 1350 3600 900 1125 900
2 2 0 0 0 7 60 -1 17 0.000 0 0 -1 0 0 5
1125 6975 12825 6975 12825 7425 1125 7425 1125 6975
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
9855 7875 10125 7875
2 1 0 2 0 7 50 -1 17 0.000 0 0 -1 0 0 2
10125 7605 10125 8055
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 1 0 2
1 1 2.00 60.00 60.00
10575 7875 10125 7875
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 0 0 2
10350 6075 10350 6435
2 1 0 2 0 7 30 -1 17 0.000 0 0 -1 0 0 2
6300 1800 6300 2160
4 0 0 35 -1 18 18 0.0000 4 225 735 225 7335 TRIG\001
4 0 0 35 -1 18 18 0.0000 4 225 795 225 6435 DATx\001
4 0 0 35 -1 18 18 0.0000 4 225 630 225 5535 CLK\001
4 0 0 35 -1 18 18 0.0000 4 225 735 225 3060 TRIG\001
4 0 0 35 -1 18 18 0.0000 4 225 795 225 2160 DATx\001
4 0 0 35 -1 18 18 0.0000 4 225 630 225 1260 CLK\001
4 1 0 35 -1 18 12 0.0000 4 150 435 1575 4095 Start\001
4 1 0 50 -1 18 12 0.0000 4 150 555 9315 3420 Glitch\001
4 1 0 35 -1 18 12 0.0000 4 195 900 11025 4095 Triggered\001
4 1 0 35 -1 18 12 0.0000 4 195 570 6525 4095 Ready\001
4 1 0 35 -1 18 12 0.0000 4 135 105 3150 6345 0\001
4 1 0 35 -1 18 12 0.0000 4 135 105 3600 6345 1\001
4 1 0 35 -1 18 12 0.0000 4 135 105 4050 6345 1\001
4 1 0 35 -1 18 12 0.0000 4 135 105 4950 6345 1\001
4 1 0 35 -1 18 12 0.0000 4 135 105 5400 6345 1\001
4 1 0 35 -1 18 12 0.0000 4 135 105 4500 6345 0\001
4 1 0 35 -1 18 12 0.0000 4 135 105 5850 6345 0\001
4 1 0 35 -1 18 12 0.0000 4 150 360 11925 8370 Exit\001
4 1 0 35 -1 18 12 0.0000 4 150 120 2700 7965 ?\001
4 1 0 35 -1 18 12 0.0000 4 195 1095 2475 3645 Static setup\001
4 1 0 35 -1 18 12 0.0000 4 195 1035 4950 3645 MMC setup\001
4 1 0 35 -1 18 12 0.0000 4 150 405 8010 3645 Wait\001
4 1 0 35 -1 18 12 0.0000 4 195 1110 11925 3645 Trigger wait\001
4 1 0 35 -1 18 12 0.0000 4 150 660 4500 7920 Pattern\001
4 1 0 35 -1 18 12 0.0000 4 195 780 7515 7920 Padding\001
4 1 0 35 -1 18 12 0.0000 4 150 930 1800 7920 Start DMA\001
4 1 0 50 -1 18 12 0.0000 4 195 2010 10080 1575 Trigger debounce (-d)\001
4 1 0 50 -1 18 10 0.0000 4 120 300 9450 1845 min\001
4 1 0 50 -1 18 10 0.0000 4 120 255 10710 1845 eff.\001
4 1 0 35 -1 18 12 0.0000 4 195 465 9540 7920 Sync\001
4 1 0 35 -1 18 12 0.0000 4 195 765 11025 7920 Cleanup\001
4 0 0 50 -1 18 10 0.0000 4 120 420 3375 1980 GPIO\001
4 2 0 50 -1 18 10 0.0000 4 120 390 10260 6255 MMC\001
4 0 0 50 -1 18 10 0.0000 4 120 420 10440 6255 GPIO\001
4 0 0 50 -1 18 10 0.0000 4 120 390 6390 1980 MMC\001
4 2 0 50 -1 18 10 0.0000 4 120 420 6210 1980 GPIO\001
4 1 0 35 -1 18 12 0.0000 4 180 330 11925 3870 (-w)\001
4 1 0 35 -1 18 12 0.0000 4 180 315 495 1485 (-C)\001
4 1 0 35 -1 18 12 0.0000 4 180 240 495 3285 (-t)\001
4 1 0 35 -1 18 12 0.0000 4 195 3405 5625 1620 MMC command, response, data start\001