Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ATtiny2313A ATtiny4313.pdf
Скачиваний:
41
Добавлен:
11.05.2015
Размер:
6.13 Mб
Скачать

8.2.4Watchdog Reset

When the Watchdog times out, it will generate a short reset pulse of one CK cycle duration. On

the falling edge of this pulse, the delay timer starts counting the Time-out period tTOUT. See “Interrupts” on page 48 for details on operation of the Watchdog Timer.

Figure 8-6. Watchdog Reset During Operation

CC

CK

8.3Internal Voltage Reference

ATtiny2313A/4313 features an internal bandgap reference. This reference is used for Brown-out Detection, and it can be used as an input to the Analog Comparator. The bandgap voltage varies with supply voltage and temperature.

8.3.1Voltage Reference Enable Signals and Start-up Time

The voltage reference has a start-up time that may influence the way it should be used. The start-up time is given in “System and Reset Characteristics” on page 201. To save power, the reference is not always turned on. The reference is on during the following situations:

1.When the BOD is enabled (by programming the BODLEVEL [2..0] Fuse).

2.When the internal reference is connected to the Analog Comparator (by setting the ACBG bit in ACSR).

Thus, when the BOD is not enabled, after setting the ACBG bit, the user must always allow the reference to start up before the output from the Analog Comparator. To reduce power consumption in Power-down mode, the user can avoid the three conditions above to ensure that the reference is turned off before entering Power-down mode.

8.4Watchdog Timer

The Watchdog Timer is clocked from an On-chip Oscillator which runs at 128 kHz. By controlling the Watchdog Timer prescaler, the Watchdog Reset interval can be adjusted as shown in Table 8-3 on page 47. The WDR – Watchdog Reset – instruction resets the Watchdog Timer. The Watchdog Timer is also reset when it is disabled and when a Chip Reset occurs. Ten different clock cycle periods can be selected to determine the reset period. If the reset period expires without another Watchdog Reset, the ATtiny2313A/4313 resets and executes from the Reset Vector. For timing details on the Watchdog Reset, refer to Table 8-3 on page 47.

42 ATtiny2313A/4313

8246B–AVR–09/11

ATtiny2313A/4313

The Watchdog Timer can also be configured to generate an interrupt instead of a reset. This can be very helpful when using the Watchdog to wake-up from Power-down.

To prevent unintentional disabling of the Watchdog or unintentional change of time-out period, two different safety levels are selected by the fuse WDTON as shown in Table 8-1 See “Timed Sequences for Changing the Configuration of the Watchdog Timer” on page 43 for details.

Table 8-1.

WDT Configuration as a Function of the Fuse Settings of WDTON

 

 

Safety

WDT Initial

How to Disable the

How to Change Time-

WDTON

 

Level

State

WDT

out

 

 

 

 

 

Unprogrammed

1

Disabled

Timed sequence

No limitations

 

 

 

 

 

 

Programmed

 

2

Enabled

Always enabled

Timed sequence

 

 

 

 

 

 

Figure 8-7. Watchdog Timer

128 kHz OSCILLATOR

WATCHDOG

RESET

WDP0

WDP1

WDP2

WDP3

WDE

WATCHDOG

PRESCALER

 

 

 

 

 

 

 

 

 

 

OSC/2K

OSC/4K

OSC/8K

OSC/16K

OSC/32K

OSC/64K

OSC/128K

OSC/256K

OSC/512K

OSC/1024K

 

 

 

 

MUX

 

 

 

 

 

 

 

 

 

 

 

 

MCU RESET

8.4.1Timed Sequences for Changing the Configuration of the Watchdog Timer

The sequence for changing configuration differs slightly between the two safety levels. Separate procedures are described for each level.

• Safety Level 1

In this mode, the Watchdog Timer is initially disabled, but can be enabled by writing the WDE bit to one without any restriction. A timed sequence is needed when disabling an enabled Watchdog Timer. To disable an enabled Watchdog Timer, the following procedure must be followed:

a.In the same operation, write a logic one to WDCE and WDE. A logic one must be written to WDE regardless of the previous value of the WDE bit

b.Within the next four clock cycles, in the same operation, write the WDE and WDP bits as desired, but with the WDCE bit cleared

43

8246B–AVR–09/11

• Safety Level 2

In this mode, the Watchdog Timer is always enabled, and the WDE bit will always read as one. A timed sequence is needed when changing the Watchdog Time-out period. To change the Watchdog Time-out, the following procedure must be followed:

a.In the same operation, write a logical one to WDCE and WDE. Even though the WDE always is set, the WDE must be written to one to start the timed sequence

b.Within the next four clock cycles, in the same operation, write the WDP bits as desired, but with the WDCE bit cleared. The value written to the WDE bit is irrelevant

8.4.2Code Example

The following code example shows one assembly and one C function for turning off the WDT. The example assumes that interrupts are controlled (e.g., by disabling interrupts globally) so that no interrupts will occur during execution of these functions.

Assembly Code Example(1)

WDT_off:

wdr

; Clear WDRF in MCUSR ldi r16, (0<<WDRF) out MCUSR, r16

;Write logical one to WDCE and WDE

;Keep old prescaler setting to prevent unintentional Watchdog Reset

in

r16, WDTCSR

ori

r16, (1<<WDCE)|(1<<WDE)

out

WDTCSR, r16

; Turn off WDT

ldi

r16, (0<<WDE)

out

WDTCSR, r16

ret

 

C Code Example(1)

void WDT_off(void)

{

_WDR();

/* Clear WDRF in MCUSR */ MCUSR = 0x00;

/* Write logical one to WDCE and WDE */ WDTCSR |= (1<<WDCE) | (1<<WDE);

/* Turn off WDT */ WDTCSR = 0x00;

}

Note: 1. See “Code Examples” on page 7.

44 ATtiny2313A/4313

8246B–AVR–09/11

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]