9. A/D SCAN, FIFO, AND INTERRUPT OPERATION
This chapter describes in detail the interrupt performance of the A/D circuit under all conditions.
The control bits FIFOEN (FIFO enable), FIFOTH (FIFO threshold), SCANEN (scan enable), SCNINT (scan interval), and AINTE (A/D interrupt enable) determine the behavior of the board during A/D conversions with interrupts. Control bits CLKEN and CLKSEL determine the source of the A/D trigger, either software,
In all cases, at the end of an AD conversion A/D data is latched into the FIFO in an interleaved fashion, first LSB, then MSB. A/D Data is read out of the FIFO with 2 read operations, first Base + 0 (LSB) and then Base + 1 (MSB).
When SCANEN = 1, each time an A/D trigger occurs, the board will perform an A/D conversion on all channels in the channel range. The time between A/D conversions is determined by the setting of the SCNINT bit. When SCANEN = 0, each time an A/D trigger occurs, the board will perform a single A/D conversion and then advance to the next channel and wait for the next trigger.
During interrupt operation, if FIFOEN = 1, then the FIFO will fill up with data until it reaches or exceeds
The basic sequence is as follows:
1.A/D trigger command occurs
2.A/D conversion or A/D scan occurs
3.A/D data is stored in the FIFO
4.Interrupt request occurs
5.Interrupt routine extracts data from the FIFO and resets the interrup request
A/D Trigger
The A/D trigger may come from one of three sources as determined by the control bits CLKEN and CLKSEL:
CLKEN | CLKSEL | A/D trigger source |
0 | 0 | Software command: write a 1 to ADSTART bit in register 8 |
0 | 1 | Same as above |
1 | 0 | External signal: rising edge on EXTCLK pin on I/O header J3 |
1 | 1 | Internal; counter/timer 0 controls the A/D conversion timing |
A/D Conversion or Scan
Once the A/D trigger occurs, either a single A/D conversion will occur on the current channel, or an A/D scan will occur on a range of channels selected by the setting of register 2. The selection is made with the control bit SCANEN:
SCANEN Function
0Single conversion occurs on the current channel; The internal A/D channel counter increments after each conversion, so each successive trigger samples the next channel in the list. At the end of the list, the channel register resets to the starting channel and the sequence repeats.
1Scan occurs on all channels in the range programmed in the channel register (base + 2). The delay between the start of each conversion is determined by the setting of SCNINT in base + 9: SCNINT = 0 sets a delay of 5µs, and SCNINT = 1 sets a delay of 9.3µs.
Page 31 |