Пуск микроконтроллера происходит при нодаче напряжения питания на его выводы VCC и RESET (Power-On Reset, POR). Перезапуск в процессе работы выполняется при появлении на выводе RESET нулевого уровня сигнала с последующим возвращением к высокому уровню (External Reset, EXR) и при переполнении сторожевого таймера (Watchdog Reset, WDTR). В микроконтроллерах типа t12, t15, 4433 и m163 перезапуск происходит также при понижении напряжения питания на выводе VCC ниже определенного уровня с последующим возвращением к рабочему уровню (Brown-Out Reset, BOR).
При пуске и перезапуске принимает активное значение внутренний сигнал Internal Reset, который сохраняет это значение в течение определенного интервала времени (Start-Up Time). При активном значении сигнала все регистры ввода-вывода переводятся в исходное состояние и в счетчик команд (PC) записывается код числа 0.
По истечении интервала Start-Up Time микроконтроллер приступает к выполнению программы, начиная с команды, записанной в FlashROM по нулевому адресу.
В исходном состоянии регистров ввода-вывода все разряды регистров находятся в нулевом состоянии.
Исключением являются:
■ регистр состояния USR или UCSRA (№ $0В) в порте UARX в который заносится код $20 (UDRE = 1);
■ регистр управления UCR или UCSRB (№ $0А) в порте UARX в который заносится код $02 (RXB8 =1);
■ регистр OCR1B (№ $2D) в таймере-счетчике Т/С1 микроконтроллера типа tl5, в который заносится код $FF;
■ регистр SPDR в порте SPI, исходное состояние которого является неопределенным;
■ регистры EEAR, EEARL и EEARH (№№ $1Е и $1F) в блоке управления EEPROM микроконтроллеров типа tl2, tl5, 2323, 4423, 4433, 8535 и ml63, исходное состояние которых является неопределенным;
■ регистр PORTA (№$1В) микроконтроллера типа t28, в который заносится код $0
В табл. 4 отмечено наличие таких элементов у микроконтроллеров разных типов и указаны их характеристики.
При пуске микроконтроллера при достижении напряжением питания уровня VP0TR с помощью схемы PORC устанавливается в единичное состояние триггер Т и сигнал Internal Reset принимает активное значение. При достижении уровня Vrst запускается схема временной задержки, выполненная па базе счетчика (Counter). По истечении времени задержки tTOUT сигнал на выходе триггера принимает пассивное значение.
Таблица 4
Элемент схемы | Тип МК | |||||||||||
t11 | t12 | t15 | 2323 | 2343 | 1200 | 2313 | t28 | 4433 | 8515 | 8535 | m163 | |
MCUSR | 2 | 4 | 4 | 2 | 2 | 3* | 4 | 2 | 4 | |||
BORC | + | + | + | + | ||||||||
CK | + | + | + | + | ||||||||
CKSEL | 2 – 0 | 3 – 0 | 1 – 0 | 3 – 2 | 2 – 0 | 3 – 0 | ||||||
FSTRT | + | + | + | + | + | |||||||
SUT | ||||||||||||
*d – MCUCS (№ 07) |
При перезапуске с использованием вывода RESET активное значение сигнала Internal Reset устанавливается с использованием схемы EXRC при переходе напряжения на выводе RESET через пороговое значение Vrst в сторону понижения напряжения, а схема задержки запускается при переходе этого напряжения через значение VRST в сторону повышения.
При переполнении сторожевого таймера WDT формируется короткий импульс, по переднему фронту которого устанавливается активное значение сигнала, а по заднему фронту запускается схема задержки.
При наличии схемы BORC (табл. 4) и нулевом значении установочного бита BODEN активное значение сигнала Internal Reset устанавливается при переходе напряжения на входе VCC через пороговое значение VBOT в сторону понижения, а запуск схемы задержки происходит при переходе напряжения через пороговое значение VBOT в сторону повышения. Уровень VBOT может иметь одно из двух знамени» в зависимости от значения установочного бита BODLEVLL.
В микроконтроллерах, не имеющих схемы BORC (табл. 4), после выключения напряжения питания повторный пуск микроконтроллера путем подачи напряжения питания (POR) возможен, если напряжение питания на выводе VCC упало ниже уровня Vpotf- Если этот уровень не пройден, микроконтроллер начнет выполнять случайную произвольную программу.
Ориентировочные значения пороговых уровней указаны в табл. 5.
Таблица 5
VPORT (B) | VPORF (B) | VPST (B) | VBOT(B) | |
BODLVEL | ||||
1 | 0 | |||
1,2 – 1,4 | 0,4 – 0,6 | (0,6 – 0,8)VCC | 2,7 | 4,0 |
Величина временной задержки tTOUT может быть постоянной или задаваться разработчиками путем изменения значений установочных битов CKSEL, которых у микроконтроллеров разных типов может быть от двух до четырех, и установочного бита FSTRT, а у микроконтроллера типа тЮЗ — установочных битов SUT1 л SUT0 (табл. 4).
В качестве сигнала, подаваемого на счетный вход счетчика Count, могут использоваться сигнал генератора сторожевого таймера GWDT или тактовый сигнал микроконтроллера СК. Выбор источника сигнала выполняется с помощью схемы управления СУ1 путем изменения значении установочных битов CKSEL. Величина задержки tTOUT может изменяться от нескольких десятков мке до нескольких сотен мс.
В микроконтроллерах, имеющих регистр MCUSR (№ $34), имеется возможность программными средствами определять способ запуска/перезапуска микроконтроллера, по которому началось выполнение текущей программы. В регистре MCUSR в этих целях используются 2, 3 или 4 разряда (табл. 4). При наличии четырех или трех разрядов способам запуска POR, EXR, WDTR и BOR соответствует единичное состояние разрядов PORF, EXTRF, WDRF и BORF регистра MCUSR соответственно.
При наличии двух разрядов (PORF и EXTRF) способ записи (POR, EXR или WDTR) определяется путем опроса состояния разрядов в начале запущенной/перезапущенной программы со сбросом обоих раз-Рядов в нулевое состояние.
Если при опросе PORF = 1, был пуск POR, если EXTRF = 1, был перезапуск EXR, если оба разряда имеют пулевое состояние, был перезапуск WDTR.
При медленном нарастании напряжения питания на входе VCC после Включения источника напряжения питания в процессоре (CPU) и EEPROM выполняются случайные операции, в результате которых может произойти произвольная запись случайного байта в EEPROM Для предотвращения этого явления следует удерживать нулевой уровень сигнала на выводе RESET до появления рабочего значения напряжения на выводе VCC. Эту операцию можно выполнить с помощью внешней схемы формирования сигнала RESET (Brown-Out Detector, BOD).
Микроконтроллеры семейства AVR могут быть переведены в энергосберегающие режимы работы. У микроконтроллеров всех типов возможны два энергосберегающих режима — режим холостого хода (Idle Mode, IM) и режим пониженного энергопотребления (Power-Down Mode, PDM). Микроконтроллеры, имеющие таймеры-счетчики с режимом счета реального времени (8535, ml63, ml03), кроме того, могут быть переведены в режим энергосохранения (Power Save Mode, PSM). Микроконтроллеры типа t15 и ml63, имеющие аналого-цифровой преобразователь, кроме того, могут переводиться в режим подавления помех работе АЦП (ADC Noise Reduction Mode, ANRM).
Переход в энергосберегающий режим происходит в ходе программы при выполнении команды с мнемокодом SLEEP, если разряд SE регистра MCUCR (№$35) установлен в единичное состояние.
Выбор режима в микроконтроллерах, которые могут находиться в двух энергосберегающих режимах, определяется состоянием разряда SM регистра MCUCR. При SM = 0 устанавливается режим холостого хода, при SM = 1 — режим пониженного энергопотребления. В микроконтроллерах, которые могут находиться в трех и четырех энергосберегающих режимах, выбор режима определяется комбинацией состояний разрядов SM1 и SM0 регистра MCUCR в соответствии с табл. 6.
SM1 | SM0 | ТипМК | |||
t15 | 8535 | m163 | m103 | ||
0 0 1 1 | 0 1 0 1 | IM ANRM PDM | IM PDM PSM | IM ANRM PDM PSM | IM PDM PSM |
Выход из энергосберегающего режима происходит при поступлении разрешенного запроса прерывания или перезапуске микроконтроллера. При выходе по запросу прерывания выполняется прерывающая программа и далее совершается переход к команде, расположенной после команды SLEEP, по которой произошел переход в данный режим.
В режиме холостого хода (IM) процессор остановлен, периферийные устройства продолжают работать, коды в регистрах общего назначения, ячейках SRAM и регистрах ввода-вывода, расположенных в пассивных периферийных устройствах, сохраняются неизменными. Ток потребления Icc У микроконтроллеров разных типов уменьшается в 2—4 раза. Если аналоговый компаратор не используется для выхода из режима, разряд ACD в регистре ACSR (№ $28) для уменьшения тока потребления должен быть установлен в единичное состояние.
В режиме пониженного энергопотребления (PDM) остановлен процессор и генератор тактового сигнала. Периферийные устройства, кроме сторожевого таймера и блока прерываний, не работают. Коды в регистрах общего назначения, ячейках SRAM и регистрах ввода-вывода сохраняются неизменными. Ток потребления Iсс у микроконтроллеров разных типов имеет величину от нескольких единиц до нескольких десятков мкА. Напряжение питания Vcc может быть снижено до величины 2 В.
Выход из режима возможен при перезапуске микроконтроллера и по разрешенному запросу прерывания из внешнего источника при представлении запроса уровнем сигнала. Сигнал должен сохранять низкий уровень в течение некоторого времени, пока генератор тактового сигнала входит в установившийся режим. В микроконтроллере типа m163, имеющем порт TWSI, выход из режима возможен также по запросу прерывания при опознании портом собственного адреса в поступившем адресном байте.
Режим энергосохранения (PSM) в микроконтроллерах, имеющих таймер-счетчик с режимом счета реального времени, отличается от режима пониженного энергопотребления возможностью сохранения работы данного таймера после перехода в режим и возможностью выхода из режима по запросу прерывания от этого таймера при его работе в режиме счета реального времени.
В режиме подавления помех работе АЦП (ANRM) процессор остановлен. Работают только аналого-цифровой преобразователь, блок прерываний и сторожевой таймер. Выход из режима происходит по запросу прерывания из внешнего источника при представлении запроса уровнем сигнала, по запросу прерывания от АЦП и при перезапуске микроконтроллера. В микроконтроллере типа m163 выход из режима возможен также по запросу прерывания при опознании портом TWSI собственного адреса.
Литература
1. Кибернетика – основа наук –под ред. проф. Карул К.В. - К. – 2009 г.
2. Основы микропроцессорных исчислений – под ред. Мозаев Г.Н. – М. – 2007 г.
3. Микроконтроллеры – под ред. д.т.н. Нелипова А.С. – Х. ХИРЕ – 2008 г.
4. Невлюдов И.Я. – Компьютеризация общества – Х. ХИРЕ – 2007 г.
5. Компьютерная техника и технологии – нпж - К. – 2008-2009 г.г.