F40-43a (1041604), страница 55
Текст из файла (страница 55)
Таймер может считать в обратном направлении, если бит разрешениядекрементирования DCEN = 1. Если при декрементировании регистра таймера произойдет его опустошение(т.е. переход из состояния 0х0000 в состояние 0хFFFF), то в этом случае, как и при переполнении,устанавливается в 1 флаг переполнения/опустошения таймера TFn (TMRnCN.7) и произойдет прерывание, еслионо разрешено.Режим таймера/счетчика с захватом выбирается установкой в 1 бита выбора режимазахват/перезагрузка CP/RLn (TMRnCN.0) и бита управления запуском Таймера n TRn (TMRnCN.2). Длявключения захвата бит разрешения внешнего сигнала для Таймера n EXENn (TMRnCN.3) также должен бытьустановлен в 1. Если бит EXENn сброшен в 0, то переходы внешнего сигнала на входном выводе TnEX будутигнорироваться.Рисунок 23.11.
Структурная схема Таймера n в режиме захватаTMRnCFTTTTDn nOnCMMG O E1 0 n ENСхема переключения212Внешний тактовыйсигнал (XTAL1)Tn0xFFTMRnLTMRnHRCAPnLRCAPnH08TCLKTRnEXENnTnEX1OVF1МатрицаTn(вывод порта)TnCONSYSCLK0xFF0ЗахватCP/RLnC/TnTRnEXENnEXFnTFnПрерываниеМатрицаРед. 1.3282C8051F040/1/2/323.2.3. Режим автоперезагрузкиТаймер/Счетчик в режиме автоперезагрузки может считать в обоих направлениях и вызыватьпрерывание как при переполнении, так и при опустошении регистра таймера.
В режиме прямого отсчетаТаймер/Счетчик при переполнении установит соответствующий ему флаг переполнения/опустошения TFn(TMRnCN.7) и сгенерирует прерывание (если оно разрешено). При этом значение из регистровзахвата/перезагрузки (RCAPnH, RCAPnL) будет загружено в регистры таймера и таймер перезапустится.
ЕслиEXENn = 1 и DCEN = 0, то переход внешнего сигнала на входном выводе TnEX (настроенном как вход) изсостояния лог.1 в состояние лог.0 также вызовет перезагрузку таймера. Если DCEN = 1, то логический уровеньна выводе TnEX управляет направлением счета таймера и сигнал на этом выводе не будет вызыватьперезагрузку или прерывание.В режиме обратного отсчета Таймер/Счетчик установит соответствующий ему флагпереполнения/опустошения TFn (TMRnCN.7) и сгенерирует прерывание (если оно разрешено) в тот момент,когда значение регистров таймера (TMRnH, TMRnL) станет равно значению регистров захвата/перезагрузки(RCAPnH, RCAPnL).
Это событие считается опустошением таймера и вызывает загрузку в регистры таймеразначения 0xFFFF. При опустошении таймер автоматически перезапускается.Режим таймера/счетчика с автоперезагрузкой выбирается сбросом в 0 бита CP/RLn. Установка в 1 битаTRn включает и запускает таймер.В режиме автоперезагрузки флаг EXFn инвертируется при каждом переполнении или опустошении ине вызывает прерывания. Флаг EXFn можно рассматривать как старший значащий разряд (СЗР) 17-разрядногосчетчика.Таймер 2 в качестве внутреннего сигнала тактирования может использовать сигнал системной тактовойчастоты или срез (переход из 1 в 0) внешнего сигнала на входном выводе Т2 (выбор сигнала тактированияосуществляется битом С/Т2).
Если бит EXEN2 установлен в 1, то под воздействием перехода из 1 в 0 внешнегосигнала на выводе T2EX произойдет перезагрузка Таймера 2 и будет сгенерировано прерывание от Таймера 2,если оно разрешено. Если бит EXEN2 сброшен в 0, то срезы внешнего сигнала на входном выводе T2EX будутигнорироваться.Рисунок 23.12. Структурная схема Таймера n в режиме автоперезагрузкиTMRnCFTTTTDn nOnCMMG O E1 0 nENСхема переключения0212Внешний тактовыйсигнал (XTAL1)Tn0xFFTMRnLTMRnHRCAPnLRCAPnHOVF1TCLKМатрицаTRnEXENnПерезагрузкаМатрицаSMBus(только Таймер 4)283Tn(вывод порта)08TnEX1TnCONSYSCLK0xFFРед.
1.3CP/RLnC/TnTRnEXENnEXFnTFnПрерываниеC8051F040/1/2/323.2.4. Режим инвертирования выходаТаймер n имеет возможность переключать (инвертировать) состояние соответствующего емувыходного вывода порта (Т2, Т3 или Т4) и таким образом генерировать на этом выводе прямоугольныеимпульсы с 50% скважностью. Состояние вывода порта будет изменяться при переполнении или опустошениисоответствующего таймера (в зависимости от направления счета таймера). Частота переключений определяетсячастотой тактирования таймера и значениями, загруженными в регистры RCAPnH и RCAPnL. Если таймерсчитает в обратном направлении, то значением перезагрузки таймера является значение 0xFFFF и опустошениебудет происходить в тот момент, когда значение регистров таймера станет равно значению регистров RCAPnHи RCAPnL. Если таймер считает в прямом направлении, то значением перезагрузки таймера является значение,содержащееся в регистровой паре RCAPnH : RCAPnL и переполнение будет происходить в тот момент, когдазначение регистров таймера 0xFFFF изменится на значение перезагрузки.Чтобы генерировать прямоугольные импульсы, таймер переводится в режим перезагрузки (бит выборарежима Захват/Перезагрузка и бит выбора режима Таймер/Счетчик сбрасываются в 0).
Выход таймераподключается путем установки в 1 бита разрешения выхода таймера в регистре TMRnCF. Необходимо такимобразом выбрать источник тактирования и значения перезагрузки/опустошения таймера, чтобы онпереполнялся/опустошался с частотой, равной половине требуемой частоты выходного сигнала. Вывод порта,назначенный матрицей выходом таймера, следует настроить как цифровой выход (см. раздел 17).
Установка в 1бита запуска таймера (TRn) запустит процесс генерации прямоугольного сигнала на выходном выводе.Чтение/запись бита состояния переключаемого выхода таймера (TMRnCF.2) используется для считываниясостояния переключаемого выхода или для принудительной установки на выходе требуемого значения. Этополезно в том случае, если требуется запустить процесс переключения выходного сигнала с определенногоначального состояния или если во время остановки процесса переключения требуется перевести сигнал навыходном выводе в определенное состояние.Уравнение 23.1 Частота прямоугольных импульсовЕсли таймер считает в прямом направлении:Fsq = 2 x (65535 – RCAPn) / FtclkЕсли таймер считает в обратном направлении:Fsq = 2 x (RCAPn) / FtclkРед. 1.3284C8051F040/1/2/3Рисунок 23.13.
TMRnCN: Регистры управления Таймерами nR/WTFnБит 7SFR Адрес:SFR страница:R/WEXFnR/W-R/W-R/WEXENnR/WTRnR/WC/TnR/WCP/RLnБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000(доступен в битовомрежиме адресации)TMR2CN: 0xC8; TMR3CN: 0xC8; TMR4CN: 0xC8TMR2CN: стр.0; TMR3CN: стр.1; TMR4CN: стр.2Бит 7: TFn: Флаг переполнения/опустошения Таймера n.Устанавливается в 1 аппаратно, если:таймер переполняется из состояния 0xFFFF в состояние 0x0000;таймер опустошается, изменяя свое значение, равное содержимому регистров RCAPnH:RCAPnLна значение 0хFFFF (в режиме автоперезагрузки);таймер опустошается, изменяя свое значение, равное 0х0000 на Если прерывание от Таймера 3разрешено, то установка этого бита приведет к переходу на значение 0хFFFF (в режиме захвата).Если прерывание от Таймера разрешено, то установка этого бита приведет к переходу на процедуруобслуживания прерывания от Таймера n.
Этот бит не сбрасывается аппаратно, он должен быть сброшенпрограммно.Бит 6: EXFn: Флаг внешнего входного сигнала Таймеров 2, 3 или 4.Этот бит аппаратно устанавливается в 1, если срез сигнала на входном выводе TnEX вызвал захватили перезагрузку и EXENn = 1. Если прерывание от Таймера разрешено, то установка этого битаприведет к переходу на процедуру обслуживания прерывания от Таймера n.
Этот бит не сбрасываетсяаппаратно, он должен быть сброшен программно.Биты 5-4: Зарезервированы.Бит 3: EXENn: Бит разрешения внешнего сигнала для Таймера n.Этот бит разрешает осуществлять захват или перезагрузку по срезам сигнала на выводе TnEX ииспользовать этот вывод для управления направлением счета. Если DCEN = 1, то в режимеавтоперезагрузки сигнал на выводе TnEX будет определять направление счета таймера. ЕслиEXENn = 1, то TnEX следует настроить как цифровой вход.0: Изменения состояния сигнала на выводе TnEX игнорируются.1: Изменения состояния сигнала на выводе TnEX вызывают захват, перезагрузку, а также определяютнаправление счета таймера следующим образом:Режим захвата: При переходе сигнала на выводе TnEX из ‘1’ в ‘0’ значение таймера захватывается(переписывается) в регистры RCAPnH:RCAPnL.Режим автоперезагрузки:DCEN = 0: При переходе сигнала из ‘1’ в ‘0’ происходит захват и устанавливается флаг EXFn.DCEN = 1: Уровень сигнала на выводе TnEX определяет направление счета таймера.Бит 2: TRn: Бит управления запуском Таймера n.Этот бит включает/отключает соответствующий Таймер.0: Таймер n отключен.1: Таймер n включен и запущен/считает.Бит 1: C/Tn: Выбор режима счетчика или таймера для Таймера n.0: Режим таймера: Таймер n инкрементируется от сигнала тактирования, который определяетсябитами TnM1:TnM0 (TMRnCF.4: TMRnCF.3).1: Режим счетчика: Таймер n инкрементируется под воздействием перехода из 1 в 0 внешнеговходного сигнала.Бит 0: CP/RLn: Выбор режима захвата или перезагрузки.Этот бит определяет, в каком режиме функционирует Таймер n: в режиме захвата или в режимеавтоперезагрузки.0: Таймер n функционирует в режиме автоперезагрузки.1: Таймер n функционирует в режиме захвата.285Ред.
1.3C8051F040/1/2/3Рисунок 23.14. TMRnCF: Регистры конфигурации Таймеров n---R/WTnM1R/WTnM0R/WTOGnR/WTnOER/WDCENБит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес:SFR страница:Значениепри сбросе:00000000(доступен в битовомрежиме адресации)TMR2CN: 0xC9; TMR3CN: 0xC9; TMR4CN: 0xC9TMR2CN: стр.0; TMR3CN: стр.1; TMR4CN: стр.2Биты 7-5: Зарезервированы.Биты 4-3: TnM1 и TnM0: Биты выбора источника тактового сигнала Таймера n.Эти биты используются для выбора сигнала тактирования Таймера n.
Этим сигналом могут быть:SYSCLK, SYSCLK/2, SYSCLK/12, либо сигнал от внешнего источника тактирования, подаваемый навывод порта Tn и деленный по частоте на 8. Сигнал тактирования задается следующим образом:00: SYSCLK/12;01: SYSCLK;10: EXTCLK/8;11: SYSCLK/2.Бит 2: TOGn: Бит состояния переключаемого выхода.Если таймер используется для переключения (инвертирования) сигнала на выводе порта, то этот битможно использовать для чтения состояния выходного сигнала или для принудительной установкивыходного сигнала в заданное состояние.Бит 1: TnOE: Бит разрешения выходного сигнала Таймера n.Этот бит разрешает таймеру генерировать прямоугольные импульсы с 50% скважностью насвязанном с этим таймером внешнем выводе порта.Примечание: Таймер настраивается для генерации прямоугольных импульсов следующим образом:CP/RLn = 0C/Tn = 1TnOE = 1Загрузить в регистры RCAPnH:RCAPnL неоходимое значение (см. уравнение 23.1)Настроить вывод порта как выход (см.
раздел 17)0: Инвертируемый выходной сигнал недоступен на связанном с таймером выводе порта.1: Инвертируемый выходной сигнал доступен на связанном с таймером выводе порта.Бит 0: DCENn: Бит разрешения декремента.Этот бит разрешает таймеру считать в обоих направлениях (в зависимости от уровня сигнала навыводеTnEX).0: Таймер будет считать в прямом направлении независимо от уровня сигнала на выводеTnEX.1: Таймер будет считать в прямом или обратном направлениях в зависимости от уровня сигнала навыводеTnEX как показано ниже:- если TnEX = 0, то таймер считает в обратном направлении;- если TnEX = 1, то таймер считает в прямом направлении.Ред.
1.3286C8051F040/1/2/3Рисунок 23.15. RCAPnL: Младший байт регистра захвата Таймера nR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:SFR страница:RCAP2L: 0xCA; RCAP3L: 0xCA; RCAP4L: 0xCARCAP2L: стр.0; RCAP3L: стр.1; RCAP4L: стр.2Биты 7-0: RCAPnL: Младший байт регистра захвата Таймера n.Регистр RCAPnL захватывает младший байт Таймера n, если Таймер n работает в режимезахвата.