Operation, Prescaling – Rainbow Electronics AT90LS4433 User Manual
Page 65
65
AT90S/LS4433
1042G–AVR–09/02
Operation
The ADC can operate in two modes: Single Conversion and Free Run mode. In Single
Conversion mode, each conversion will have to be initiated by the user. In Free Run
mode, the ADC is constantly sampling and updating the ADC Data Register. The ADFR
bit in ADCSR selects between the two available modes.
The ADMUX Register selects which one of the six analog input channels is to be used
as input to the ADC.
The ADC is enabled by writing a logical “1” to the ADC Enable bit, ADEN in ADCSR.
The first conversion that is started after enabling the ADC will be preceded by a dummy
conversion to initialize the ADC. To the user, the only difference will be that this conver-
sion takes 12 clock cycles more than a normal conversion.
A conversion is started by writing a logical “1” to the ADC Start Conversion bit, ADSC.
This bit will stay high as long as the conversion is in progress and be set to zero by hard-
ware when the conversion is completed. If a different data channel is selected while a
conversion is in progress, the ADC will finish the current conversion before performing
the channel change.
As the ADC generates a 10-bit result, two Data Registers, ADCH and ADCL, must be
read to get the result when the conversion is complete. Special data protection logic is
used to ensure that the contents of the Data Registers belong to the same result when
they are read. This mechanism works as follows: When reading data, ADCL must be
read first. Once ADCL is read, ADC access to Data Registers is blocked. This means
that if ADCL has been read and a conversion completes before ADCH is read, none of
the registers are updated and the result from the conversion is lost. When ADCH is
read, ADC access to the ADCH and ADCL Registers is re-enabled.
The ADC has its own interrupt, ADIF, which can be triggered when a conversion com-
pletes. When ADC access to the Data Registers is prohibited between reading of ADCH
and ADCL, the interrupt will trigger even if the result gets lost.
Prescaling
Figure 45. ADC Prescaler
The ADC contains a prescaler, which divides the system clock to an acceptable ADC
clock frequency. The ADC accepts input clock frequencies in the range 50 - 200 kHz.
Applying a higher input frequency will result in a poorer accuracy (see “ADC Character-
istics” on page 71).
The ADPS0 - ADPS2 bits in ADCSR are used to generate a proper ADC clock input fre-
quency from any XTAL frequency above 100 kHz. The prescaler starts counting from
the moment the ADC is switched on by setting the ADEN bit in ADCSR. The prescaler
7-BIT ADC PRESCALER
ADC CLOCK SOURCE
CK
ADPS0
ADPS1
ADPS2
CK/128
CK/2
CK/4
CK/8
CK/16
CK/32
CK/64
Reset
ADEN