Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:netzer:impulse [2014/08/16 18:14] svesch [Generating impulses in IO0 triggered mode] |
en:netzer:impulse [2014/09/27 21:50] svesch [Measuring impulses in „Triggered by IO0“ mode (IO0 synchronized)] |
||
---|---|---|---|
Line 3: | Line 3: | ||
Netzer is able to generate and capture signals at IO3 and SPI_INT. | Netzer is able to generate and capture signals at IO3 and SPI_INT. | ||
- | {{ :en:netzer:impulse_overview.gif?direct&600 |}} | + | {{ :en:netzer:impulse_overview.gif?direct&700 |}} |
The image shows the structure of the impulse generator/capture. | The image shows the structure of the impulse generator/capture. | ||
Line 21: | Line 21: | ||
- | ===== Unsynchronized mode ===== | + | ===== Examples ===== |
- | The impulse timer is free running in this mode. | + | Some of the examples below show both signals IO3 and SPI_INT. |
- | Changes on IO0 will not reset the impulse timer. | + | |
- | + | ||
- | The examples below show both signals IO3 and SPI_INT. | + | |
Of course impulse module can be configured to use only one of them. | Of course impulse module can be configured to use only one of them. | ||
- | The examples only show positive logic. | + | The examples below only show positive logic. |
Simply invert the signals to get negative logic examples. | Simply invert the signals to get negative logic examples. | ||
+ | In the IO0 examples the IO0 trigger is configured for rising edge. | ||
+ | Simply invert the IO0 signal to get falling edge examples. | ||
- | ==== Generating impulses in continuous mode ==== | + | |
+ | ==== Generating impulses in continuous mode (Unsynchronized) ==== | ||
+ | |||
+ | The impulse timer is free running in this mode. | ||
+ | Changes on IO0 will not reset the impulse timer. | ||
{{ :en:netzer:impulse_compare_cont_unsync.gif?direct |}} | {{ :en:netzer:impulse_compare_cont_unsync.gif?direct |}} | ||
- | ==== Generating impulses in single mode ==== | + | ==== Generating impulses in single mode (Unsynchronized) ==== |
+ | |||
+ | The impulse timer is free running in this mode. | ||
+ | Changes on IO0 will not reset the impulse timer. | ||
{{ :en:netzer:impulse_compare_single_unsync.gif?direct |}} | {{ :en:netzer:impulse_compare_single_unsync.gif?direct |}} | ||
- | ==== Generating impulses in "Triggered by IO0" mode ==== | + | ==== Generating impulses in "Triggered by IO0" mode (Unsynchronized) ==== |
This mode shall not be used. | This mode shall not be used. | ||
+ | ==== Generating impulses in continuous mode (IO0 synchronized) ==== | ||
- | ===== IO0 synchronized mode ===== | + | This mode shall not be used. |
- | The impulse timer is reset (set to 0) by IO0 trigger. | ||
- | The examples below show the IO0 signal and both signals IO3 and SPI_INT. | + | ==== Generating impulses in single mode (IO0 synchronized) ==== |
- | The impulse module can be configured to use only one of them. | + | |
- | IO0 is configured for rising edges in examples. | + | {{ :en:netzer:impulse_compare_single_sync.gif?direct |}} |
- | Simply invert the IO0 signal to get falling edge examples. | + | |
- | The examples only show positive logic. | ||
- | Simply invert the signals to get negative logic examples. | ||
+ | ==== Generating impulses in "Triggered by IO0" mode (IO0 synchronized) ==== | ||
- | ==== Generating impulses in continuous mode ==== | + | {{ :en:netzer:impulse_compare_io0_sync.gif?direct |}} |
+ | |||
+ | |||
+ | ==== Measuring impulses in continuous mode (Unsynchronized) ==== | ||
+ | |||
+ | {{ :en:netzer:impulse_capture_cont_unsync.gif?direct |}} | ||
+ | |||
+ | |||
+ | ==== Measuring impulses in single mode (Unsynchronized) ==== | ||
+ | |||
+ | {{ :en:netzer:impulse_capture_single_unsync.gif?direct |}} | ||
+ | |||
+ | |||
+ | ==== Measuring impulses in "Triggered by IO0" mode (Unsynchronized) ==== | ||
This mode shall not be used. | This mode shall not be used. | ||
- | ==== Generating impulses in single mode ==== | + | ==== Measuring impulses in continuous mode (IO0 synchronized) ==== |
- | {{ :en:netzer:impulse_compare_single_sync.gif?direct |}} | + | This mode shall not be used. |
- | ==== Generating impulses in "Triggered by IO0" mode ==== | + | ==== Measuring impulses in single mode (IO0 synchronized) ==== |
- | {{ :en:netzer:impulse_compare_io0_sync.gif?direct |}} | + | {{ :en:netzer:impulse_capture_single_sync.gif?direct |}} |
+ | |||
+ | |||
+ | The second example shows the special case of an ultrasonic sensor like HC-SR04. | ||
+ | This sensor needs a 10 µs impulse at the TRIG input which shall be connected to IO3. | ||
+ | The pulse length of sensor singnal ECHO decodes the distance to the detected object. | ||
+ | The signal must be connected to IO0 and SPI_INT. | ||
+ | IO0 must be configured for rising trigger edge, SPI_INT for falling capture edge. | ||
+ | |||
+ | {{ :en:netzer:impulse_capture_io0_sync2.gif?direct |}} | ||
+ | |||
+ | ==== Measuring impulses in „Triggered by IO0“ mode (IO0 synchronized) ==== | ||
+ | In this mode the periode of periodic signals or pulse length can be measured. | ||
+ | Connect the signal to measure to IO0 and IO3 or SPI_INT or both. | ||
+ | For period length the IO0 trigger edge and the capture edge must be equal (like IO3 in image below). | ||
+ | For positive pulses the IO0 trigger edge must be rising, the capture edge falling edge (like SPI_INT in image below). | ||
+ | For negative pulses the IO0 trigger edge must be falling, the capture edge rising edge. | ||
+ | {{ :en:netzer:impulse_capture_io0_sync.gif?direct |}} | ||