beautypg.com

8 temperature measurement – Rainbow Electronics ATmega64M1 User Manual

Page 238

background image

238

8209A–AVR–08/09

ATmega16M1/32M1/64M1

Example 1:

– ADMUX = 0xED (ADC3 - ADC2, 10x gain, 2.56V reference, left adjusted result)

– Voltage on ADC3 is 300 mV, voltage on ADC2 is 500 mV.

– 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 300 mV, voltage on ADC2 is 500 mV.

– 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.

22.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 con-
verter can be used in single conversion mode to measure the voltage over the temperature
sensor.

As shown

Figure 22-15

, the temperature sensor is followed by a driver. This driver is enabled

when ADMUX value selects the temperature sensor as ADC input

See “ADC Input Channel

Selection” on page 245.

The propagation delay of this driver is approximatively 2µS. Therefore

two successive conversions are required. The correct temperature measurement will be the sec-
ond 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 “Changing Channel
or Reference Selection” on page 230.

Figure 22-15. Temperature Sensor Block Diagram

Temperature
Sensor

ADC
Input
Multiplexer

ADMUX

to sampling
and hold

G=1

Enable when
ADMUX = Temp. Sensor input