This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
resources:fpga:docs:axi_adc_trigger [19 Aug 2019 17:22] – Adding more info and cosmetics Andrei Grozav | resources:fpga:docs:axi_adc_trigger [01 Sep 2020 09:02] – New features, completitions, cosmetics Andrei Grozav | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== AXI_ADC_TRIGGER ===== | + | ====== AXI_ADC_TRIGGER |
The AXI_ADC_TRIGGER IP implements triggering for the ADC path and also controls two I/O triggering pins. | The AXI_ADC_TRIGGER IP implements triggering for the ADC path and also controls two I/O triggering pins. | ||
- | ==== Features ==== | + | ===== Features |
* AXI Lite control/ | * AXI Lite control/ | ||
Line 21: | Line 21: | ||
* Controls two IO trigger pins | * Controls two IO trigger pins | ||
- | ==== Block Diagram ==== | + | ===== Block Diagram |
{{: | {{: | ||
Line 28: | Line 28: | ||
* [[: | * [[: | ||
- | * **IO Selection** - REG_IO_SELECTION(0x000c) - Controles the direction of the external trigger pins, and the source, when the pins configured to output. | ||
* **Channel trigger** | * **Channel trigger** | ||
* Channel A | * Channel A | ||
Line 39: | Line 38: | ||
* Hysteresis - TRIGGER_FUNCTION_A (0x002c) - " | * Hysteresis - TRIGGER_FUNCTION_A (0x002c) - " | ||
- | <note important> | + | * **External trigger** |
+ | * Pin 0 (Ti) \\ Configurations - REG_CONFIG_TRIGGER_I(0x004) allows for: | ||
+ | * falling edge (bit 8) | ||
+ | * rising edge (bit 6) | ||
+ | * any edge (bit 4) | ||
+ | * high level (bit 2) | ||
+ | * low level (bit 0) | ||
+ | * Pin 1 (To) \\ Configurations - REG_CONFIG_TRIGGER_I(0x004) allows for: | ||
+ | * falling edge (bit 9) | ||
+ | * rising edge (bit 7) | ||
+ | * any edge (bit 5) | ||
+ | * high level (bit 3) | ||
+ | * low level (bit 1) | ||
+ | |||
+ | <note important> | ||
* **Channel A MUX** - REG_TRIGGER_MUX_A(0x0020) - Selects between a combination of ADC trigger and the external trigger | * **Channel A MUX** - REG_TRIGGER_MUX_A(0x0020) - Selects between a combination of ADC trigger and the external trigger | ||
* **Channel B MUX** - REG_TRIGGER_MUX_B(0x0030) - Selects between a combination of ADC trigger and the external trigger | * **Channel B MUX** - REG_TRIGGER_MUX_B(0x0030) - Selects between a combination of ADC trigger and the external trigger | ||
+ | |||
* **Output MUX** - REG_TRIGGER_OUT_CONTROL(0x0034) - Selects a combination between the channel A and/or B MUX's and the input of the instrument trigger | * **Output MUX** - REG_TRIGGER_OUT_CONTROL(0x0034) - Selects a combination between the channel A and/or B MUX's and the input of the instrument trigger | ||
- | * **Delay counter** (32 bit) - REG_TRIGGER_DELAY(0x0040) - Control | + | |
+ | | ||
+ | * **External trigger control** | ||
+ | * REG_IO_SELECTION(0x000c) - Controls the direction of the external trigger pins, and the source(for each pin configured as output) | ||
+ | * REG_TRIGGER_OUT_HOLD_PINS(0x004c) - Controls the hold period after a transition to a new logic level. | ||
- | ==== Interface ==== | + | ===== Interface |
^ Interface ^ Pin ^ Type ^ Description ^ | ^ Interface ^ Pin ^ Type ^ Description ^ | ||
Line 72: | Line 90: | ||
| | '' | | | '' | ||
- | ==== Detailed Description ==== | + | ===== Detailed Description |
The AXI_ADC_TRIGGER IP implements triggering for the ADC path. The trigger is generated based on two external trigger pins, a triggering signal from the logic analyzer and the ADC channels. | The AXI_ADC_TRIGGER IP implements triggering for the ADC path. The trigger is generated based on two external trigger pins, a triggering signal from the logic analyzer and the ADC channels. | ||
Line 79: | Line 97: | ||
The analog triggering is based on comparison with a limit. The data format must be 2's complement and the maximum number of bits of the analog channel is 15. | The analog triggering is based on comparison with a limit. The data format must be 2's complement and the maximum number of bits of the analog channel is 15. | ||
- | The trigger can be transmitted independent or embedded in the output word, at bit 15. Before forwarding the data to the DMA, the triggers must be extracted and data must be reconstructed. The UTIL_EXTRACT IP can be used for this purpose. | + | The trigger can be transmitted independent or embedded in the output word, at bit 15. When embedded, the triggers must be extracted and data must be reconstructed, before forwarding the data to the DMA. The UTIL_EXTRACT IP can be used for this purpose. |
Embedding the trigger in the data allows for additional IPs with unknown pipeline length to be introduced in the path. | Embedding the trigger in the data allows for additional IPs with unknown pipeline length to be introduced in the path. | ||
- | If a history for data before the trigger is needed, a variable FIFO IP should be used. The FIFO depth is controlled using the trigger_offset bus of this IP. | + | If a history for data before the trigger is needed, a [[: |
- | ==== Register Map ==== | + | ===== Register Map ===== |
|< 100% 5% 5% 5% 25% 5% 5% 50% >| | |< 100% 5% 5% 5% 25% 5% 5% 50% >| | ||
Line 97: | Line 115: | ||
|::: |::: |[0] |TRIGGER_O[0] |RW |0x00 |Set TRIGGER_O[0] value | | |::: |::: |[0] |TRIGGER_O[0] |RW |0x00 |Set TRIGGER_O[0] value | | ||
^0x0003 ^0x000c ^REG_IO_SELECTION ^^^^Control Trigger Pins Direction ^ | ^0x0003 ^0x000c ^REG_IO_SELECTION ^^^^Control Trigger Pins Direction ^ | ||
- | | | |[7:5] |TRIGGER_O[1] (PIN) |RW |0x00 |Select output trigger pin 1 \\ 0: SOFTWARE TRIGGER - TRRIGER_O[1](0x0004) \\ 1: TRIGGER_I[1] (PIN) \\ 2: TRIGGER_I[0] (PIN) \\ 3: TRIGGER_OUT (axi_adc_trigger)\\ 4: TRIGGER_IN (Logic analyzer) \\ | | + | | | |[7:5] |TRIGGER_O[1] (To PIN) |RW |0x00 |Select output trigger pin 1 \\ 0: SOFTWARE TRIGGER - TRRIGER_O[1](0x0004) \\ 1: TRIGGER_I[1] (PIN) \\ 2: TRIGGER_I[0] (PIN) \\ 3: TRIGGER_OUT (axi_adc_trigger) |
- | |::: |::: |[4:2] |TRIGGER_O[0] (PIN) |RW |0x00 |Select output trigger pin 0 \\ 0: SOFTWARE TRIGGER - TRRIGER_O[0](0x0004) \\ 1: TRIGGER_I[0] (PIN) \\ 2: TRIGGER_I[1] (PIN) \\ 3: TRIGGER_OUT (axi_adc_trigger) | + | |::: |::: |[4:2] |TRIGGER_O[0] (Ti PIN) |RW |0x00 |Select output trigger pin 0 \\ 0: SOFTWARE TRIGGER - TRRIGER_O[0](0x0004) \\ 1: TRIGGER_I[0] (PIN) \\ 2: TRIGGER_I[1] (PIN) \\ 3: TRIGGER_OUT (axi_adc_trigger) |
- | |::: |::: |[1] |IO_SELECTION[1] |RW |0x00 |Drives the TRIGGER_T[1] pin | | + | |::: |::: |[1] |IO_SELECTION[1] |RW |0x00 |Drives the TRIGGER_T[1](To) pin | |
- | |::: |::: |[0] |IO_SELECTION[0] |RW |0x00 |Drives the TRIGGER_T[0] pin | | + | |::: |::: |[0] |IO_SELECTION[0] |RW |0x00 |Drives the TRIGGER_T[0](Ti) pin | |
^0x0004 ^0x0010 ^REG_CONFIG_TRIGGER_I ^^^^Configure Digital Triggering ^ | ^0x0004 ^0x0010 ^REG_CONFIG_TRIGGER_I ^^^^Configure Digital Triggering ^ | ||
| | |[9:8] |FALL_EDGE |RW |0x00 |Enable falling edge triggering for TRIGGER[0] or TRIGGER[1] pin | | | | |[9:8] |FALL_EDGE |RW |0x00 |Enable falling edge triggering for TRIGGER[0] or TRIGGER[1] pin | | ||
Line 133: | Line 151: | ||
| | |[31:0] |TRIGGER_DELAY |RW |0x00 |Delays the start of data capture with TRIGGER_DELAY number of samples after the trigger. | | | | |[31:0] |TRIGGER_DELAY |RW |0x00 |Delays the start of data capture with TRIGGER_DELAY number of samples after the trigger. | | ||
^0x0011 ^0x0044 ^REG_STREAMING ^^^^Controls Streaming Mode ^ | ^0x0011 ^0x0044 ^REG_STREAMING ^^^^Controls Streaming Mode ^ | ||
- | | | |[0] |STREAMING |RW |0x00 |If the streaming bit is set, after the trigger condition is met data will be continuosly | + | | | |[0] |STREAMING |RW |0x00 |If the streaming bit is set, after the trigger condition is met data will be continuously |
- | ^Fri Jun 7 14:21:18 2019 ^^^^^^ | + | ^0x0012 ^0x0048 ^REG_TRIGGER_HOLDOFF ^^^^Controls hold off time ^ |
+ | | | |[31:0] |TRIGGER_HOLDOFF |RW |0x00 |Defines the time interval, after a trigger event, where the next trigger events will be ignored, until the end of the interval. The time interval is set by counter. Down-counting on the ADC clock(100MHz). The value written in the register is loaded in the counter at a trigger event. | | ||
+ | ^0x0013 ^0x004c ^REG_TRIGGER_OUT_HOLD_PINS ^^^^Controls external trigger hold time ^ | ||
+ | | | |[19:0] |TRIGGER_OUT_HOLD_PINS |RW |0x00 |Defines a time period, in which the external trigger pins, configured as outputs, will hold the new logic level after a transition. The down-counter, | ||
+ | ^Tue Sep 1 09:58:53 2020 ^^^^^^ | ||
+ | |||
+ | ===== Aditional notes ===== | ||
- | ==== Aditional notes ==== | ||
<note important> | <note important> | ||
- | ==== References ==== | + | ===== References |
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// |