
S3C880A/F880A
A/D CONVERTER
14-1
14
ANALOG-TO-DIGITAL CONVERTER
OVERVIEW
The 8-bit A/D converter (ADC) module uses successive approximation logic to convert analog levels entering at
one of the four input channels to equivalent 8-bit digital values. The analog input level must lie between the V
DD
and V
SS values. The A/D converter has the following components:
— Analog comparator with successive approximation logic
— D/A converter logic (resistor string type)
— ADC control register (ADCON)
— Four multiplexed analog data input pins (ADC0–ADC3)
— 8-bit A/D conversion data output register (ADDATA)
To initiate an analog-to-digital conversion procedure, you write the channel selection data in the A/D converter
control register ADCON to select one of the four analog input pins (ADCn, n = 0–3) and set the conversion start
or enable bit, ADCON.0. The read-write ADCON register is located at address FAH.
During a normal conversion, A/D C logic initially sets the successive approximation register to 80H (the
approximate half-way point of an 8-bit register). This register is then updated automatically during each
conversion step. The successive approximation block performs 8-bit conversions for one input channel at a time.
You can dynamically select different channels by manipulating the channel selection bit value (ADCON.5–4) in
the ADCON register. To start the A/D conversion, you should set a the enable bit, ADCON.0. When a conversion
is completed, ADCON.3, the end-of-conversion (EOC) bit is automatically set to 1 and the result is dumped into
the ADDATA register where it can be read. The A/D converter ten enters an idle state. Remember to read the
contents of ADDATA before another conversion starts. Otherwise, the previous result will be overwritten by the
next conversion result.
NOTE
Because the ADC does not use sample-and-hold circuitry, it is important that any fluctuations in the
analog level at the ADC0–ADC3 input pins during a conversion procedure be kept to an absolute
minimum. Any change in the input level, perhaps due to circuit noise, will invalidate the result.