Материал: 8-разрядные микроконтроллеры Atmel

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

ÊÒÖ-ÌÊ

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

Источник: https://studfile.net/preview/16521258/