F40-43a (1041604), страница 56
Текст из файла (страница 56)
Если Таймер n работает в режиме автоперезагрузки, то этот регистр содержитмладший байт перезагружаемого значения.Рисунок 23.16. RCAPnH: Старший байт регистра захвата Таймера nR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:SFR страница:RCAP2H: 0xCB; RCAP3H: 0xCB; RCAP4H: 0xCBRCAP2H: стр.0; RCAP3H: стр.1; RCAP4H: стр.2Биты 7-0: RCAPnH: Старший байт регистра захвата Таймера n.Регистр RCAPnH захватывает старший байт Таймера n, если Таймер n работает в режимезахвата. Если Таймер n работает в режиме автоперезагрузки, то этот регистр содержитстарший байт перезагружаемого значения.Рисунок 23.17. TMRnL: Младший байт Таймера nR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:SFR страница:TMR2L: 0xCC; TMR 3L: 0xCC; TMR 4L: 0xCCTMR 2L: стр.0; TMR 3L: стр.1; TMR 4L: стр.2Биты 7-0: TMRnL: Младший байт Таймера n.Регистр TMRnL содержит младший байт 16-разрядного Таймера n.287Ред.
1.3C8051F040/1/2/3Рисунок 23.18. TMRnL: Старший байт Таймера nR/WR/WR/WR/WR/WR/WR/WR/WБит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0Значениепри сбросе:00000000Бит 7SFR Адрес:SFR страница:TMR2H: 0xCD; TMR 3H: 0xCD; TMR 4H: 0xCDTMR 2H: стр.0; TMR 3H: стр.1; TMR 4H: стр.2Биты 7-0: TMRnH: Старший байт Таймера n.Регистр TMRnH содержит старший байт 16-разрядного Таймера n.Ред. 1.3288C8051F040/1/2/324. ПРОГРАММИРУЕМЫЙ МАССИВ СЧЕТЧИКОВПрограммируемый массив счетчиков (ПМС) реализует расширенные таймерные функции, при этомтребует меньшего вмешательства со стороны процессорного ядра, чем стандартные таймеры/счетчикиархитектуры 8051. ПМС состоит из специального 16-разрядного таймера/счетчика и шести 16-разрядныхмодулей захват/сравнение. Каждый модуль захват/сравнение имеет свою собственную линию ввода/вывода(CEXn), которая через матрицу соединяется, если разрешено, с портом ввода/вывода (подробная информация онастройке матрицы приведена в разделе 17.1).
Таймер/счетчик тактируется программируемым внутреннимсигналом, в качестве которого могут использоваться:- внутренний сигнал с частотой, равной системной тактовой частоте;- внутренний сигнал с частотой, равной 1/4 системной тактовой частоты;- внутренний сигнал с частотой, равной 1/12 системной тактовой частоты;- сигнал от внешнего генератора, деленный по частоте на 8;- переполнение Таймера 0;- входной сигнал на внешнем выводе ECI.Каждый модуль захвата/сравнения можно независимо настроить для работы в одном из шести режимов:инициируемый по фронту сигнала захват, программный таймер, высокоскоростной выход, выход заданнойчастоты, 8-разрядный широтно-импульсный модулятор и 16-разрядный широтно-импульсный модулятор(описание каждого режима приведено в разделе 24.2).
Для управления модулем ПМС и его настройкииспользуются связанные с ним SFR регистры. Структурная схема модуля ПМС показана на рис.24.1.Рисунок 24.1. Структурная схема ПМСSYSCLK/4Переполнение Таймера 0ECISYSCLKВнешний тактовый сигнал/8МодульЗахват/сравнение 0Мультиплексортактовыхимпульсов ПМСSYSCLK/12МодульЗахват/сравнение 116-разрядныйтаймер-счетчикМодульЗахват/сравнение 2МодульЗахват/сравнение 3289Ред. 1.3МодульЗахват/сравнение 5CEX5ПортВвода/выводаCEX4CEX3CEX2CEX1CEX0ECIКоммутирующая матрицаМодульЗахват/сравнение 4C8051F040/1/2/324.1. Таймер/счетчик модуля ПМС16-разрядный таймер/счетчик модуля ПМС состоит из двух 8-разрядных SFR регистров: PCA0L иPCA0H. PCA0H является старшим байтом (СЗБ) 16-разрядного таймера/счетчика, а PCA0L образует младшийбайт (МЗБ).
При чтении регистра PCA0L значение регистра PCA0H автоматически фиксируется в регистрезащелке; последующее чтение регистра PCA0H возвратит данные именно из этого регистра-защелки. Такимобразом, для обеспечения точности считывания полного 16-разрядного значения таймера/счетчика ПМСнеобходимо сначала прочитать регистр PCA0L, а затем регистр PCA0H. Чтение регистров PCA0H или PCA0Lне препятствует функционированию счетчика. Выбор внутреннего сигнала тактирования таймера/счетчикаосуществляется битами CPS2 - CPS0 регистра PCA0MD, как показано в табл.24.1. Следует иметь ввиду, чтоесли для тактирования таймера/счетчика ПМС используется сигнал от внешнего генератора, деленныйпо частоте на 8, то этот сигнал синхронизируется с системным тактовым сигналом и поэтому не долженпревышать его по частоте.При переполнении таймера/счетчика из состояния 0xFFFF в состояние 0x0000 устанавливается в 1 флагпереполнения счетчика (CF) в регистре PCA0MD и, если прерывание от флага CF разрешено, генерируетсязапрос прерывания.
Установка в 1 бита ECF в регистре PCA0MD разрешает генерацию запроса прерываний приустановке флага CF. Бит CF не сбрасывается аппаратно при переходе к процедуре обслуживания прерывания идолжен быть сброшен программно. Следует иметь ввиду, что прерывания от флага CF распознаются только втом случае, если прерывания от модуля ПМС разрешены глобально. Прерывания от ПМС разрешаютсяглобально установкой в 1 битов EA (IE.7) и EPCA0 (EIE1.3). Сброс в 0 бита CIDL регистра PCA0MD позволяетПМС продолжать нормальное функционирование в то время, когда МК переведен в режим ожидания.Таблица 24.1.
Выбор тактового сигнала для ПМСВнутренний сигнал тактирования ПМСSYSCLK/12SYSCLK/4Переполнение Таймера 0Срез (переход из 1 в 0) входного сигнала на внешнем выводе ECI**011(макс. частота = SYSCLK/4)100SYSCLK101Сигнал от внешнего генератора, деленный по частоте на 8** Сигнал от внешнего генератора, деленный по частоте на 8, синхронизируется с системным тактовымсигналом** Минимальная длительность удержания высокого или низкого уровней сигнала на входе ECIсоставляет 2 системных тактовых цикла.CPS2000CPS1001CPS0010Рисунок 24.2.
Структурная схема таймера/счетчика модуля ПМСПРОСТОЙ (ОЖИДАНИЕ)PCA0MDCWWI D DD T LL E CKCPS2CPS1CEPCS F0PCA0CNCCCFRCF5CCF4CCF3CCF2CCF1CCF0К SFR шинеЧтениеPCA0LРегистрзащелкаSYSCLK/12SYSCLK/4Переполнение Таймера 0ECISYSCLKВнешний такт. сигнал/800000101000111PCA0HPCA0LПереполнение К блоку прерываниймодуля ПМСCF100101К модулям захват/сравнение ПМСРед. 1.3290C8051F040/1/2/324.2. Модули захвата/сравненияКаждый модуль можно независимо настроить для работы в одном из шести режимов: инициируемыйпо фронту сигнала захват, программный таймер, высокоскоростной выход, выход заданной частоты, 8разрядный широтно-импульсный модулятор и 16-разрядный широтно-импульсный модулятор. Каждый модульимеет связанные с ним регистры специального назначения, которые используются для обмена данными смодулем и для настройки режимов работы.В табл.24.2 приведены комбинации бит в регистрах PCA0CPMn, используемые для перевода модулейзахват/сравнение в различные режимы работы.
Установка в 1 бит ECCFn в регистрах PCA0CPMn разрешаетгенерацию прерываний при установке в 1 флагов CCFn регистра PCA0CN. Следует иметь ввиду, чтоиндивидуальные CCFn прерывания распознаются только в том случае, если прерывания от модуля ПМСразрешены глобально. Прерывания от ПМС разрешаются глобально установкой в 1 битов EA (IE.7) и EPCA0(EIE1.3). Схема формирования прерываний от модуля ПМС приведена на рис.24.3.Таблица 24.2. Настройка модулей захват/сравнение в регистре PCA0CPMPWM16ECOMCAPPCAPNMATTOGPWMECCFхх10000ххх01000ххх11000хххх111000000110011001ххх0100001011000010Operation ModeЗахват инициируется положительнымфронтом сигнала на линии CEXnЗахват инициируется отрицательнымфронтом сигнала на линии CEXnЗахват инициируется изменениемсигнала на линии CEXnПрограммный таймерВысокоскоростной выходВыход заданной частоты8-разр.
широтно-импульсныймодулятор16-разр. широтно-импульсныймодуляторх = не имеет значенияРисунок 24.3. Схема формирования прерывания от ПМС(для n = 0 … 5)PCA0CPMnP ECWCAMOP1 MP6 n nnCMT P EA AOWCP TGMCN n n n FnnPCA0MDPCA0CNCCCFRCF5CCF4CCF3CCF2CCF1CCF0CIDLCPS2CPS1CEPCS F0Переполнениетаймера/счетчикаПМС01ECCF0EPCA0(EIE.3)0ПМС модуль 0CCF01ECCF10ПМС модуль 1CCF11ECCF20ПМС модуль 2CCF21ECCF30ПМС модуль 3CCF31ECCF40ПМС модуль 4CCF41ECCF5ПМС модуль 5CCF529101Ред. 1.3EA(IE.7)0011ДекодерприоритетовпрерыванийC8051F040/1/2/324.2.1. Режим захвата по фронту сигналаВ этом режиме активный фронт сигнала на внешнем выводе CEXn приведет к захвату значениятаймера/счетчика ПМС и загрузке его в 16-разрядный регистр захвата/сравнения (PCA0CPLn и PCA0CPHn)соответствующего модуля.
Биты CAPPn и CAPNn регистра PCA0CPMn определяют, по какому фронту будетосуществляться захват: по положительному (переход из 0 в 1), по отрицательному (переход из 1 в 0) или полюбому фронту. Когда происходит захват, флаг захвата/сравнения (CCFn) в регистре PCA0CN устанавливаетсяв 1 и, если CCF прерывание разрешено, генерируется запрос прерывания.