...
Updated table extracted from the DaqMux.yaml (incomplete)
Register name | Address | Access | Bits | PV Name |
---|
Sub-name |
---|
Description | ||
---|---|---|
Control | 0x0 | RW |
0 | Software Trigger |
Enable | Triggers DAQ on all enabled channels |
1 |
Cascade Sw Trigger mask | Mask for enabling/disabling cascaded trigger
| |
2 |
Auto Rearm |
Hw Trigger | Mask for enabling/disabling hardware trigger. If disabled it has to be rearmed by ArmHwTrigger.
| |||||
3 | bit3: Arm Hardware Trigger (Arms the trigger on rising edge) | |||||
4 | bit4: Clear status | |||||
5 | bit5: DAQ Mode '0' - Triggered - Normal DAQ mode - Has to be triggered to start (Other reqs. to start: Enabled, dataValid, tReady, pause). - Stream stops if Error occurs. '1' - Continuous - The data is framed and continuously streamed out after enabled. - Has to be triggered to start (Other reqs. to start: Enabled, dataValid, tReady, pause). - Disable the stream to stop. - Freeze buffers inserts flag into the tUser bit at tLast - Stream stops if Error occurs. | |||||
6 | bit6: Add 128-bit header (otherwise data will be inserted) '0' - Disabled '1' - Enabled | |||||
7 | bit7: Software freeze buffer (Freezes all enabled circular buffers) | |||||
8 | bit8: Hardware freeze buffer mask | |||||
Status | 0x1 | RO | bit0: Software Trigger Status (Registered on first trigger until cleared by Control(4)) bit1: Cascade Trigger Status (Registered on first trigger until cleared by Control(4)) bit2: Hardware Trigger Status (Registered on first trigger until cleared by Control(4)) bit3: Hardware Trigger Armed Status (Registered on rising edge Control(3) and cleared when Hw trigger occurs) bit4: Combined Trigger Status (Registered when trigger condition is met until cleared by Control(4)) bit5: Freeze buffer occurred (Registered on first freeze until cleared by Control(4)) | |||
Decimation | 0x2 | RW | bit 15-0 Sample rate divider (Decimator): Only powers of two allowed if Averaging is enabled (DataFormat(7) = '1'): 1,2,4,8,16,etc (max 2^15) Comment: If only powers of two allowed: why not encode this way? 0..16 (bit 4..0) A: We will also have an option to disable averaging (Steve needs data without averaging). If the Averaging will be disabled also other decimation factors will be allowed DataFormat(7) Comment: Do we need to set decimation per channel? The samples will be averaged (running average filter with powers of 2 window size). | |||
DataSize | 0x3 | RW | Data buffer size. - Number of 32-bit words (if enabled header will be included in the first 14 words of data). - Minimum size is 14 (the size of the header). Comment: Not sure this is more confusing than beneficial. IMO we should just use one of these. A: Agree we will use number of 32-bit words as in old version. | |||
TimeStamp[31:0] | 0x4 | RO | Timestamp [31:0] - secPastEpoch | |||
TimeStamp[63:32] | 0x5 | RO | Timestamp [63:32] - nsec | |||
Multiplexer | 0x10-0x1F | RW | 0x1x: Stream x: Channel select Multiplexer 0 - Disabled, 1 - Test, 2 - Ch0, 3 - Ch1, 4 - Ch2 etc.(up to Ch29) Comment: Fw implementation wise I still think this format is optimal? Will use enums in YAML to make it more user friendly Test mode will output counter data | |||
DaqStatus | 0x20-0x2F | RO | 0x2x: Stream x DaqStatus: bit 0: Raw diagnostic stream control Pause bit 1: Raw diagnostic stream control Ready bit 2: Raw diagnostic stream control Overflow bit 3: Error during last Acquisition (Raw diagnostic stream control Ready or incoming data valid dropped) bit 4: Incoming data lane valid bit 5: DAQ Enabled bit 31-6: Number of packets (4k byte frames) sent | |||
DataFormat | 0x30-0x3F | RW | 0x3x: Stream x DataFormat: bit 4-0: DataWidth (Zero inclusive). Selects the sign extension bit. Note: The sign extension is active if "'1'- Signed" is selected. The DataWidth should point to the bit number for example: 16-bit data -> DataWidth = 0xF, 32-bit data -> DataWidth = 0x1F bit 5: '0' - 32-bit, '1'- 16-bit bit 6: '0' - Unsigned, '1'- Signed bit 7: Decimation Averaging '0' - Disabled, '1'- Enabled | |||
TBD | ||||||
TBD |