Table 18-2. Correlation Between Input Voltage and Output Codes
VADCn
Read code
0x1FF
0x1FF
0x1FE
...
Corresponding decimal value
VADCm + VREF /GAIN
VADCm + 0.999 VREF /GAIN
VADCm + 0.998 VREF /GAIN
...
511
511
510
...
VADCm + 0.001 VREF /GAIN
VADCm
0x001
0x000
0x3FF
...
1
0
VADCm - 0.001 VREF /GAIN
...
–1
...
VADCm - 0.999 VREF /GAIN
VADCm - VREF /GAIN
0x201
0x200
–511
–512
Example 1:
ADMUX = 0xED (ADC3 – ADC2, 10x gain, 2.56V reference, left adjusted result)
●
●
●
Voltage on ADC3 is 300mV, voltage on ADC2 is 500mV.
ADCR = 512 10 (300 – 500) / 2560 = –400 = 0x270
ADCL will thus read 0x00, and ADCH will read 0x9C.
Writing zero to ADLAR right adjusts the result: ADCL = 0x70, ADCH = 0x02.
Example 2:
●
●
●
●
ADMUX = 0xFB (ADC3 – ADC2, 1x gain, 2.56V reference, left adjusted result)
Voltage on ADC3 is 300mV, voltage on ADC2 is 500mV.
ADCR = 512 1 (300 – 500) / 2560 = –41 = 0x029.
ADCL will thus read 0x40, and ADCH will read 0x0A.
Writing zero to ADLAR right adjusts the result: ADCL = 0x00, ADCH = 0x29.
18.8 Temperature Measurement
The temperature measurement is based on an on-chip temperature sensor that is coupled to a single ended ADC input.
MUX[4..0] bits in ADMUX register enables the temperature sensor. The internal 2.56V voltage reference must also be
selected for the ADC voltage reference source in the temperature sensor measurement. When the temperature sensor is
enabled, the ADC converter can be used in single conversion mode to measure the voltage over the temperature sensor.
As shown Figure 18-14 on page 209, the temperature sensor is followed by a driver. This driver is enabled when ADMUX
value selects the temperature sensor as ADC input Section 18-5 “ADC Input Channel Selection” on page 211 The
propagation delay of this driver is approximately 2µS. Therefore two successive conversions are required. The correct
temperature measurement will be the second one.
One can also reduce this timing to one conversion by setting the ADMUX during the previous conversion. Indeed the
ADMUX can be programmed to select the temperature sensor just after the beginning of the previous conversion start event
and then the driver will be enabled 2µS before sampling and hold phase of temperature sensor measurement. See Section
18.5 “Changing Channel or Reference Selection” on page 202.
208
ATmega16/32/64/M1/C1 [DATASHEET]
7647O–AVR–01/15