Лекция: Подсистемы сброса и тактовых генераторов

Подсистемы сброса и тактовых генераторов показаны на рис. 4.1.

 

Рисунок. 4.1. Подсистемы сброса и тактовых генераторов

Подсистема сброса обеспечивает сброс микроконтроллерного ядра в зависимости от семи различных причин: от встроенного монитора питания, который вырабатывает сигнал сброса при значительном снижении уровня питания; от охранного таймера WDT(Watchdog Timer); при отсутствии тактовых импульсов на детекторе тактовых импульсов; по сигналу от компаратора 0; при наличии программного сброса; по сигналу со входов CNVSTR или RST/. Вход сброса RST/ — двунаправленный, что позволяет осуществлять внешний сброс. Каждый сброс ядра, кроме входа сброса RST/ и монитора питания, может быть запрещен программно. Охранный таймер WDTпри сбросе системы становится активным, что нужно учитывать при разработке программного обеспечения (его нужно либо запретить на стадии инициализации, либо учитывать его время срабатывания).

При возникновении состояния сброса ядро останавливает выполнение программы, переводит все выводы микроконтроллера в начальное состояние, устанавливает в начальное состояние регистры специальных функций, восстанавливает начальное состояние таймеров и прерываний, сбрасывает счетчик адреса в состояние 0x0000 и начинает выполнение программы с этого адреса. Во все порты ввода/вывода записывается код 0xFF, включаются внутренние подтяжки уровней. Если состояние сброса возникло от монитора питания или записи 1 в PORSF, вывод RST/ переводится в состояние 0 и удерживается в этом состоянии определенное время, необходимое для сброса. После сброса внутренний генератор запускается на частоте 2 МГц. Охранный таймер WDT устанавливается на максимально возможное время.

Как мы уже отмечали выше, существует семь причин возникновения ситуации сброса. Рассмотрим их подробнее.

1. При превышении определенного уровня напряжения питания VRST, указанного в электрических характеристиках каждого семейства, вырабатывается сигнал сброса после включения питания (Power-on Reset) RST/. Во время этого режима сброса Флаг PORSF (RSTSRC.1) аппаратно устанавливается в лог. 1. Все Другие флаги в регистре RSTSRC не определены. Флаг PORSF обнуляется при сбросе от любых других источников. Поскольку все причины сброса заставляют микроконтроллер начинать выполнять программу с одного нулевого стартового адреса, то только опросом флага PORSF микроконтроллер может определить, что сброс был вызван причиной включения питания. Это необходимо для определения состояния памяти. Понятно, что если был установлен флаг PORSF, то память содержит произвольную информацию.

2. Другой причиной сброса может быть программная запись флага PORSF (RSTSRC.1) в лог. 1.

3. В случае даже кратковременного снижения напряжения питания ниже уровня Vrst, монитором вырабатывается сигнал сброса от нарушения питания (Power-fail Reset) с установкой флага PORSF.

4. Четвертой причиной может служить внешний сигнал сброса, который подается нулевым уровнем на вывод RST/. Длительность импульса сброса должна быть больше 12 тактов. После выхода из этого режима устанавливается флаг PINRSF (RSTSRC.0). Напомним, что вывод RST/ совместим с пятивольтовыми уровнями.

5. Следующей причиной возникновения режима сброса (Missing Clock Detector Reset) является отсутствие в течение более чем 100 мкс тактовых импульсов. После сброса устанавливается флаг MCDRSF (RSTSRC.2), который позволяет определить причину сброса. Этот источник сброса может быть включен или выключен соответствующей установкой бита MSCLKE регистра OSCICN.

6. Еще одним источником состояния сброса может быть компаратор 0, который может быть запрограммирован на выработку сигнала сброса низкого уровня и запись высокого уровня в флаг CORSEF (RSTSRC.5). Конечно, компаратор 0 должен быть предварительно разрешен битом CPTOCN.7. При этом, если на неинвертирующем входе (СРО+) напряжение ниже, чем на инверсном входе (СРО-), генерируется сигнал сброса (Comparator 0 Reset). Следует помнить, что при этом режиме сброса импульс на выводе RST/ не генерируется. Заметим, что этот сигнал сброса вырабатывается и при активном тактовом генераторе, и в отсутствии тактовых импульсов.

7. Последним источником ситуации сброса является внешний сигнал CNVSTR, который может быть запрограммирован как вход сброса, чувствительный к нулевому потенциалу, путем записи 1 в флаг CNVRSEF (RSTSRC.6). Этот сигнал может быть выведен на один из вводов первых трех портов Р0, Р1 и Р2 через коммутатор ресурсов Crossbar. После этого типа сброса (External CNVSTR Pin Reset) устанавливается флаг CNVRSEF (RSTSRC.6). При этом режиме сброса импульс на выводе RST/ также не генерируется.


еще рефераты
Еще работы по информатике