Transient Recorder Framework
|
This page describes the public PVs specific to the General Standards digitzer driver for models 16AI64SSA and 16AI64SSC.
The public framework PVs are automatically supported unless stated otherwise on this page. However this page does includes notes about certain framework PVs regarding driver-specific semantics.
These PVs contain static information about the device. All of this information is obtained from the vendor’s driver.
PV name, record type | Description |
---|---|
GET_FIRMWARE_REVISION (longin) | The firmware revision as an integer. |
GET_MAX_INPUT_CHANNELS (longin) | The number of input channels supported by the device. |
GET_MASTER_CLOCK_FREQUENCY (longin) | The master clock frequency (Hz). |
GET_MAX_SAMPLE_RATE (longin) | The maximum sample rate supported by the device (Hz). |
GET_BUFFER_SIZE (longin) | The FIFO buffer size (number of samples) as advertised by the driver. Note, the usable buffer size appears to be one sample less. |
GET_DEVICE_TYPE (mbbi) | The type of device. Values: |
GET_MIN_DIVISOR (longin) | The minimum permitted divisor value for frequency dividers. |
GET_MAX_DIVISOR (longin) | The maximum permitted divisor value for frequency dividers. |
These PVs represent the dynamic states related to burst operation. They are updated at the scan rate defined by the REFRESH_STATES_SCAN
template parameter, and in the test IOC by an environment variable of the same name in st.cmd
.
PV name, record type | Description |
---|---|
GET_BUFFER_OVERFLOW_STATUS (bi) | The value of the buffer-overflow flag, i.e. whether there has been a buffer overflow. Values: |
GET_BURST_STATUS (bi) | The current burst state, i.e. whether a burst is in progress. Values: |
GET_BUFFER_SAMPLES (longin) | The number of samples in the FIFO sample buffer. |
These PVs are used for configuring the AUX-IO lines of the board. Settings written into the set
records are applied to the device immediately.
The get
records contain the current value, and must not be written. Each set
record has a forward link to update the corresponding get
record.
PV name, record type | Description |
---|---|
SET_AUX_LINE_<N>_MODE (mbbo)<N>=0,1,2,3 | Write to set the mode of an AUX-IO line (Inactive , Active Input , Active Output ). |
GET_AUX_LINE_<N>_MODE (mbbi) | The current mode of an AUX-IO line (values as above). |
SET_AUX_INVERT_IN (bo) | Write to set whether AUX-IO inputs are inverted (Disabled , Enabled ). |
GET_AUX_INVERT_IN (bi) | The current AUX-IO inputs inversion mode (values as above). |
SET_AUX_INVERT_OUT (bo) | Write to set whether AUX-IO outputs are inverted (Disabled , Enabled ). |
GET_AUX_INVERT_OUT (bi) | The current AUX-IO outputs inversion mode (values as above). |
SET_AUX_NOISE_SUPPRESSION (bo) | Write to set whether noise suppression for AUX-IO inputs is enabled (Disabled , Enabled ). |
GET_AUX_NOISE_SUPPRESSION (bi) | The current value of the AUX-IO noise suppression setting (values as above). |
These PVs should be set to the desired settings before an arm request is issued. Their values are captured at the start of arming.
The hardware does not support pre-samples, therefore the PV numberPPS
(provided by the framework) must be left at the default value zero.
PV name, record type | Description |
---|---|
DESIRED_INPUT_MODE (mbbo) | The input mode (“Single-ended”, “Pseudo-Differential”, “Full-Differential”, “Zero Test Voltage”, “Reference Voltage”). |
DESIRED_CHANNEL_ACTIVE_RANGE (mbbo) | The channel range (“Single”, “Channels 0-1”, “Channels 0-3”, “Channels 0-7”, “Channels 0-15”, “Channels 0-31”, “Channels 0-63”, “Channel Range”). In case of “Single” and “Channel Range”, additional PVs define which channel or channel range is used. |
DESIRED_CHANNEL_SINGLE (longout) | The channel index to use for single channel mode (otherwise irrelevant). In pseudo-differential mode, this must not be zero. In full-differential mode, this must be even. |
DESIRED_CHANNEL_RANGE_FIRST (longout) | The first channel for channel range mode (otherwise irrelevant). In pseudo-differential mode, this must not be zero. In full-differential mode, this must be even. |
DESIRED_CHANNEL_RANGE_LAST (longout) | The last channel for channel range mode (otherwise irrelevant). This must be greater than the first channel. In full-differential mode, this must be odd. |
DESIRED_VOLTAGE_RANGE (mbbo) | The input voltage range (“+-2.5 V”, “0-5 V”, “+-5 V”, “0-10 V”, “+-10 V”). |
clock (mbbo) | The desired sample clock source or rate. Supported choices are:
This PV and |
CUSTOM_SAMPLE_RATE (ao) | The desired sample rate in Hz, when custom frequency is selected. When using an external sample clock (clock is “External Trigger”), this should be set as close as possible to the expected frequency of the external clock. It will be used for autocalibration as part of an arming procedure, for the |
trigger (mbbo) | Burst trigger source. Supported choices are:
|
BURST_START_TIMESTAMP_ENABLED (bo) | Whether to enable burst-start timestamps, using the burst-started interrupt (“Off”, “On”). |
IO_MODE_DMDMA_ENABLED (bo) | Whether to enable Demand-Mode DMA (“Off”, “On”). |
With regard to the possible values and meaning of these PVs, the text in the section of the same name in framework PVs applies.
PV name, record type | Description |
---|---|
GET_ARMED_INPUT_MODE (mbbi) | Current armed input mode. |
GET_ARMED_CHANNEL_ACTIVE_RANGE (mbbi) | Current armed channel range. |
GET_ARMED_CHANNEL_SINGLE (ai) | Current armed channel index for single channel mode, NAN if single channel mode is not used. |
GET_ARMED_CHANNEL_RANGE_FIRST (ai) | Current armed first channel for channel range mode, NAN if channel range mode is not used. |
GET_ARMED_CHANNEL_RANGE_LAST (ai) | Current armed last channel for channel range mode, NAN if channel range mode is not used. |
GET_ARMED_VOLTAGE_RANGE (mbbi) | Current armed voltage range. |
get_trigger (mbbi) | Current armed burst trigger source. |
GET_BURST_START_TIMESTAMP_ENABLED (mbbi) | Current armed selection for use of burst-started timestamps. |
GET_IO_MODE_DMDMA_ENABLED (mbbi) | Current armed selection for use of DM-DMA. |
Note that to actually start a request, the value 1 (or the associated string value) must be written to the PV for the request. Writing any other value will have no effect. This was done to accommodate EDM, where buttons will write zero when released.
PV name, record type | Description |
---|---|
softTrigger (bo) | Write 1 or “softTrigger” to send a software trigger to the device. This only has an effect when the device is armed with software trigger. |
START_INITIALIZE (bo) | Write 1 or “Start” to perform the Initialize operation on the device. The operation is asynchronous and the result will be provided in |
INITIALIZE_STATUS (mbbi) | The state or result of the Initialize operation (empty, The result clears to the empty value automatically a few seconds after completion. This PV must not be written. |
The driver generates burst IDs as suggested in the description of the BURST_ID
PV provided by the framework.
The driver also provides the diagnostic times:
GET_BURST_START_TO_BURST_END_TIME
(except if armed with burst-timestamps disabled),GET_BURST_END_TO_READ_END_TIME
(except if armed with DM-DMA enabled),GET_READ_END_TO_DATA_PROCESSED_TIME
.PV name, record type | Description |
---|---|
VOLTAGE_DATA_OFFSET (ai) | The additional voltage offset applied to the sample data, after initial conversion to voltage according to the input voltage range and input mode. Changes to this PV will be reflected in newly processed bursts. The default is 0. |
This section lists PVs which are desired to facilitate testing.
There are several PVs which read back configuration from the hardware. These are updated automatically whenever the arm state changes (arm
PV) or the Initialize operation completes, and can also be updated manually by writing to the PV REFRESH_READBACKS
.
PV name, record type | Description |
---|---|
REFRESH_READBACKS (bo) | Write one or Refresh to refresh the readbacks listed in this section. |
INPUT_MODE_RBV (mbbi) | Readback of the input mode (see DESIRED_INPUT_MODE ). |
VOLTAGE_RANGE_RBV (mbbi) | Readback of the voltage range (see DESIRED_VOLTAGE_RANGE ). |
CHANNEL_ACTIVE_RANGE_RBV (mbbi) | Readback of the channel-active-range (see DESIRED_CHANNEL_ACTIVE_RANGE ). |
CHANNEL_RANGE_FIRST_RBV (longin) | Readback of the first channel number (see DESIRED_CHANNEL_RANGE_FIRST ). |
CHANNEL_RANGE_LAST_RBV (longin) | Readback of the last channel number (see DESIRED_CHANNEL_RANGE_LAST ). |
CHANNEL_SINGLE_RBV (longin) | Readback of the single channel number (see DESIRED_CHANNEL_SINGLE ). |
CLOCK_SOURCE_RBV (mbbi) | Readback of the sample clock source setting (Rate-A , Rate-B , External Sync , Software Trigger ). |
CALC_DIVISOR_A (longin) | Calculated divisor of rate generator A corresponding to the desired clock configuration. Zero means this rate generator would not be used. |
CALC_DIVISOR_B (longin) | Calculated divisor of rate generator B corresponding to the desired clock configuration. Zero means this rate generator would not be used. |