РЕЖИМЫ ПОНИЖЕННОГО ЭНЕРГОПОТРЕБЛЕНИЯ.
Для запуска режима пониженного энергопотребления должен быть установлен (1) бит SE регистра MCUCR, и должна быть исполнена команда SLEEP. Если во время нахождения в режиме пониженного потребления происходит одно из разрешенных прерываний, процессор начинает работать, исполняет подпрограмму обработки прерывания и продолжает выполнение программы с команды следующей за SLEEP. Содержимое регистрового файла и памяти ввода/вывода не изменяется. Если в режиме пониженного потребления происходит сброс, процессор начинает выполнение программы с вектора сброса.
Если для вывода из экономичного режима используется прерывание по уровню, низкий уровень должен удерживаться дольше времени отработки сброса. Иначе процессор не начнет работу.
Режим холостого хода.
Когда бит SM сброшен (0), команда SLEEP переводит процессор в режим холостого хода (Idle mode). ЦПУ останавливается, но Таймеры/Счетчики, сторожевой таймер и система прерываний продолжают работать. Это позволяет процессору возобновлять работу как от внешних прерываний, так и по переполнению таймеров/счетчиков или по сбросу от сторожевого таймера. Если прерывание от аналогового компаратора не требуется, аналоговый компаратор может быть отключен установкой бита ACD регистра ACSR. Это уменьшает потребляемую мощность в режиме холостого хода. При выходе из режима холостого хода процессор запускается без задержки.
Экономичный режим.
Когда бит SM установлен (1), команда SLEEP переводит процессор в экономичный режим (Power Down Mode). В этом режиме останавливается внешний генератор тактовых импульсов. Пользователь может разрешить работу сторожевого таймера в этом режиме. Если сторожевой таймер разрешен, процессор выходит из экономичного режима после отработки периода сторожевого таймера. Если сторожевой таймер запрещен, выход из экономичного режима может произойти только по внешнему сбросу, brown-out
сбросу или внешнему прерыванию по уровню.
Если для вывода из экономичного режима используется прерывание по уровню, низкий уровень должен удерживаться на время достаточное для запуска процессора. Это увеличивает устойчивость процессора к помехам. Изменение уровня дважды проверятся с периодом генератора сторожевого таймера, если обе выборки сигнала имеют необходимый уровень, процессор включается. Номинальный период сторожевого таймера 1uS при 5В питания и температуре 25 градусов Цельсия.
При выходе из экономичного режима, от времени появления условия выхода до включения процессора проходит некоторое время необходимое для запуска кварцевого генератора. Задержка включения определяется теми же битами CKSEL, что и время сброса. Длительность задержки на включение приведена в таблице 7.
Если условие включения исчезнет до того, как процессор запустится, например, низкий уровень на входе прерывания продержится недостаточно долго, процессор не выйдет из экономичного режима.
Таблица 7. Установка задержки включения
CKSEL [2:0] | Время запуска |
000 | 6CK |
001 | 6CK |
010 | 16K CK |
011 | 16K CK |
100 | 16K CK |
101 | 1K CK |
110 | 1K CK |
111 | 1K CK |
ТАЙМЕРЫ/СЧЕТЧИКИ
В AT90S2333/4433 предусмотрены два таймера/счетчика общего назначения. 8-разрядный и 16-разрядный. Каждый из таймеров индивидуально подключается к одному из выходов 10-разрядного предварительного делителя частоты. Оба таймера могут использоваться как таймеры с внутренним источником импульсов или счетчики импульсов поступающих извне. В качестве источника импульсов для таймеров можно выбрать сигнал с тактовой частотой процессора (CK), импульсы предварительного делителя (CK/8, CK/64, CK/256 или CK/1024) или импульсы с соответствующего внешнего вывода. Кроме того, таймеры могут быть остановлены, запретом прохождения импульсов на них.
8-РАЗРЯДНЫЙ ТАЙМЕР/СЧЕТЧИК 0
8-разрядный таймер/счетчик может получать импульсы тактовой частоты - CK, импульсы с предварительного делителя (CK/8, CK/64, CK/256 или CK/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регистра TCCR0. Флаг переполнения таймера находится в регистре TIFR. Биты управления таймером расположены в регистре TCCR0. Разрешение и запрещение прерываний от таймера управляется регистром TIMSK.
При работе таймера/счетчика от внешнего сигнала, внешний сигнал синхронизируется с тактовым генератором ЦПУ. Для правильной обработки внешнего сигнала, минимальное время между соседними импульсами должно превышать период тактовой частоты процессора. Сигнал внешнего источника обрабатывается по спадающему фронту тактовой частоты процессора.
8-разрядный таймер/счетчик можно использовать как счетчик с высоким разрешением, так и для точных применений с низким коэффициентом деления тактовой частоты. Более высокие коэффициенты деления можно использовать для медленных функций или измерения временных интервалов между редкими событиями.
РЕГИСТР УПРАВЛЕНИЯ ТАЙМЕРОМ/СЧЕТЧИКОМ 0 - TCCR0
TCCR0
33h(53h) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
- | - | - | - | - | CS02 | CS01 | CS00 | |
R | R | R | R | R | R\W | R\W | R\W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Биты 7..3 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и всегда читаются как 0.
Биты 2,1,0 - CS02, CS01, CS00 - выбор тактовой частоты. Эти биты задают коэффициент деления предварительного делителя.
Таблица 8. Выбор коэффициента предварительного деления
CS02 | CS01 | CS00 | Описание |
0 | 0 | 0 | Таймер/счетчик остановлен |
0 | 0 | 1 | CK |
0 | 1 | 0 | CK/8 |
0 | 1 | 1 | CK/64 |
1 | 0 | 0 | CK/256 |
1 | 0 | 1 | CK/1024 |
1 | 1 | 0 | Внешний вывод T0, нарастающий фронт |
1 | 1 | 1 | Внешний вывод T0, спадающий фронт |
Условие Stop запрещает/разрешает функционирование таймера/счетчика. В режимах деления используется частота тактового генератора. При использовании работы от внешнего источника предварительно должен быть установлен соответствующий бит регистра направления данных (0 - включает ножку на ввод).
ТАЙМЕР/СЧЕТЧИК 0 - TCNT0.
TCNT0
32h(52h) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
MSB | LSB | |||||||
R\W | R\W | R\W | R\W | R\W | R\W | R\W | R\W | |
Начальное значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Таймер/счетчик реализован как нарастающий счетчик с возможностью чтения и записи. При записи таймера/счетчика, если присутствуют тактовые импульсы, таймер/счетчик продолжает счет в следующем за операцией записи тактовом цикле.
16-РАЗРЯДНЫЙ ТАЙМЕР/СЧЕТЧИК 1
16-разрядный таймер/счетчик 1 может получать импульсы тактовой частоты - CK, импульсы с предварительного делителя (CK/8, CK/64, CK/256 или CK/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регистра TCCR1A. Флаги состояния таймера (переполнения, совпадения и захвата) и управляющие сигналы находится в регистре TIFR. Разрешение и запрещение прерываний от таймера 1 управляется регистром TIMSK.