Xtreme I/O Express ADC-DAC
Users Guide
Document: CTIM-00435
Revision: 0.08
Page 14 of 47
Connect Tech Inc. 800-426-8979 | 519-836-1291
Date: 2016-11-18
Operation
The ADCs are controlled and have their data stored in four controller blocks. The mode of capture
can be set to either
Continuous Sampling Mode
or
Waveform Capture Mode
. The input range for
each of the 4 ADCs can be changed via the INPUT_RANGE_SELECT register.
Each ADC block can be set to capture up to 8 channels in a looping sequential order. For example, if
all eight channels were enabled in ADC0 (writing 0xFF to CONTROL_CONFIG) then the following
shows the process it would go through in obtaining the requested samples:
By default sample collection occurs at the maximum sampling rate of the ADC IC which is 500ksps,
so if, in continuing the previous example, all 8 channels were to be enabled then the actual sampling
rate per ADC Channel would be 500ksps/8=62.5ksps.
Continuous Sampling Mode
Each ADC channel’s code is captured and stored into their CHX-LAST_SAMPLE register. This
CHX-LAST_SAMPLE register is then constantly updated/overwritten with a latest/newest code
received.
Waveform Capture Mode (FIFO Mode)
This mode is supplementary to the Continuous Sampling Mode in that the ADC blocks will continue
to update their CHX-LAST_SAMPLE registers while also storing data in their associated sample
FIFOs.
An ADC block operating in this mode will signal that its FIFO memory is almost full via a PCIe
interrupt; the sample count at which this notification is made can be adjusted to any value within the
sample depth range supported by the sample FIFOs (2046). Each sample is stored in the FIFOs is
saved along with two additional bookkeeping data fields: the channel number and the sample number.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
0
11-bit "Timestamp"/Sample Num
R
Channel ID
16-bit CODE from ADC
For example to set up an ADC block to capture data in its sample FIFO and provide a notification
once it has stored 1023 of these values, one would write 0x3FF to the first ten bits of its
MEM_WRITE_CONTROL register and then set the MEM Store flag in its CONTROL_CONFIG
register.
Variable Sampling Rate
As already touched upon the default sampling rate of the ADC blocks is 500ksps or the maximum rate
supported by the ADC peripherals. If slower sampling rates are required, then each block can be
individually set to subdivide this maximum rate by way of a counter roll over value stored in the
CLK_DIV_CNTR register.
C
H
C
H
C
H
C
H
C
H
C
H
C
H