TS-7250 MANUAL
CONNECTORS AND HEADERS
5.6 A/D Header - Cirrus EP9302
The EP9302 A/D converter can do a maximum of 925 samples per second, and requires a
settling time of 2 milliseconds between channel switches. Note that the Cirrus A/D
converter is not the same as the optional, full-featured MAX197 A/D converter. To
maintain 12-bit accuracy, the analog signal being measured must have a low source
impedance (less than 10 ohms). Otherwise, an operational amplifier may need to be
added to buffer the A/D input. The EP9302 A/D converter should not be driven by a
source impedance greater than 10 ohms to ensure accurate results (the EP9302 A/D
converter has an input impedance that is not completely linear and may be as low as 10K
ohms). For detailed information, please see the Cirrus
EP9301 User's Guide
, page 518.
For high-performance applications, the optional MAX197 A/D converter is preferred.
Table: ADC Switch Values (EP9302)
Input to Measure
ADC Switch Value
ADC0
0x0000_0608
ADC1
0x0000_0680
ADC2
0x0000_0640
ADC3
0x0000_0620
ADC4
0x0000_0610
Table: A/D Header Pin Out (EP9302)
GND
GND
GND
GND
GND
2
4
6
8
10
1
3
5
7
9
ch0
ch1
ch2
ch3
ch4
The following steps outline the software execution to use the Cirrus A/D converter:
1. Unlock the software lock before setting the TSEN bit in the ADCClk register by writing
0xAA to the ADCSWLock register (0x8090_00C0). “OR” in the TSEN bit (bit 31) to the
ADCClkDiv register (0x8093_0090)
2. Unlock the software lock (again) before OR'ing in the ADCEN (ADC clock enable, bit
31) to 0x8093_0080
3. Clear bit 2, the ADCPD (ADC Power Down) bit, at 0x8093_0080. This bit MUST be set
to 0 (see page 91 of the EP9301 User's Guide)
4. After unlocking the software lock, write the channel's magic value (see Cirrus EP9301
User's Guide, table 20-2) to the ADCSwitch register (0x8090_0018) to select that
channel for the next data acquisition
5. Poll the ADCResult register (0x8090_0008) until bit 31 is not set
6. Using a 32 bit read operation, read the result from 0x8090_0008, masking off the upper
16 bits
Interpreting Cirrus A/D Converter
The Cirrus on-chip A/D converter is a successive approximation A/D converter. Each A/D
channel is calibrated on the
TS-7250
and these 16-bit values are stored in non-volatile
EEPROM. These calibration values minimize the offset errors and gain errors in the
EP9302 A/D. It is important for the user program to use these values as per our sample
code, which can be found either on our website or in the CD included in the Developer's
Kit. Two reference points, 0 and 2.5 Volts, with the corresponding reference values stored
in EEPROM. Bytes 0x07EB through 0x07FE of the EEPROM hold a two dimensional
array:
[channel number][0V ref. point, 2.5V ref. Point]
The reference points are stored as a 16 bit value, and should be used to correlate the
© Jan, 2010 www.embeddedARM.com 28