From a31351545c080a9235e4aa74eb583c7375cd3f2f Mon Sep 17 00:00:00 2001 From: Werner Almesberger Date: Fri, 18 Jan 2013 14:18:44 -0300 Subject: [PATCH] ubb-patgen/timeline.fig: timeline of pattern generation (description in README) --- ubb-patgen/README | 44 +++++++ ubb-patgen/timeline.fig | 259 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 303 insertions(+) create mode 100644 ubb-patgen/timeline.fig diff --git a/ubb-patgen/README b/ubb-patgen/README index 4b4d85a..da02791 100644 --- a/ubb-patgen/README +++ b/ubb-patgen/README @@ -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. diff --git a/ubb-patgen/timeline.fig b/ubb-patgen/timeline.fig new file mode 100644 index 0000000..86f9147 --- /dev/null +++ b/ubb-patgen/timeline.fig @@ -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