F40-43a (1041604), страница 30
Текст из файла (страница 30)
Чтобыпредотвратить сброс, WDT должен перезапускаться из прикладной программы до того, как произойдет егопереполнение. Если в системе происходит программный/аппаратный сбой, не позволяющий программеперезапустить WDT, то WDT переполнится и вызовет сброс. Это предотвращает выход системы из подконтроля.После сброса любого типа WDT автоматически включается и запускается по умолчанию смаксимальным таймаутом. При необходимости WDT можно программно отключить или заблокировать,предотвратив его случайное отключение. После блокировки WDT его нельзя отключить до следующегосистемного сброса.
Состояние вывода /RST не влияет на сброс этого типа.WDT состоит из 21-разрядного таймера, работающего с программируемой тактовой частотой. Этоттаймер измеряет период между операциями записи определенных значений в его регистр управления. Если этотпериод превышает установленный предел, то генерируется сброс от WDT.
WDT может быть программноразрешен или запрещен, кроме этого можно заблокировать функцию отключения WDT. Управление WDTосуществляется посредством регистра управления WDT (WDTCN), показанного на рис.13.3.13.7.1. Включение/сброс WDTWDT как включается, так и сбрасывается записью значения 0xA5 в регистр WDTCN. Программапользователя должна периодически записывать значение 0xA5 в регистр WDTCN, чтобы предотвратитьпереполнение сторожевого таймера. WDT включается и сбрасывается в результате любого системного сброса.13.7.2. Отключение WDTЗапись в регистр WDTCN значения 0xAD вслед за значением 0xDE отключает WDT.
Следующийсегмент программного кода иллюстрирует операцию отключения WDT:CLR EAMOV WDTCN,#0DEhMOV WDTCN,#0ADhSETB EA159;;;;запрет всех прерыванийотключениесторожевого таймераразрешение прерыванийРед. 1.3C8051F040/1/2/3Между записью значений 0xDE и 0xAD должно пройти не более четырех тактовых циклов, иначе операцияотключения игнорируется. На время этой процедуры следует запретить прерывания во избежание задержкимежду двумя операциями записи.13.7.3. Блокировка отключения WDTЗапись значения 0xFF в регистр WDTCN заблокирует функцию отключения WDT. Будучизаблокированной, операция отключения игнорируется до следующего системного сброса. Запись значения 0xFFне включает и не сбрасывает сторожевой таймер.
Приложения, планирующие использовать WDT постоянно,должны записывать значение 0xFF в регистр WDTCN в процессе начальной инициализации.13.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.Рисунок 13.3. WDTCN: Регистр управления WDTR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:xxxxx111Бит 7SFR Адрес: 0xFFSFR страница: ВсеБиты 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.3160C8051F040/1/2/3Рисунок 13.4. RSTSRC: Регистр источников сбросаRБит 7R/WCNVRSEFБит 6R/WC0RSEFБит 5R/WSWRSEFБит 4RWDTRSFБит 3R/WMCDRSFБит 2RPORSFR/WPINRSFБит 1Бит 0Значениепри сбросе:xxxxxxxxSFR Адрес: 0xEFSFR страница: 0Бит 7: Зарезервирован.Бит 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: Детектор исчезновения тактирования отключен.1: Детектор исчезновения тактирования включен.Чтение:0: MCD не был источником предыдущего сброса.1: MCD был источником предыдущего сброса.Бит 1: PORSF: Флаг сброса типа POR (сброс при включении питания)Запись: Если схема слежения за напряжением питания включена (на выводе MOVEN присутствуетсигнал высокого уровня), то этот бит используется для выбора ее в качестве источника сброса.0: Схема слежения за напряжением питания не будет источником сброса.1: Схема слежения за напряжением питания будет источником сброса.Примечание: При начальном запуске для включения/отключения схемы слежения занапряжением питания используется внешний вывод MONEN.
Бит PORSF невключает/отключает схему слежения за напряжением питания. Он лишь выбирает ее вкачестве источника сброса.Чтение:0: Предыдущий сброс не был сбросом типа POR или сбросом от схемы слежения за напряжениемпитания.1: Предыдущий сброс был сбросом типа POR или сбросом от схемы слежения за напряжениемпитания.Бит 0: PINRSF: Флаг сброса от вывода /RSTЗапись:0: Не вызывает никаких действий.1: Вызывает сброс типа POR. На выводе /RST появляется сигнал низкого уровня.Чтение:0: Предыдущий сброс не был сбросом от вывода /RST.1: Предыдущий сброс был сбросом от вывода /RST.161Ред. 1.3C8051F040/1/2/3Таблица 13.1. Электрические параметры источников сбросаТ = от -40˚C до +85˚C, если не указано иное.ПАРАМЕТРУСЛОВИЯВыходное напряжениеIOH= -3мАвысокого уровня навыводе /RSTВыходное напряжениеIOL= 8.5мА, VDD = 2.7 … 3.6Внизкого уровня на выводе/RSTВходное напряжениевысокого уровня навыводе /RSTВходное напряжениенизкого уровня на выводе/RSTВходной ток утечки/RST = 0.0Ввывода /RSTНапряжение VDD, необходимое для функционирования выхода /RSTНапряжение AV+, необходимое для функционирования выхода /RSTПороговое значениенапряжения VDD длясброса типа POR (VRST)Минимальная длительность низкого уровнясигнала на выводе /RST,необходимая для генерации системного сбросаВремя задержки сбросаЗадержка нарастающего фронта навыв.
/RST после превышения порогасброса VRSTТаймаут детектора исчезВремя от последнего тактовогоновения тактированияимпульса до генерации сбросаРед. 1.3Мин.VDD –0.7Тип.Макс.Ед. изм.В0.6ВВ0.7 xVDD0.3 xVDDВмкА501.0В1.0В2.402.552.80Внс1080100120мс100220500мкс162C8051F040/1/2/314. ГЕНЕРАТОРЫРисунок 14.1. Структурная схема генератораXTAL1CLKSLВариант 3CLKSELIFCN1IFCN0OSCICNIOSCENIFRDYOSCICLXTAL2Вариант 4ENПрограммируемыйвнутреннийтактовыйгенераторXTAL1Вариант 2VDDn0SYSCLKВариант 1XTAL1СхемавходногокаскадаXTAL1OSC1XFCN2XFCN1XFCN0XTLVLDXOSCMD2XOSCMD1XOSCMD0XTAL2OSCXCN14.1. Программируемый внутренний генераторВсе МК C8051F040/1/2/3 содержат программируемый внутренний генератор, который после сбросасистемы является по умолчанию системным тактовым генератором. Частоту внутреннего генератора можнопрограммировать с помощью регистра OSCICL (см. рис.14.2).
OSCICL калибруется при изготовлении МКтаким образом, чтобы частота внутреннего генератора после сброса составляла 24,5 МГц.Электрические параметры прецизионного внутреннего генератора приведены табл.14.1.Программируемая частота внутреннего генератора не должна превышать 25 МГц. Следует иметь ввиду, чтосистемная тактовая частота может быть получена из частоты внутреннего генератора, деленной на 1, 2, 4 или 8,в зависимости от значения битов IFCN регистра OSCICN.163Ред. 1.3C8051F040/1/2/3Рисунок 14.2.
OSCICL: Регистр калибровки внутреннего генератораR/WБит 7R/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:различно длякаждого экземпляра МКSFR Адрес: 0x8BSFR страница: FБиты 7-0: OSCICL: Регистр калибровки внутреннего генератора.Этот регистр используется для настройки частоты внутреннего генератора. Значение регистраOSCICL, устанавливаемое при сбросе, определяет базовую частоту внутреннего генератора.Значение, устанавливаемое при сбросе, различно для каждого конкретного МК и определяется приизготовлении МК таким образом, чтобы внутренний генератор генерировал сигнал с частотой24,5 МГц.Рисунок 14.3.
OSCICN: Регистр управления внутренним генераторомR/WIOSCENБит 7R/WIFRDYR/W-R-R/W-R/W-R/WIFCN1R/WIFCN0Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:11000000SFR Адрес: 0x8ASFR страница: FБит 7: IOSCEN: Бит включения внутреннего генератора0: Внутренний генератор выключен1: Внутренний генератор включенБит 6: IFRDY: Флаг стабилизации частоты внутреннего генератора0: Частота внутреннего генератора не соответствует частоте, задаваемой битами IFCN.1: Частота внутреннего генератора соответствует частоте, задаваемой битами IFCN.Биты 5-2: Зарезервированы.Биты 1-0: IFCN1-0: Биты управления частотой внутреннего генератора00: SYSCLK равна частоте внутреннего генератора, деленной на 8.01: SYSCLK равна частоте внутреннего генератора, деленной на 4.10: SYSCLK равна частоте внутреннего генератора, деленной на 2.11: SYSCLK равна частоте внутреннего генератора, деленной на 1.Ред.