КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Программируемый массив-счетчик РСА
Таймер 3 Таймер 3 — 16-битный таймер, который в SFR отображается двумя регистрами: TMR3L (младший байт) и TMR3H (старший байт). Таймер 3 работает от системных тактовых импульсов, деленных на 1 или 12, в зависимости от состояния бита ТЗМ в регистре TMR3CN. Таймер 3 всегда работает в режиме таймера с автозагрузкой из регистров TMR3RLL и TMR3RLH и не может работать в качестве счетчика. Он наиболее часто используется для перезапуска ADC или как тактовый генератор для интерфейса SMBus.
В дополнение к стандартным таймерам/счетчикам микроконтроллеры SiLabs имеют еще один оригинальный узел — программируемый массив-счетчик РСА (Programmable Counter/Timer Array). Он состоит из специализированного шестнадцатибитного таймера/счетчика с времязадающим узлом (TimeBase) и пятью модулями захвата/сравнения ССМ (Capture/Compare Module). Времязадающий узел (TimeBase) может подавать на вход РСА один из четырех тактовых сигналов: системную частоту тактирования, деленную на 12 или 4, сигнал с выхода переполнения таймера 0 или сигнал с внешнего счетного входа ECI (External Clock Input). Каждый из пяти модулей захвата/сравнения ССМ может быть запрограммирован на выполнение одной из четырех функций: переключаемая по фронту защелка, программный счетчик, высокоскоростной выход и широто-импульсный модулятор PWM (Pulse Width Modulator). Естественно, что внешний счетный вход и выходы модулей захвата/сравнения ССМ могут быть настроены с помощью CrossBar на необходимые выводы портов ввода/ вывода или заданы как источник прерывания. Кроме того, в некоторых из микроконтроллеров на базе расширенного РСА может быть реализован таймер реального времени RTC (Real Time Clock). Структурная схема обычного программируемого массива-счетчика показана на рис. 8.4, а его функциональная схема — на рис. 8.5. Рассмотрим подробнее основные четыре режима работы модулей ССМ.
Рис. 8.4. Программируемый массив-счетчик Рис. 8.5. Функциональная схема программируемого массива-счетчика Режим переключений по фронту (Edge-triggered Capture Mode) На рис. 8.6 показана функциональная схема, поясняющая функционирование РСА в этом режиме. В этом случае вывод СЕХп является входом. Он может быть настроен установкой битов САРРп и CAPNn в регистре РСАОСРМп на восприятие как переднего фронта импульса (перепада из низкого в высокий уровень), так и заднего фронта импульса (перепада из высокого в низкий уровень) или для работы по обоим фронтам. При приходе запрограммированного фронта в регистре PCAOCN устанавливается соответствующий флаг CCFn и вырабатывается соответствующее прерывание, если оно разрешено. Одновременно значение счетчика (содержимое регистров PCA0L и РСА0Н) перезаписывается в регистры PCA0CPLn и РСА0СРНп. Флаг CCFn автоматически аппаратно не сбрасывается и должен быть очищен программой.
Рис. 8.6. Режим переключений РСА по фронту Режим программного счетчика (Software Timer (Compare) Mode) В этом режиме (рис. 8.7) происходит сравнение шестнадцатибитных величин счетчика РСА (регистры PCA0L и РСА0Н) и регистров PCA0CPLn и РСА0СРНn. При совпадении кодов регистре PCA0CN устанавливается соответствующий флаг CCFn и вырабатывается соответствующее прерывание, если оно разрешено. Флаг CCFn автоматически аппаратно не сбрасывается, и должен быть очищен программой. Режим разрешается установкой битов ЕС0Мn и МАТn в регистре РСА0СРМn. Рис. 8.7. Режим программного счетчика РСА Режим высокоскоростного выхода (High Speed Output Mode) В этом режиме (рис. 8.8) сравниваются состояния счетчика РСА и регистров РСА0СРНп и PCA0CPLn. В момент совпадения происходит установка встроенного триггера, сброс которого происходит по переполнению младшего байта счетчика РСА. Режим настраивается установкой битов TOGn, MATn и ЕСОМn в регистре РСАОСРМn. Рис. 8.8. Режим высокоскоростного выхода Режим широтно-импульсного модулятора (Pulse Width Modulator Mode) Функциональная схема, поясняющая работу в этом режиме, показана на рис. 8.9. Все модули могут независимо использоваться для формирования PWM сигналов и вывода их на соответствующие вывода СЕХп. Очевидно, что выходная частота зависит от заданного источника входных импульсов, выбираемых в узле TimeBase. Параметры выходного сигнала определяются настройкой регистра PCA0CPLn. Если код младшего байта PCA0L счетчика РСА равен величине PCA0CPLn, соответствующий выход СЕХп устанавливается в состояние логической единицы. При переполнении байта PCA0L выход СЕХп будет сброшен, а его значение (байта PCA0L) изменится с 0xFF на 0x00. Кроме того, значение регистра PCA0CPLn будет аппаратно перезагружено из РСА0СРНn. Рис. 8.9. Режим широтно-импульсного модулятора Как уже отмечалось выше, шестнадцатибитный таймер/счетчик РСА состоит из двух восьмибитных регистров SFRs: PCA0L и РСА0Н. Регистр РСА0Н — старший (MSB), а регистр PCA0L — младший байт (LSB). Чтение регистра PCA0L автоматически защелкивает содержимое регистра РСА0Н для последующего чтения. Чтение этих регистров не нарушает ход текущей операции. Биты CPS1 и CPS0 регистра PCA0MD выбирают режим timebase, как показано в табл. 8.4. Таблица 8.4
Когда таймер/счетчик РСА переполняется, т. е. переходит из состояния 0xFFFF в 0x0000, флаг переполнения счетчика CF (Counter Overflow Flag) в регистре PCA0MD устанавливается в лог. 1 и генерируется соответствующее прерывание CF, если оно разрешено. Установка в 1 бита ECF в регистре PCA0MD разрешает генерацию CF прерывания при установке соответствующего флага. Бит CF не стирается аппаратно (автоматически) и должен быть очищен программно. Конечно, глобальные прерывания PCA0 должны быть разрешены (бит IE. 7 в регистре ЕА и бит EPCA0 в регистре EIE1 должны быть установлены) для генерации прерывания CF. Очистка бита CIDL в регистре PCA0MD разрешает продолжение функционирования РСА при переходе ядра в Idle режим энергосбережения.
Дата добавления: 2014-01-07; Просмотров: 800; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |