F18-19 (1041602), страница 31
Текст из файла (страница 31)
1.2138C8051F018C8051F01918.1.1. Режим захвата по фронту сигналаВ этом режиме активный фронт сигнала на внешнем выводе CEXn приведет к захвату значениятаймера/счетчика ПМС и загрузке его в 16-разрядный регистр захвата/сравнения (PCA0CPLn и PCA0CPHn)соответствующего модуля. Биты CAPPn и CAPNn регистра PCA0CPMn определяют, по какому фронту будетосуществляться захват: по положительному (переход из 0 в 1), по отрицательному (переход из 1 в 0) или полюбому фронту. Когда происходит захват, флаг захвата/сравнения (CCFn) в регистре PCA0CN устанавливаетсяв 1 и, если CCF прерывание разрешено, генерируется запрос прерывания.
Бит CCFn не сбрасывается аппаратнопри переходе к процедуре обслуживания прерывания и должен быть сброшен программно.Рисунок 18.3. Структурная схема ПМС в режиме захватаПрерывание отмодуля ПМСPCA0CPMnPCA0CNECCMT P EC A A A OWCOPP TGMCMP N n n n Fn n nnCCCCCCCCCCFF FFF4 3 2 1 00 0 0(к CCFn)0CCFR0Портввода/выводаМатрицаCEXn1PCA0CPLnPCA0CPHnЗахват01Сигналтактированиямодуля ПМС139Ред.
1.2PCA0LPCA0HC8051F018C8051F01918.1.2. режим программного таймера (сравнения)В режиме программного таймера значение таймера/счетчика ПМС сравнивается со значением 16разрядного регистра захвата/сравнения (PCA0CPHn and PCA0CPLn) соответствующего модуля. Когдапроисходит совпадение, флаг захвата/сравнения (CCFn) в регистре PCA0CN устанавливается в 1 и, если CCFпрерывание разрешено, генерируется запрос прерывания. Бит CCFn не сбрасывается аппаратно при переходе кпроцедуре обслуживания прерывания и должен быть сброшен программно. Режим программного таймеравключается установкой в 1 битов ECOMn и MATn регистра PCA0CPMn.Рисунок 18.4. Структурная схема ПМС в режиме программного таймераЗапись вPCA0CPLn0ENBСбросЗапись вPCA0CPHnПрерывание отмодуля ПМСENB1PCA0CPMnPCA0CNECCMT P EC A A A OWCOPP TGMCMP N n n n Fn n nn0 0PCA0CPLnCCFRPCA0CPHnCCCCCCCCCCFFFFF4 3 2 1 00 0 xВключениеСигналтактированиямодуля ПМСPCA0L0Совпадение16-разрядныйкомпаратор1PCA0H18.1.3.
Режим высокоскоростного выходаВ этом режиме каждый раз, когда происходит совпадение значения таймера/счетчика ПМС и значения16-разрядного регистра захвата/сравнения (PCA0CPHn and PCA0CPLn), логический уровень выходного сигналана относящемся к модулю выводе CEXn будет инвертироваться. Режим высокоскоростного выхода включаетсяустановкой в 1 битов TOGn, MATn и ECOMn регистра PCA0CPMn.Рисунок 18.5. Структурная схема ПМС в режиме высокоскоростного выходаЗапись вPCA0CPLn0ENBСбросЗапись вPCA0CPHnPCA0CPMnENBECCMT P EC A A A OWCOPP TGMCMP N n n n Fn n nn10 0Прерывание отмодуля ПМС0 xPCA0CNPCA0CPLnВключениеCCFRPCA0CPHn16-разрядныйкомпараторСовпадениеCCCCCCCCCCFFFFF4 3 2 1 001ИнвертированиеTOGn0Сигналтактированиямодуля ПМС1PCA0LPCA0HРед.
1.2CEXnМатрицаПортввода/вывода140C8051F018C8051F01918.1.4. Режим широтно-импульсного модулятораВсе модули захват/сравнение могут использоваться для генерации на соответствующем им выводеCEXn выходного сигнала с широтно-импульсной модуляцией (ШИМ). Частота этого выходного сигналазависит от частоты сигнала тактирования таймера/счетчика ПМС. Для изменения коэффициента заполнениявыходного ШИМ сигнала используется регистр захвата/сравнения PCA0CPLn соответствующего модуля. Когдазначение младшего байта таймера/счетчика ПМС (PCA0L) становится равным значению регистра PCA0CPLn,на внешнем выводе CEXn устанавливается сигнал высокого уровня.
Когда регистр PCA0L переполнится, навыводе CEXn установится сигнал низкого уровня (см. рис.18.6). Кроме этого, при переполнении младшегобайта таймера/счетчика (PCA0L) из состояния 0xFF в состояние 0x00 регистр PCA0CPLn автоматическиперезагружается значением, хранящимся в регистре PCA0CPHn, без вмешательства со стороны программы. Воизбежание сбоев в работе цифрового компаратора рекомендуется осуществлять запись в регистр PCA0CPHn, ане в регистр PCA0CPLn. Режим широтно-импульсного модулятора включается установкой в 1 бит ECOMn иPWMn регистра PCA0CPMn.Рисунок 18.6.
Структурная схема ПМС в режиме ШИМ.PCA0CPHnЗапись вPCA0CPLnСбросЗапись вPCA0CPHn0ENBPCA0CPMnENB1E CCMT P EC A A A OWCOPP TGMCMPN n n n Fn n nn0 0 x 0PCA0CPLnxВключениеСовпадение8-разрядныйкомпараторSRСигналтактированиямодуля ПМС141PCA0LРед. 1.2ПереполнениеSETCLRQQCEXnМатрицаПортввода/выводаC8051F018C8051F01918.2. Таймер/счетчик модуля ПМС16-разрядный таймер/счетчик модуля ПМС состоит из двух 8-разрядных SFR регистров: PCA0L иPCA0H. PCA0H является старшим байтом (СЗБ) 16-разрядного таймера/счетчика, а PCA0L образует младшийбайт (МЗБ). При чтении регистра PCA0L одновременно автоматически фиксируется значение регистра PCA0H.Таким образом, если сначала прочитать регистр PCA0L, то значение регистра PCA0H (соответствующеемоменту чтения регистра PCA0L) зафиксируется в регистре-защелке (см. рис.18.7) и будет удерживаться там дотех пор, пока пользователь не прочитает регистр PCA0H.
Чтение регистров PCA0H или PCA0L непрепятствует функционированию счетчика. Выбор внутреннего сигнала тактирования таймера/счетчикаосуществляется битами CPS1 и CPS0 регистра PCA0MD, как показано в табл.18.2.При переполнении таймера/счетчика из состояния 0xFFFF в состояние 0x0000 устанавливается в 1 флагпереполнения счетчика (CF) в регистре PCA0MD и, если прерывание от флага CF разрешено, генерируетсязапрос прерывания.
Бит CF не сбрасывается аппаратно при переходе к процедуре обслуживания прерывания идолжен быть сброшен программно. Следует иметь ввиду, что прерывания от флага CF распознаются только втом случае, если прерывания от модуля ПМС разрешены глобально. Прерывания от ПМС разрешаютсяглобально установкой в 1 битов EA (IE.7) и EPCA0 (EIE1.3). Сброс в 0 бита CIDL регистра PCA0MD позволяетПМС продолжать нормальное функционирование в то время, когда МК переведен в режим ожидания.Таблица 18.2.
Выбор тактового сигнала для ПМСCPS0001CPS101011Внутренний сигнал тактирования ПМСSYSCLK/12SYSCLK/4Переполнение Таймера 0Срез (переход из 1 в 0) входного сигнала на внешнем выводе ECI(макс. частота = SYSCLK/4)Рисунок 18.7. Структурная схема таймера/счетчика модуля ПМСПРОСТОЙ (ОЖИДАНИЕ)PCA0MDCIDLCCEPPCSSF1 0PCA0CNCCFRCCCCCCCCCCF FFF F4 3 2 1 0ЧтениеилизаписьPCA0LК SFR шинеРегистрзащелкаSYSCLK/12SYSCLK/400010101Переполнение Таймера 0ECIПереполнениеPCA0HPCA0LК блоку прерываниймодуля ПМСCF11К модулям захват/сравнение ПМСРед. 1.2142C8051F018C8051F01918.3.
Описание регистров модуля ПМСНиже приводится описание регистров специального назначения, связанных с работой модуля ПМС. Вразделе данного технического описания, посвященном ядру CIP-51, содержится дополнительная информация орегистрах SFR и их использовании.Рисунок 18.8. PCA0CN: Регистр управления ПМСЗначениепри сбросе:R/WCFR/WCRR/W-R/WCCF4R/WCCF3RCCF2R/WCCF1R/WCCF0Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2Бит 1Бит 0SFR Адрес:(доступен в битовомрежиме адресации)0xD800000000Бит 7: CF: Флаг переполнения Таймера/Счетчика ПМС.Устанавливается в 1 аппаратно, когда Таймер/Счетчик ПМС переполняется из состояния0xFFFF в состояние 0x0000. Если прерывание от Таймера/Счетчика ПМС (от флага CF)разрешено, то установка этого бита приведет к переходу на процедуру обслуживанияпрерывания от флага CF.
Этот бит не сбрасывается аппаратно и должен быть сброшенпрограммно.Бит 6: CR: Управление запуском Таймера/Счетчика ПМС.Этот бит включает/отключает Таймер/Счетчик ПМС.0: Таймер/Счетчик ПМС отключен.1: Таймер/Счетчик ПМС включен.Бит 5: Не используется. Читается как 0.Бит 4: CCF4: Флаг захвата/сравнения модуля 4 ПМС.Этот бит устанавливается в 1 аппаратно, если происходит захват или совпадение сравниваемыхзначений. Если прерывание от флага CCF разрешено, то установка этого бита приведет кпереходу на процедуру обслуживания прерывания от флага CCF.
Этот бит не сбрасываетсяаппаратно и должен быть сброшен программно.Бит 3: CCF3: Флаг захвата/сравнения модуля 3 ПМС.Этот бит устанавливается в 1 аппаратно, если происходит захват или совпадение сравниваемыхзначений. Если прерывание от флага CCF разрешено, то установка этого бита приведет кпереходу на процедуру обслуживания прерывания от флага CCF. Этот бит не сбрасываетсяаппаратно и должен быть сброшен программно.Бит 2: CCF2: Флаг захвата/сравнения модуля 2 ПМС.Этот бит устанавливается в 1 аппаратно, если происходит захват или совпадение сравниваемыхзначений.
Если прерывание от флага CCF разрешено, то установка этого бита приведет кпереходу на процедуру обслуживания прерывания от флага CCF. Этот бит не сбрасываетсяаппаратно и должен быть сброшен программно.Бит 1: CCF1: Флаг захвата/сравнения модуля 1 ПМС.Этот бит устанавливается в 1 аппаратно, если происходит захват или совпадение сравниваемыхзначений. Если прерывание от флага CCF разрешено, то установка этого бита приведет кпереходу на процедуру обслуживания прерывания от флага CCF.
Этот бит не сбрасываетсяаппаратно и должен быть сброшен программно.Бит 0: CCF0: Флаг захвата/сравнения модуля 0 ПМС.Этот бит устанавливается в 1 аппаратно, если происходит захват или совпадение сравниваемыхзначений. Если прерывание от флага CCF разрешено, то установка этого бита приведет кпереходу на процедуру обслуживания прерывания от флага CCF. Этот бит не сбрасываетсяаппаратно и должен быть сброшен программно.143Ред. 1.2C8051F018C8051F019Рисунок 18.9. PCA0MD: Регистр режима ПМСR/WCIDLR/W-R/W-R/W-R/W-R/WCPS1Бит 7Бит 6Бит 5Бит 4Бит 3Бит 2R/WCPS0R/WECFБит 1Бит 0Значениепри сбросе:00000000SFR Адрес:0xD9Бит 7: CIDL: Управление режимом простоя (ожидания) Таймера/Счетчика ПМС.Это бит определяет поведение ПМС в то время, когда МК находится в режиме простоя(ожидания).0: ПМС продолжает нормально функционировать в то время, когда МК находится в режимепростоя (ожидания).1: Работа ПМС приостанавливается в то время, когда МК находится в режиме простоя(ожидания).Биты 6-3: Не используются.
Читаются как 0000b.Биты 2-1: CPS1-CPS0: Выбор сигнала тактирования Таймера/Счетчика ПМС.Эти биты определяют, какой сигнал будет использоваться для тактирования Таймера/СчетчикаПМС.CPS0001CPS101011Внутренний сигнал тактирования ПМСSYSCLK/12SYSCLK/4Переполнение Таймера 0Срез (переход из 1 в 0) входного сигнала на внешнем выводе ECI(макс. частота = SYSCLK/4)Бит 0: ECF: Разрешение прерываний от переполнения Таймера/Счетчика ПМС.Этот бит разрешает/запрещает прерывания от переполнения Таймера/Счетчика ПМС (от флага CF ).0: Прерывания от флага CF (PCA0CN.7) запрещены.1: Прерывания от флага CF (PCA0CN.7) разрешены.Ред.
1.2144C8051F018C8051F019Рисунок 18.10. PCA0CPMn: Регистры управления модулями захват/сравнениеR/WБит 7R/WECOMnR/WCAPPnR/WCAPNnR/WMATnБит 6Бит 5Бит 4Бит 3R/WTOGnR/WPWMnБит 2Бит 1R/WECCFnБит 0Значениепри сбросе:00000000SFR Адрес:0xDA-0xDEАдреса регистров PCA0CPMn: PCA0CPM0 = 0xDA (n = 0)PCA0CPM1 = 0xDB (n = 1)PCA0CPM2 = 0xDC (n = 2)PCA0CPM3 = 0xDD (n = 3)PCA0CPM4 = 0xDE (n = 4)Бит 7: Не используется. Читается как 0.Бит 6: ECOMn: Разрешение функции компаратора.Этот бит включает/отключает функцию компаратора модуля n ПМС.0: Компаратор отключен.1: Компаратор включен.Бит 5: CAPPn: Разрешение функции захвата по положительному фронту.Этот бит разрешает/запрещает захват по положительному фронту для модуля n ПМС.0: Захват по положительному фронту запрещен.1: Захват по положительному фронту разрешен.Бит 4: CAPNn: Разрешение функции захвата по отрицательному фронту.Этот бит разрешает/запрещает захват по отрицательному фронту для модуля n ПМС.0: Захват по отрицательному фронту запрещен.1: Захват по отрицательному фронту разрешен.Бит 3: MATn: Разрешение функции определения совпадения.Этот бит включает/отключает функцию определения совпадения для модуля n ПМС.
ЕслиMATn = 1, то совпадение значения счетчика ПМС со значением регистра захвата/сравнениясоответствующего модуля приведет к установке в 1 бита CCFn в регистре PCA0MD.0: Функция определения совпадения отключена.1: Функция определения совпадения включена.Бит 2: TOGn: Разрешение функции инвертирования выхода.Этот бит включает/отключает функцию инвертирования выходного сигнала для модуля n ПМС.Если TOGn = 1, то совпадение значения счетчика ПМС со значением регистра захвата/сравнениясоответствующего модуля приведет к инвертированию логического уровня выходного сигналана внешнем выводе CEXn.0: Функция инвертирования выхода отключена.1: Функция инвертирования выхода включена.Бит 1: PWMn: Включение режима ШИМ.Этот бит включает/отключает функцию ШИМ для модуля n ПМС.