Diamond-MM-48-AT User Manual V1.01
Page 28
8. PERFORMING AN A/D CONVERSION
This chapter describes the steps involved in performing an A/D conversion on a selected
input channel using direct programming (not with the driver software). This describes the
basic operation of a single A/D conversion without interrupts. For a more complete
description including interrupts and all register control bits, see chapter 9.
There are five steps involved in performing an A/D conversion:
1. Select the input channel
2. Wait for analog input circuit to settle
3. Trigger an A/D conversion
4. Wait for the conversion to finish
5. Read the data from the board
6. Convert the numerical data to a meaningful value
8.1 Select the input channel
To select the input channel to read, write a low-channel/high-channel pair to the channel
register at base + 2. (See Chapter 6). The low 4 bits select the low channel, and the high 4
bits select the high channel. When you write any value to this register, the current A/D
channel is set to the low channel.
For example:
To set the board to channel 4 only, write 0x44 to Base + 2.
To set the board to read channels 0 through 15, write 0xF0 to Base + 2.
⇒
Note:
When you perform an A/D conversion, the current channel is automatically
incremented to the next channel in the selected range. Therefore, to perform A/D
conversions on a group of consecutively-numbered channels, you do not need to write the
input channel prior to each conversion. For example, to read from channels 0 - 2, write Hex
20 to base + 2. The first conversion is on channel 0, the second will be on channel 1, and the
third will be on channel 2. Then the channel counter wraps around to the beginning again, so
the fourth conversion will be on channel 0 again, and so on.
If you are sampling the same channel repeatedly, then you set both high and low to the same
value as in the first example above. Then on subsequent conversions you do not need to set
the channel again.
8.2 Wait for analog input circuit to settle
After writing to the channel register (Base + 2), you must allow time for the analog input
circuit to settle before starting an A/D conversion. The board has a built-in 10
µ
s timer to
assist with the wait period. Monitor the ADBUSY bit at Base + 9 bit 7. When it is 1 the circuit
is actively settling on the input signal, or else the board is currently performing and A/D
conversion or scan. When it is 0 the board is ready to perform A/D conversions.