Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Сторожевой таймер WDT




Сохранение состояния при прерываниях

 

При прерывании в стеке автоматически сохраняется только значение счетчика команд PC. Обычно пользователю также необходимо сохранить некоторые регистры, например регистры W и STATUS. Для временного хранения используются регистры W TEMP и STATUS TEMP.

 

Сторожевой таймерWDT (рисунок 14) представляет собой независимый встроенный RC-генератор, не требующий никаких внешних цепей. Он работает, даже если основной тактовый генератор остановлен, как это происходит при исполнении команды SLEEP. При нормальной работе сторожевой таймер по истечении заданной выдержки времени вырабатывает сигнал сброса. Если контроллер находился в режиме пониженного энергопотребления SLEEP, срабатывание сторожевого таймера выводит его из этого режима и переводит в режим нормальной работы. Функционирование сторожевого таймера может быть запрещено путем записи «0» в бит конфигурации WDTE на этапе программирования микросхем.

 

Примечание: PSA и PS2…PS0 – биты регистра OPTION

 

Рисунок 14 – Структурная схема сторожевого таймера

 

Период сторожевого таймера. Номинальная выдержка сторожевого таймера составляет 18 мс (без использования предварительного делителя). Она зависит от температуры и напряжения питания, а также меняется от разброса характеристик кристаллов. Если требуется увеличить время задержки, то к WDT может быть подключен встроенный предварительный делитель с коэффициентом деления до 1:128, программируемый путем записи в регистр OPTION, таким образом могут быть реализованы выдержки до 2,3 с.

Команды CLRWDT и SLEEP обнуляют WDT и предварительный делитель, если он подключен к WDT. Таким образом, выдержка времени начинает отсчитываться сначала и на некоторое время выработка сигнала СБРОС предотвращается. При срабатывании сторожевого таймера обнуляется бит в регистре STATUS.

Выдержка времени сторожевого таймера максимальна при следующей комбинации параметров: минимальное напряжение , максимальная температура и максимальный коэффициент деления делителя. При этих условиях выдержка времени сторожевого таймера может составлять несколько секунд.

 

Режим пониженного энергопотребления (SLEEP)

 

Вход в режим пониженного энергопотребления SLEEP осуществляется командой SLEEP. По этой команде сторожевой таймер, если он был разрешен при программировании контроллера, сбрасывается и начинает отсчет времени. В регистре состояния STATUS сбрасывается бит и устанавливается бит , а тактовый генератор выключается. Порты ввода/вывода сохраняют состояние, которое они имели до входа в режим SLEEP.

Для снижения тока, потребляемого в этом режиме, все разряды внешних портов кристалла должны находиться либо на уровне , либо на уровне . Все разряды портов, находящиеся в высокоимпедансном состоянии, должны быть соединены через внешние резисторы с или , чтобы избежать токов переключения, вызываемых плавающим потенциалом на высокоомных входах. Вход T0CK1 также должен иметь потенциал или . Вывод должен иметь высокий логический уровень.

Следует отметить, что сигнал внутреннего сброса, вырабатываемый сторожевым таймером, не переключает вывод MCLR в низкий уровень.

Выход из режима SLEEP осуществляется по одному из следующих событий:

– внешний сброс – импульс низкого уровня на выводе ;

– сброс при срабатывании сторожевого таймера WDT (если он разрешен);

– прерывание от вывода RB0/INT, по изменению порта RB<7…4> или по окончании записи ЭППЗУ.

Биты и регистра состояния могут быть использованы для определения причины сброса. Бит регистра состояния устанавливается при включении питания и обнуляется командой SLEEP. Бит позволяет определить, чем был вызван выход из режима SLEEP: внешним сигналом на выводе или срабатыванием сторожевого таймера. Он обнуляется только при сбросе от сторожевого таймера.

При выполнении команды SLEEP следующая команда по адресу PC+1 выбирается из памяти. Чтобы микроконтроллер вышел из режима пониженного энергопотребления по прерыванию, необходимо установить (разрешить) соответствующие биты разрешения прерывания. Выход из режима пониженного энергопотребления произойдет независимо от состояния бита GIE. Если бит GIE установлен в «0» (запрещен), микроконтроллер продолжает выполнение с команды, следующей после команды SLEEP. Если же бит GIE установлен в «1» (разрешен), микроконтроллер выполняет команду, следующую за командой SLEEP, и затем переходит на адрес прерывания 0004h. Если выполнение команды, следующей за командой SLEEP, недопустимо, необходимо после команды SLEEP добавить команду NOP. Если прерывания запрещены (бит GIE установлен в «0»), но хотя бы для одного из источников прерывания установлен бит разрешения прерываний и соответствующий флаг разрешения прерываний, микроконтроллер немедленно выйдет из режима SLEEP. Команда SLEEP будет выполнена.

Независимо от причины сброса при выходе из режима SLEEP сторожевой таймер WDT обнуляется.

 




Поделиться с друзьями:


Дата добавления: 2015-03-29; Просмотров: 558; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.