Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Stenin Lab / C8051F60-67-устройство МК.pdf
Скачиваний:
196
Добавлен:
10.02.2015
Размер:
5.19 Mб
Скачать

C8051F060/1/2/3/4/5/6/7

14.4. Сброс от детектора исчезновения тактирования

Детектор исчезновения тактирования (Missing Clock Detector – MCD) фактически представляет собой одновибратор, который управляется системным тактовым сигналом. Если системный тактовый сигнал исчезнет более чем на 100мкс, то одновибратор сработает и сгенерирует сброс. После сброса от MCD будет установлен в 1 флаг MCDRSF (RSTSRC.2), показывая, что источником сброса был MCD; в иных случаях этот бит читается как 0. Состояние вывода /RST не влияет на сброс этого типа. Работа детектора исчезновения тактирования разрешается установкой бита MCDRSF (RSTSRC.2) в 1 (см. раздел 15).

14.5. Сброс от Компаратора 0

Установка в 1 флага C0RSEF (RSTSRC.5) настраивает Компаратор 0 как вход сброса с низким активным уровнем. Компаратор 0 следует включить, используя бит CPT0CN.7 (см. раздел 12), до записи бита C0RSEF, чтобы дребезг на выходе не привел к генерации нежелательного сброса. Когда напряжение на неинвертирующем входе (CP0+) меньше, чем напряжение на инвертирующем входе (CP0-), то, если компаратор 0 настроен как источник сброса, МК перейдет в состояние сброса. После сброса от Компаратора 0 флаг C0RSEF (RSTSRC.5) будет читаться как 1, показывая, что Компаратор 0 был источником сброса; в иных случаях этот бит читается как 0. Состояние вывода /RST не влияет на сброс этого типа.

14.6. Сброс от внешнего вывода CNVSTR2

Установка в 1 флага CNVRSEF (RSTSRC.6) настраивает внешний сигнал CNVSTR2 как вход сброса с активным низким уровнем. Сигнал CNVSTR2 может появиться на любых выводах портов ввода/вывода Р0, Р1, Р2 или Р3, как описано в разделе 18.1. (Необходимо отметить, что матрица должна быть сконфигурирована таким образом, чтобы сигнал CNVSTR2 был выведен на соответствующий порт ввода/вывода). Матрицу следует настроить и включить до установки бита CNVRSEF. Если сигнал CNVSTR2 настроен как источник сброса, то его нельзя использовать для запуска АЦП2. Когда сигнал CNVSTR2 настроен как источник сброса, он представляет собой чувствительный к уровню сигнал с активным низким уровнем. После сброса от сигнала CNVSTR2 флаг CNVRSEF (RSTSRC.6) будет читаться как 1, показывая, что сигнал CNVSTR2 был источником сброса; в иных случаях этот бит читается как 0. Состояние вывода /RST не влияет на сброс этого типа.

14.7. Сброс от сторожевого таймера

МК содержит программируемый сторожевой таймер (Watchdog Timer - WDT), работающий независимо от системного тактового сигнала. WDT переводит МК в состояние сброса в случае своего переполнения. Чтобы предотвратить сброс, WDT должен перезапускаться из прикладной программы до того, как произойдет его переполнение. Если в системе происходит программный/аппаратный сбой, не позволяющий программе перезапустить WDT, то WDT переполнится и вызовет сброс. Это предотвращает выход системы из под контроля.

После сброса любого типа WDT автоматически включается и запускается по умолчанию с максимальным таймаутом. При необходимости WDT можно программно отключить или заблокировать, предотвратив его случайное отключение. После блокировки WDT его нельзя отключить до следующего системного сброса. Состояние вывода /RST не влияет на сброс этого типа.

WDT состоит из 21-разрядного таймера, работающего с программируемой тактовой частотой. Этот таймер измеряет период между операциями записи определенных значений в его регистр управления. Если этот период превышает установленный предел, то генерируется сброс от WDT. WDT может быть программно разрешен или запрещен, кроме этого можно заблокировать функцию отключения WDT. Управление WDT осуществляется посредством регистра управления WDT (WDTCN), показанного на рис.14.3.

165

Ред. 1.2

C8051F060/1/2/3/4/5/6/7

14.7.1. Включение/сброс WDT

WDT как включается, так и сбрасывается записью значения 0xA5 в регистр WDTCN. Программа пользователя должна периодически записывать значение 0xA5 в регистр WDTCN, чтобы предотвратить переполнение сторожевого таймера. WDT включается и сбрасывается в результате любого системного сброса.

14.7.2. Отключение WDT

Запись в регистр WDTCN значения 0xAD вслед за значением 0xDE отключает WDT. Следующий сегмент программного кода иллюстрирует операцию отключения WDT:

CLR EA

; запрет всех прерываний

MOV WDTCN,#0DEh

; отключение сторожевого таймера

MOV WDTCN,#0ADh

;

SETB EA

; разрешение прерываний

Между записью значений 0xDE и 0xAD должно пройти не более четырех тактовых циклов, иначе операция отключения игнорируется. На время этой процедуры следует запретить прерывания во избежание задержки между двумя операциями записи.

14.7.3. Блокировка отключения WDT

Запись значения 0xFF в регистр WDTCN заблокирует функцию отключения WDT. Будучи заблокированной, операция отключения игнорируется до следующего системного сброса. Запись значения 0xFF не включает и не сбрасывает сторожевой таймер. Приложения, планирующие использовать WDT постоянно, должны записывать значение 0xFF в регистр WDTCN в процессе начальной инициализации.

14.7.4. Установка временного интервала (таймаута) WDT

Биты WDTCN.[2:0] управляют таймаутом сторожевого таймера. Временной интервал определяется следующим уравнением:

43+WDTCN[2:0] x TSYSCLK , где TSYSCLK – период системного тактового сигнала.

Для системной тактовой частоты 3 МГц таймаут, в соответствии с этим уравнением, может быть от 0,021 мс до 349,5 мс. При установке этого временного интервала бит WDTCN.7 должен быть равен 0. Операция чтения WDTCN возвратит заданный таймаут. После системного сброса биты WDTCN.[2:0] читаются как 111b.

Ред. 1.2

166

C8051F060/1/2/3/4/5/6/7

Рисунок 14.3. WDTCN: Регистр управления WDT

R/W

R/W

R/W

R/W

R/W

R/W

R/W

R/W

Значение

 

 

 

 

 

 

 

 

при сбросе:

 

 

 

 

 

 

 

 

xxxxx111

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

SFR Адрес: 0xFF

 

 

 

 

 

 

 

 

SFR страница: Все

Биты 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.

167

Ред. 1.2