ÊÒÖ-ÌÊ
Vcc
RESET
PEN
XTAL1
|
|
|
Блок сброса |
POR |
|
|
|
|
50K-10 |
|
500K-100 |
по включению |
|
|
|
|
|
|
питания |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Блок сброса |
|
|
|
S |
Q |
|
|
|
|
|
счетчика |
|
||
D |
Q |
|
Сторожевой |
|
|
SUT0 |
|
|
|
|
Сброс |
|
SUT1 |
|
|||
|
|
|
таймер |
|
|
|
||
|
|
|
|
|
|
|
||
E |
|
|
|
|
|
|
|
|
|
|
|
Внутренний |
14-ступенчатый счетчик |
R |
Q |
||
|
|
|
RC-генератор |
со сквозным переносом |
||||
|
|
|
|
Q8 |
Q11 |
Q13 |
|
|
|
|
|
|
|
|
|
Внутренний |
|
|
|
|
|
|
|
|
|
сброс |
|
|
|
|
Блок задержки |
|
|
|
|
Рис. 24 Логика сброса
СБРОС ПО ВКЛЮЧЕНИЮ ПИТАНИЯ
Схема сброса по включению питания (Power-On Reset - POR) обеспечивает за пуск микроконтроллера только по достижении напряжением Vcc без опасного уровня. Как показано на Рис.24, встроенный таймер, тактируемый встроенным генератором сторожевого таймера, удерживает запуск MCU на некоторое вре мя после достижения граничного напряжения вкючения питания Vpot , не зависящее о т скорости нарастания напряжения Vcc (см. Рис. 26).
В Таблице 6 показаны установки битов SUT1 и SUT0 использующихся для установки длительности периода задержки процедуры запу ска. Пользователю предоставляется возможность выбора задержки времени за пуска. Установка SUT 1/0 = 00, при которой MCU запускается через 5 тактовых циклов, исполь зуется при использовании внешнего тактового сигнала, подаваемого н а вывод XTAL1. Такая установка обеспечивает быстрый запуск из режимов power down или power save, при условии наличия тактового сигнала в этих режимах. Подробн ости в разделе Программирование.
Если встроенная задержка запуска достаточна, то RESET может б ыть подсоединен к Vcc непосредственно или через внешний нагрузочный резист ор. Удержанием вывода на низком уровне, во время подачи напряжения, период сброса по включению питания может быть увеличен. Пример такого тактирования приведен на. Рис. 27.
Vcc VPOT
RESET VRST
Задержка
tÒOUT 
Внутренний
сброс
Рис. 25 Начальный запуск MCU. Вывод RESET подключен к Vcc, быстрое нарастан ие Vcc
7 9
ATMEL |
|
ÊÒÖ-ÌÊ |
|||
|
Vcc |
|
VPOT |
||
|
RESET |
|
VRST |
||
|
|
|
|
|
|
|
Задержка |
|
tTOUT |
|
|
|
|
|
|||
|
|
|
|
|
|
Внутренний
сброс
Рис.26 Начальный запуск MCU. Вывод RESET подключен к Vcc, медленное нарастание Vcc
Vcc |
VPOT |
||
|
|
|
|
RESET |
|
VRST |
|
|
|
||
Задержка |
|
|
tTOUT |
|
|
||
|
|
|
|
Внутренний
сброс
Рис. 27 Начальный запуск MCU. Внешнее управление состоянием вывода RESET
ВНЕШНЕЕ УПРАВЛЕНИЕ СБРОСОМ
Внешний сброс формируется подачей низкого уровня на выво д RESET на время не меньше двух тактовых циклов кварцевого генератора. При достижении напряжением на выводе RESET уровня VRST запускается таймер, задерживающий запуск MCU на время t TOUT.
Vcc |
|
|
RESET |
VRST |
|
|
||
Задержка |
|
tTOUT |
|
||
|
|
|
Внутренний |
|
|
сброс |
|
|
Рис. 28 Внешний сброс во время работы микроконтроллера
СБРОС ПО СТОРОЖЕВОМУ ТАЙМЕРУ
По окончании времени, определяемого сторожевым таймером, таймер формирует короткий, длительностью в один цикл XTAL, импульс с броса. По падающему фронту этого импульса таймер задержки начинает отсчет tTOUT. В разделе Сторожевой таймер (Watchdog Timer) приводится подробное описание работы сторожевого таймера.
8 0
ÊÒÖ-ÌÊ
Vcc
RESET


1 XTAL Cycle
Задержка сторожевого таймера
Задержка |
tTOUT |
сброса |
|
Внутренний
сброс
Рис. 29 Сброс по сторожевому таймеру во время работы микроконтроллера
РЕГИСТР СТАТУСА MCU - MCUSR - (MCU Status Register)
Регистр статуса MCU выдает информацию об источнике, вызвавш ем сброс MCU.
Áèò |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
$34($54) |
- |
- |
- |
- |
- |
- |
EXTRF |
PORF |
MCUSR |
Чтение/Запись |
R |
R |
R |
R |
R |
R |
R/W |
R/W |
|
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
см. описание битов |
||
• Bits 7..2 - Res: Reserved Bits - Зарезервированные биты
Эти биты зарезервированы и при считывании всегда покажут состояние 0.
• Bit 1 - EXTRF: External Reset Flag - Флаг внешнего сброса
После подачи напряжения питания состояние этого бита нео пределенно (X). Бит устанавливается в состояние 1 внешним сбросом. Сброс по ст орожевому таймеру оставляет этот бит неизменным.
• Bit 0 - PORF: Power On Reset Flag - Флаг включения питания
Данный бит устанавливается сбросом по подаче питания. Сбр ос по сторожевому таймеру или по внешнему сбросу оставляют этот бит неизменным.
В таблице показано влияние трех режимов сброса на состоян ия битов PORF и EXTRF.
Таблица 7 Состояния PORF и EXTRF битов после сброса
Источник сброса |
PORF |
EXTRF |
Сброс по подаче питания |
1 |
Неопределенное состояние |
Внешний сброс |
Не меняется |
1 |
Сброс по сторожевому таймеру |
Не меняется |
Не меняется |
Для определения режима сброса, на основании состояния дан ных битов PORF и EXTRF, пользовательское программное обеспечение должно сбр асывать биты PORF и EXTRF как только это позволит программа. Прежде, чем их очистит ь необходимо провести проверку этих битов. Если бит был очищен до внешнего сброс а или сброса по сторожевому таймеру, то источник сброса может быть опреде лен по следующей таблице истинности:
8 1
ATMEL |
|
|
ÊÒÖ-ÌÊ |
|
|
Таблица 8 Определение источника сброса |
|
||
|
|
|
|
|
PORF |
|
EXTRF |
Источниксброса |
|
0 |
|
0 |
Сброс по сторожевому таймеру |
|
0 |
|
1 |
Внешний сброс |
|
1 |
|
0 |
Сброс по подаче питания |
|
1 |
|
1 |
Сброс по подаче питания |
|
|
|
|
|
|
ОБРАБОТКА ПРЕРЫВАНИЙ
Микроконтроллеры ATmega603/103 содержат два специальных 8-разрядны х регистра масок прерываний: регистр масок внешних прерыва ний EIMSK (External Interrupt Mask) и регистр масок прерываний по таймеру/счетчику TIMSK (Timer/Counter Inter rupt Mask). Кроме того, в регистрах управления периферией могут быт ь организованы и другие биты разрешения и биты масок.
При возникновении прерывания бит I разрешения глобальног о прерывания (Global Interrupt Enable) очищается и все прочие прерывания запрещаются. Пользовательское ПО, с тем, чтобы разрешить вложенные пре рывания, может установить бит I внутри подпрограммы обработки прерывания. Выход из п одпрограммы обработки прерывания происходит по команде RETI, при этом бит I устанавл ивается в состояние 1. Когда счетчик команд указывает вектор подпрограммы обра ботки прерывания, соответствующий флаг, вызвавший прерывание, аппаратно оч ищается. Некоторые флаги прерываний можно очистить, записав в соответствующий бит (ы) очищаемого флага логическую единицу.
РЕГИСТР МАСОК ВНЕШНИХ ПРЕРЫВАНИЙ -
EIMSK - (External Interrupt Mask Register)
Áèò |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
$39 ($59) |
INT7 |
INT6 |
INT5 |
INT4 |
INT3 |
INT2 |
INT1 |
INT0 |
EIMSK |
Чтение/Запись R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
|
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
•Bits 7..4 - INT7 - INT4: External Interrupt Request 7-4 Enable - Разрешение запроса
внешних прерываний с 4 по 7
При установленных битах INT7INT4 и установленном бите I регистр а статуса (SREG) разрешаются прерывания по соответствующим выводам вход ов сигналов прерываний. Бит управления опознаванием прерывания регистра управл ения внешними прерываниями EICR (External Interrupt Control Register) определяет срабатывание по нарастающему или падающему фронту или по логическому уро вню. Активация любого из этих выводов вызовет запрос прерывания даже если вывод будет разрешен как выход. Это обеспечивает возможность организации програм много прерывания.
•Bits 3..0 - INT3 - INT0: External Interrupt Request 3-0 Enable - Разрешение запроса
внешних прерываний с 0 по 3
При установленных битах INT3INT0 и установленном бите I регистр а статуса (SREG) разрешаются прерывания по соответствующим входам преры ваний. Внешние прерывания всегда вызывают прерывание низким уровнем. Ак тивация любого из этих выводов вызовет запрос прерывания даже если вывод будет р азрешен как выход. Это обеспечивает возможность организации программного прер ывания. Запрос прерывания
8 2
ÊÒÖ-ÌÊ
по логическому уровню, если он разрешен, будет генерирова ть запрос прерывания до тех пор, пока на входе будет находиться низкий уровень.
РЕГИСТР ФЛАГОВ ВНЕШНИХ ПРЕРЫВАНИЙ -
EIFR (External Interrupt Flag Register)
Áèò |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
$38 ($58) |
INTF7 |
INTF6 |
INTF5 |
INTF4 |
- |
- |
- |
- |
EIFR |
Чтение/Запись |
R/W |
R/W |
R/W |
R/W |
R |
R |
R |
R |
|
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
•Bits 7..4 - INTF7 - INTF4: External Interrupt 7-4 Flags - Флаги внешних прерываний с 4 по 7
В случае поступления запроса на прерывание на какой либо из выводов INT7 - INT4, будет установлен в 1 соответствующий флаг прерывания (INTF7 - INT F4). Если бит I регистра SREG и соответствующий бит разрешения (INT7 - INT4) в EIMSK буду т установлены, то MCU перейдет к вектору прерывания. По заверш ению подпрограммы прерывания флаг очищается. Кроме того, его можно очистить, записав в него логическую 1.
•Bits 3..0 - Res: Reserved Bits - Зарезервированные биты
Эти биты зарезервированы и при считывании всегда покажут состояние 0.
РЕГИСТР УПРАВЛЕНИЯ ВНЕШНИМИ ПРЕРЫВАНИЯМИ -
EICR (External Interrupt Control Register)
Áèò |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
$3A ($5A) |
ISC71 |
ISC70 |
ISC61 |
ISC60 |
ISC51 |
ISC50 |
ISC41 |
ISC40 |
EICR |
Чтение/Запись |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
|
Начальное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
• Bits 7..0 - ISCX1, ISCX0: External Interrupt 7-4 Sense Control bits - Биты управления
опознаванием внешних прерываний с 4 по 7
Внешние прерывания 7 - 4 активируются по выводам INT7 - INT4, если ус тановлен флаг I в SREG и установлена соответствующая маска в EIMSK. Запрос преры вания по логическому уровню или фронтам определяется в следующей таблице:
Таблица 9 Управление опознаванием прерывания
ISCX1 |
ISCX0 |
Описание |
0 |
0 |
Запрос прерывания генерируется низким уровнем на INTX. |
0 |
1 |
Зарезервирован |
1 |
0 |
Запрос прерывания генерируется падающим фронтом на INTX. |
1 |
1 |
Запрос прерывания генерируется нарастающим фронтом на INTX. |
Примечание: X может быть равен 7, 6, 5 или 4.
При изменении битов ISC11/ISC10 прерывание должно быть запрещено путем очистки бита разрешения в регистре GIMSK. В ином случае может произойт и прерывание. Запрос прерывания по логическому уровню, если он разрешен , будет генерировать запрос прерывания до тех пор, пока на входе будет находить ся низкий уровень.
8 3