beautypg.com

10 timer/counter prescaler, Atmega128rfa1 – Rainbow Electronics ATmega128RFA1 User Manual

Page 322

background image

322



8266A-MCU Wireless-12/09

ATmega128RFA1

advanced by at least one before the processor can read the counter value. After
wake-up, the MCU is halted for four cycles, it executes the interrupt routine, and
resumes execution from the instruction following SLEEP.

Reading of the TCNT2 Register shortly after wake-up from Power-save may give an

incorrect result. Since TCNT2 is clocked on the asynchronous TOSC clock, reading
TCNT2 must be done through a register synchronized to the internal I/O clock
domain. Synchronization takes place for every rising TOSC1 edge. When waking up
from Powersave mode, and the I/O clock (clk

I/O

) again becomes active, TCNT2 will

read as the previous value (before entering sleep) until the next rising TOSC1 edge.
The phase of the TOSC clock after waking up from Power-save mode is essentially
unpredictable, as it depends on the wake-up time. The recommended procedure for
reading TCNT2 is thus as follows:

1. Write any value to either of the registers OCR2x or TCCR2x.

2. Wait for the corresponding Update Busy Flag to be cleared.

3. Read TCNT2.

During asynchronous operation, the synchronization of the Interrupt Flags for the

asynchronous timer takes 3 processor cycles plus one timer cycle. The timer is
therefore advanced by at least one before the processor can read the timer value
causing the setting of the Interrupt Flag. The Output Compare pin is changed on the
timer clock and is not synchronized to the processor clock.

If the CPU wakes up from asynchronous timer and goes back to sleep again, it may

wakeup multiple times or the IRQ is called multiple times. This may be avoided if the
CPU waits with the next sleep instruction until the next asynchronous clock arrives.

21.10 Timer/Counter Prescaler

Figure 21-12. Prescaler for Timer/Counter2

10-BI T T/C PRES CA LER

TIMER/ COUNTER2 CLOCK SOURCE

clk

I/O

clk

T2S

TOSC1

AS2

CS20
CS21

CS22

cl

k

T

2

S

/8

cl

k

T

2

S

/6

4

cl

k

T

2

S

/1

2

8

cl

k

T

2

S

/1

02

4

cl

k

T

2

S

/2

5

6

cl

k

T

2

S

/3

2

0

PS RASY

Clear

clk

T2

AMR

EXCLKAMR

The register ASSR defines the clock source for the asynchronous Timer/Counter2. The
clock source for Timer/Counter2 is named clk

T2S

. clk

T2S

is by default connected to the

main system I/O clock clk

IO

. By setting the AS2 bit in ASSR, Timer/Counter2 is

asynchronously clocked either from the TOSC1 or from the AMR pin. This enables the
use of Timer/Counter2 as a Real Time Counter (RTC).