F18-19 (1041602), страница 18
Текст из файла (страница 18)
Внешний сбросВнешний вывод /RST позволяет внешней схеме перевести МК в состояние сброса. Подача на вывод/RST сигнала с низким активным уровнем заставит МК перейти в состояние сброса. Несмотря на наличиевнутренних слаботоковых подтяжек, желательно обеспечить на выводе /RST внешние подтягивающие и/илиразвязывающие цепи, чтобы предотвратить ложные сбросы, вызванные шумом.
После снятия сигнала с низкимактивным уровнем с вывода /RST МК будет оставаться в состоянии сброса еще по крайней мере 12 тактовыхциклов. При завершении внешнего сброса устанавливается в 1 флаг PINRSF (RSTSRC.0). Допустимоенапряжение на выводе /RST составляет 5В.11.5. Сброс от детектора исчезновения тактированияДетектор исчезновения тактирования (Missing Clock Detector – MCD) фактически представляет собойодновибратор, который управляется системным тактовым сигналом.
Если системный тактовый сигнал исчезнетболее чем на 100мкс, то одновибратор сработает и сгенерирует сброс. После сброса типа MCD будетустановлен в 1 флаг MCDRSF (RSTSRC.2), показывая, что источником сброса был MCD; в иных случаях этотбит читается как 0. Состояние вывода /RST не влияет на сброс этого типа. Работа детектора исчезновениятактирования разрешается установкой в 1 бита MSCLKE в регистре OSCICN (см. рис. 12.2).11.6. Сброс от Компаратора 0Установка в 1 флага C0RSEF (RSTSRC.5) настраивает Компаратор 0 как вход сброса с активнымнизким уровнем.
Компаратор 0 следует включить, используя бит CPT0CN.7 (см. рис.6.3) как минимум за 20мксдо записи бита C0RSEF, чтобы дребезг на выходе не привел к генерации нежелательного сброса. Когданапряжение на неинвертирующем входе (CP0+) меньше, чем напряжение на инвертирующем входе (CP0-), то,если компаратор 0 настроен как источник сброса, МК перейдет в состояние сброса. После сброса отКомпаратора 0 флаг C0RSEF (RSTSRC.5) будет читаться как 1,показывая, что Компаратор 0 был источникомсброса; в иных случаях этот бит читается как 0. Состояние вывода /RST не влияет на сброс этого типа.
Такимобразом, Компаратор 0 может генерировать сброс как при наличии, так и при отсутствии системного тактовогосигнала.11.7. Сброс от внешнего вывода CNVSTRУстановка в 1 флага CNVRSEF (RSTSRC.6) настраивает внешний сигнал CNVSTR как вход сброса сактивным низким уровнем. Сигнал CNVSTR может появиться на любых выводах портов ввода/вывода Р0, Р1или Р2, как описано в разделе 13.1. (Необходимо отметить, что матрица должна быть сконфигурирована такимобразом, чтобы сигнал CNVSTR соединялся с соответствующим портом ввода/вывода). Матрицу следуетнастроить и включить до установки бита CNVRSEF. Когда сигнал CNVSTR настроен как источник сброса, онпредставляет собой чувствительный к уровню сигнал с активным низким уровнем. После сброса от сигналаCNVSTR флаг CNVRSEF (RSTSRC.6) будет читаться как 1,показывая, что сигнал CNVSTR был источникомсброса; в иных случаях этот бит читается как 0.
Состояние вывода /RST не влияет на сброс этого типа.11.8. Сброс от сторожевого таймераМК содержит программируемый сторожевой таймер (Watchdog Timer - WDT), работающий независимоот системного тактового сигнала. WDT переводит МК в состояние сброса в случае своего переполнения. Чтобыпредотвратить сброс, WDT должен перезапускаться из прикладной программы до того, как произойдет егопереполнение. Если в системе происходит программный/аппаратный сбой, не позволяющий программеперезапустить WDT, то WDT переполнится и вызовет сброс. Это предотвращает выход системы из подконтроля.При завершении сброса всех типов WDT автоматически включается и запускается по умолчанию смаксимальным таймаутом.
При необходимости WDT можно программно запретить или заблокировать, чтобыпредотвратить его случайное запрещение. После блокирования WDT его нельзя запретить до следующегосистемного сброса. Состояние вывода /RST не влияет на сброс этого типа.77Ред. 1.2C8051F018C8051F01911.8.1. Использование сторожевого таймераWDT состоит из 21-разрядного таймера, работающего с программируемой тактовой частотой. Этоттаймер измеряет период между операциями записи определенных значений в его регистр управления. Если этотпериод превышает установленный предел, то генерируется сброс от WDT.
WDT может быть программноразрешен или запрещен, кроме этого можно заблокировать функцию отключения WDT. Управление WDTосуществляется посредством регистра управления WDT (WDTCN), показанного на рис.11.3.Включение/сброс WDTWDT как включается, так и перезапускается в режиме обратного отсчета записью значения 0xA5 врегистр WDTCN. Программа пользователя должна периодически записывать значение 0xA5 в регистр WDTCN,чтобы предотвратить переполнение сторожевого таймера.
WDT включается и перезапускается в результателюбого системного сброса.Отключение WDTЗапись в регистр WDTCN значения 0xAD вслед за значением 0xDE отключает WDT. Следующийсегмент программного кода иллюстрирует операцию отключения WDT:CLR EA ; запрет всех прерыванийMOV WDTCN,#0DEh ; отключениеMOV WDTCN,#0ADh ; сторожевого таймераSETB EA ; разрешение прерыванийМежду записью значений 0xDE и 0xAD должно пройти не более четырех тактовых циклов, иначе операцияотключения игнорируется.
На время этой процедуры следует запретить прерывания во избежание задержкимежду двумя операциями записи.Блокировка отключения WDTЗапись значения 0xFF в регистр WDTCN заблокирует функцию отключения WDT. Будучизаблокированной, операция отключения игнорируется до следующего системного сброса. Запись значения 0xFFне включает и не сбрасывает сторожевой таймер. Приложения, планирующие использовать WDT постоянно,должны записывать значение 0xFF в регистр WDTCN в процессе начальной инициализации.Установка временного интервала (таймаута) WDTБиты WDTCN.[2:0] управляют таймаутом сторожевого таймера. Временной интервал определяетсяследующим уравнением:43+WDTCN[2:0] x TSYSCLK , (где TSYSCLK – период системного тактового сигнала).Для системной тактовой частоты 2 МГц таймаут, в соответствии с этим уравнением, может быть от0,032 мс до 524 мс. При установке этого временного интервала бит WDTCN.7 должен быть равен 0.
Операциячтения WDTCN возвратит заданный таймаут. После системного сброса значение битов WDTCN.[2:0] равно111b.Рисунок 11.3. WDTCN: Регистр управления WDTR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:xxxxx111Бит 7SFR Адрес:0xFFБиты 7-0: Управление WDTЗапись 0xA5 как включает, так и перезагружает WDT.Запись 0xAD в течение 4 тактовых циклов после записи 0xDE отключает WDT.Запись 0xFF блокирует функцию отключения.Бит 4:Бит состояния WDT (при чтении)Чтение бита WDTCN.[4] показывает состояние сторожевого таймера.0: WDT не активен1: WDT активенБиты 2-0: Биты установки таймаута WDTБиты WDTCN.[2:0] задают временной интервал сторожевого таймера.
При записи этих битовбит WDTCN.7 должен быть равен 0.Ред. 1.278C8051F018C8051F019Рисунок 11.4. RSTSRC: Регистр источников сбросаRR/WJTAGRST CNVRSEFБит 7Бит 6R/WC0RSEFБит 5R/WSWRSEFБит 4RWDTRSFБит 3RMCDRSFБит 2R/WPORSFRPINRSFБит 1Бит 0Значениепри сбросе:xxxxxxxxSFR Адрес:0xEF(Примечание: Нельзя использовать операции типа чтение-модификация-записьпо отношению к этому регистру.)Бит 7: JTAGRST: Флаг сброса интерфейса JTAG.0: Интерфейс JTAG в настоящий момент не в состоянии сброса.1: Интерфейс JTAG в состоянии сброса.Бит 6: CNVRSEF: Разрешение и флаг сброса от сигнала CNVSTR (Convert Start)Запись:0: CNVSTR не является источником сброса1: CNVSTR является источником сброса (активный уровень - низкий)Чтение:0: CNVSTR не был источником предыдущего сброса1: CNVSTR был источником предыдущего сбросаБит 5: C0RSEF: Разрешение и флаг сброса от Компаратора 0Запись:0: Компаратор 0 не является источником сброса1: Компаратор 0 является источником сброса (активный уровень - низкий)Чтение:0: Компаратор 0 не был источником предыдущего сброса1: Компаратор 0 был источником предыдущего сбросаБит 4: SWRSF: Бит инициации и флаг программного сбросаЗапись:0: Не вызывает никаких действий1: Вызывает внутренний сброс.
Состояние вывода /RST не влияет на этот сброс.Чтение:0: Предыдущий сброс не был вызван установкой в 1 бита SWRSF.1: Предыдущий сброс был вызван установкой в 1 бита SWRSF.Бит 3: WDTRSF: Флаг сброса от сторожевого таймера0: WDT не был источником предыдущего сброса.1: WDT был источником предыдущего сброса.Бит 2: MCDRSF: Флаг сброса от детектора исчезновения тактирования (MCD)0: MCD не был источником предыдущего сброса.1: MCD был источником предыдущего сброса.Бит 1: PORSF: Бит инициации и флаг сброса типа POR (сброс при включении питания)Запись:0: Не вызывает никаких действий1: Вызывает сброс типа POR. На выводе /RST устанавливается напряжениенизкого логического уровня.Чтение:0: Предыдущий сброс не был сбросом типа POR.1: Предыдущий сброс был сбросом типа POR.Бит 0: PINRSF: Флаг сброса от вывода /RST0: Предыдущий сброс не был сбросом от вывода /RST.1: Предыдущий сброс был сбросом от вывода /RST.79Ред.