F60-67 (1041605), страница 56
Текст из файла (страница 56)
1.2C8051F060/1/2/3/4/5/6/7Рисунок 24.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.2302C8051F060/1/2/3/4/5/6/725. ПРОГРАММИРУЕМЫЙ МАССИВ СЧЕТЧИКОВПрограммируемый массив счетчиков (ПМС) реализует расширенные таймерные функции, при этомтребует меньшего вмешательства со стороны процессорного ядра, чем стандартные таймеры/счетчикиархитектуры 8051. ПМС состоит из специального 16-разрядного таймера/счетчика и шести 16-разрядныхмодулей захват/сравнение.
Каждый модуль захват/сравнение имеет свою собственную линию ввода/вывода(CEXn), которая через матрицу соединяется, если разрешено, с портом ввода/вывода (подробная информация онастройке матрицы приведена в разделе 18.1). Таймер/счетчик тактируется программируемым внутреннимсигналом, в качестве которого могут использоваться:- внутренний сигнал с частотой, равной системной тактовой частоте;- внутренний сигнал с частотой, равной 1/4 системной тактовой частоты;- внутренний сигнал с частотой, равной 1/12 системной тактовой частоты;- сигнал от внешнего генератора, деленный по частоте на 8;- переполнение Таймера 0;- входной сигнал на внешнем выводе ECI.Каждый модуль захвата/сравнения можно независимо настроить для работы в одном из шести режимов:инициируемый по фронту сигнала захват, программный таймер, высокоскоростной выход, выход заданнойчастоты, 8-разрядный широтно-импульсный модулятор и 16-разрядный широтно-импульсный модулятор(описание каждого режима приведено в разделе 25.2).
Для управления модулем ПМС и его настройкииспользуются связанные с ним SFR регистры. Структурная схема модуля ПМС показана на рис.25.1.Рисунок 25.1. Структурная схема ПМСSYSCLK/4Переполнение Таймера 0ECISYSCLKВнешний тактовый сигнал/8МодульЗахват/сравнение 0Мультиплексортактовыхимпульсов ПМСSYSCLK/12МодульЗахват/сравнение 116-разрядныйтаймер-счетчикМодульЗахват/сравнение 2МодульЗахват/сравнение 3303Ред. 1.2МодульЗахват/сравнение 5CEX5ПортВвода/выводаCEX4CEX3CEX2CEX1CEX0ECIКоммутирующая матрицаМодульЗахват/сравнение 4C8051F060/1/2/3/4/5/6/725.1. Таймер/счетчик модуля ПМС16-разрядный таймер/счетчик модуля ПМС состоит из двух 8-разрядных SFR регистров: PCA0L иPCA0H.
PCA0H является старшим байтом (СЗБ) 16-разрядного таймера/счетчика, а PCA0L образует младшийбайт (МЗБ). При чтении регистра PCA0L значение регистра PCA0H автоматически фиксируется в регистрезащелке; последующее чтение регистра PCA0H возвратит данные именно из этого регистра-защелки.
Такимобразом, для обеспечения точности считывания полного 16-разрядного значения таймера/счетчика ПМСнеобходимо сначала прочитать регистр PCA0L, а затем регистр PCA0H. Чтение регистров PCA0H или PCA0Lне препятствует функционированию счетчика. Выбор внутреннего сигнала тактирования таймера/счетчикаосуществляется битами CPS2 - CPS0 регистра PCA0MD, как показано в табл.25.1.При переполнении таймера/счетчика из состояния 0xFFFF в состояние 0x0000 устанавливается в 1 флагпереполнения счетчика (CF) в регистре PCA0MD и, если прерывание от флага CF разрешено, генерируетсязапрос прерывания. Установка в 1 бита ECF в регистре PCA0MD разрешает генерацию запроса прерываний приустановке флага CF.
Бит CF не сбрасывается аппаратно при переходе к процедуре обслуживания прерывания идолжен быть сброшен программно. Следует иметь ввиду, что прерывания от флага CF распознаются только втом случае, если прерывания от модуля ПМС разрешены глобально.
Прерывания от ПМС разрешаютсяглобально установкой в 1 битов EA (IE.7) и EPCA0 (EIE1.3). Сброс в 0 бита CIDL регистра PCA0MD позволяетПМС продолжать нормальное функционирование в то время, когда МК переведен в режим ожидания.Таблица 25.1. Выбор тактового сигнала для ПМСCPS2000CPS1001CPS0010011110001Внутренний сигнал тактирования ПМСSYSCLK/12SYSCLK/4Переполнение Таймера 0Срез (переход из 1 в 0) входного сигнала на внешнем выводе ECI(макс. частота = SYSCLK/4)SYSCLKСигнал от внешнего генератора, деленный по частоте на 8Рисунок 25.2.
Структурная схема таймера/счетчика модуля ПМСПРОСТОЙ (ОЖИДАНИЕ)PCA0MDCWWI D DD T LL E CKCPS2CPS1CEPCSF0PCA0CNCCCFRCF5CCF4CCF3CCF2CCF1CCF0К SFR шинеЧтениеPCA0LРегистрзащелкаSYSCLK/12SYSCLK/4Переполнение Таймера 0ECISYSCLKВнешний такт. сигнал/800000101000111PCA0HPCA0LПереполнение К блоку прерываниймодуля ПМСCF100101К модулям захват/сравнение ПМСРед.
1.2304C8051F060/1/2/3/4/5/6/725.2. Модули захвата/сравненияКаждый модуль можно независимо настроить для работы в одном из шести режимов: инициируемыйпо фронту сигнала захват, программный таймер, высокоскоростной выход, выход заданной частоты, 8разрядный широтно-импульсный модулятор и 16-разрядный широтно-импульсный модулятор. Каждый модульимеет связанные с ним регистры специального назначения, которые используются для обмена данными смодулем и для настройки режимов работы.В табл.25.2 приведены комбинации бит в регистрах PCA0CPMn, используемые для перевода модулейзахват/сравнение в различные режимы работы.
Установка в 1 бит ECCFn в регистрах PCA0CPMn разрешаетгенерацию прерываний при установке в 1 флагов CCFn регистра PCA0CN. Следует иметь ввиду, чтоиндивидуальные CCFn прерывания распознаются только в том случае, если прерывания от модуля ПМСразрешены глобально. Прерывания от ПМС разрешаются глобально установкой в 1 битов EA (IE.7) и EPCA0(EIE1.3). Схема формирования прерываний от модуля ПМС приведена на рис.25.3.Таблица 25.2. Настройка модулей захват/сравнение в регистре PCA0CPMPWM16ECOMCAPPCAPNMATTOGPWMECCFхх10000ххх01000ххх11000хххх111000000110011001ххх0100001011000010Operation ModeЗахват инициируется положительнымфронтом сигнала на линии CEXnЗахват инициируется отрицательнымфронтом сигнала на линии CEXnЗахват инициируется изменениемсигнала на линии CEXnПрограммный таймерВысокоскоростной выходВыход заданной частоты8-разр. широтно-импульсныймодулятор16-разр.
широтно-импульсныймодуляторх = не имеет значенияРисунок 25.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ПМС модуль 5CCF530501Ред. 1.2EA(IE.7)0011ДекодерприоритетовпрерыванийC8051F060/1/2/3/4/5/6/725.2.1. Режим захвата по фронту сигналаВ этом режиме активный фронт сигнала на внешнем выводе CEXn приведет к захвату значениятаймера/счетчика ПМС и загрузке его в 16-разрядный регистр захвата/сравнения (PCA0CPLn и PCA0CPHn)соответствующего модуля.
Биты CAPPn и CAPNn регистра PCA0CPMn определяют, по какому фронту будетосуществляться захват: по положительному (переход из 0 в 1), по отрицательному (переход из 1 в 0) или полюбому фронту. Когда происходит захват, флаг захвата/сравнения (CCFn) в регистре PCA0CN устанавливаетсяв 1 и, если CCF прерывание разрешено, генерируется запрос прерывания. Бит CCFn не сбрасывается аппаратнопри переходе к процедуре обслуживания прерывания и должен быть сброшен программно.Примечание: Минимальная длительность удержания высокого или низкого уровней сигнала на входе CEXnсоставляет 2 системных тактовых цикла, что необходимо для обеспечения правильного функционированиямодуля ПМС.Рисунок 25.4.
Структурная схема ПМС в режиме захватаПрерывание отмодуля ПМСPCA0CNCCCCCCCCFRCCCCCCFFFFFF5 4 3 2 1 0(к CCFn)PCA0CPMnP ECCMT P EWC A A AOWCMOPP TGMC1 MP N n n n F6 n n nnn0Портввода/выводаМатрицаCEXn1PCA0CPLnPCA0CPHnЗахват01Сигналтактированиямодуля ПМСPCA0LPCA0HПримечание: Сигнал CEXn должен удерживаться на высоком или низком уровне в течение не менее 2системных тактовых циклов.Ред. 1.2306C8051F060/1/2/3/4/5/6/725.2.2. Режим программного таймера (сравнения)В режиме программного таймера значение таймера/счетчика ПМС сравнивается со значением 16разрядного регистра захвата/сравнения (PCA0CPHn и PCA0CPLn) соответствующего модуля. Когдапроисходит совпадение, флаг захвата/сравнения (CCFn) в регистре PCA0CN устанавливается в 1 и, если CCFпрерывание разрешено, генерируется запрос прерывания.
Бит CCFn не сбрасывается аппаратно при переходе кпроцедуре обслуживания прерывания и должен быть сброшен программно. Режим программного таймеравключается установкой в 1 битов ECOMn и MATn регистра PCA0CPMn.Примечание: при записи 16-разрядного значения в регистры захвата/сравнения всегда следует сначалазаписывать младший байт. Запись в регистр PCA0CPLn сбрасывает в 0 бит ECOMn; запись в регистрPCA0CPHn устанавливает в 1 бит ECOMn.Рисунок 25.5.
Структурная схема ПМС в режиме программного таймераЗапись вPCA0CPLnСброс0ENBПрерывание отмодуля ПМСЗапись вPCA0CPHnENB1PCA0CNPCA0CPMnP ECCMT P EWC A A AOWCMOPP TGMC1 MP N n n n Fn6 n n nnx0 0PCA0CPHn0 0 xВключениеСигналтактированиямодуля ПМС307PCA0CPLnCCCCCCCCFRCCCCCCFFFFFF5 4 3 2 1 016-разрядныйкомпараторPCA0LРед. 1.2PCA0HСовпадение01C8051F060/1/2/3/4/5/6/725.2.3. Режим высокоскоростного выходаВ этом режиме каждый раз, когда происходит совпадение значения таймера/счетчика ПМС и значения16-разрядного регистра захвата/сравнения (PCA0CPHn and PCA0CPLn), логический уровень выходного сигналана относящемся к модулю выводе CEXn будет инвертироваться. Режим высокоскоростного выхода включаетсяустановкой в 1 битов TOGn, MATn и ECOMn регистра PCA0CPMn.Примечание: при записи 16-разрядного значения в регистры захвата/сравнения всегда следует сначалазаписывать младший байт.