Регистр режима счётчика РСА (CMOD)

Содержит биты выбора источника входного сигнала таймера/счётчика CPS1 и CPS0, бит разрешения прерывания по переполнению счётчикаECF, а также биты CIDL - отключения таймер/счётчика во время режима холостого хода и WDTE (Watchdog Timer Enable) - разрешение сторожевого таймера для модуля 4. На рис. 2.17 эти биты описаны более подробно. Байтный адрес данного регистра - 0D9h, значение по сбросу - 00ххх000b.

MSB LSB

CIDL WDTE - - - CPS1 CPS0 ECF
Бит Поз. Функция присвоения приоритета прерывания
CIDL CMOD.7 CIDL=0 – продолжение нормального фунгкционирования счётчика РСА во время режима Idle CIDL=1 - счёт во время режима Idle прекращается
WDTE CMOD.6 WDTE=0 - запрет функции "сторожевой таймер" РСА-модуля 4 WDTE=1 - разрешение функции "сторожевой таймер"
- CMOD.5 Зарезервировано для дальнейшего использования
- CMOD.4 Зарезервировано для дальнейшего использования
- CMOD.3 Зарезервировано для дальнейшего использования
CPS1 CMOD.2 Выбор источника тактирования РСА, ,бит 1
CPS0 CMOD.1 Выбор источника тактирования РСА, .бит 0
ECF CMOD.0 Разрешение прерывания по переполнению счётчика РСА: ECF=1 - установка бита CF регистра CCON разрешена ECF=0 - запрещена.

Рис. 2.17. Регистр режима РСА – CMOD

Регистр управления счётчика РСА (CON)

Этот регистр содержит 2 бита, связанные с таймером/счётчиком РСА. Бит CF - устанавливается аппаратно - по переполнению счётчика. Бит CR включает или выключает счётчик. Остальные 5 бит данного регистра - флаги событий модулей сравнения/фиксации РСА. На рис. 2.18 эти биты описаны более подробно. Байтный адрес данного регистра - 0D8h, значение по сбросу - 00х00000b.

MSB LSB

CF CR - CCF4 CCF3 CCF2 CCF1 CCF0
Бит Поз. Функция присвоения приоритета прерывания
CF CCON.7 Флаг переполнения счётчика РСА. Устанавл. аппаратно и вызывает прерывание в случае, если бит ECF регистра CMOD установлен в 1. Может устанавл. в 1 как аппаратно, так и программно, а очищаться - только программно.
CR CCON.6 Бит управления включением счётчика РСА: CR=1 - счётчик включён, CR=0 –выключен
- CCON.5 Зарезервировано для дальнейшего использования
CCF4 CCON.4 Флаг прерывания модуля 4 РСА. Устанавл. аппаратно по равенству и фиксации значения. Очищается программно.
CCF3 CCON.3 Флаг прерывания модуля 3 РСА
CCF2 CCON.2 Флаг прерывания модуля 2 РСА
CCF1 CCON.1 Флаг прерывания модуля 1 РСА
CCF0 CCON.0 Флаг прерывания модуля 0 РСА


Рис. 2.18. Регистр управления счетчика PCA2.6.4. Модули сравнения/фиксации.

· Каждый из 5 модулей сравнения/фиксации может быть запрограммирован на выполнение одной из 6-ти функций:

· 16-битная фиксация, запускаемая по положительному фронту;

· 16-битная фиксация, запускаемая по отрицательному фронту;

· 16-битная фиксация, запускаемая по положительному и отрицательному фронту;

· 16-битный программный таймер;

· 16-битный высокоскоростной выход;

· 8-битный широтно-импульсный модулятор.

Дополнительно модуль 4 может использоваться как сторожевой таймер. Все модули могут быть запрограммированы в любых комбинациях вышеперечисленных режимов. Каждый модуль имеет регистр режима, именуемый ССАРМn (где n=0,1,2,3,4) и используемый для выбора функции конкретного модуля. Структура данных регистров показана на рис. 2.19. Адрес регистров ССАРМ0-ССАРМ4 равен, соответственно, 0DAh- 0DEh, значение по сбросу – х0000000b.

Регистр управления РСА - CCON

MSB LSB

- ЕСОМn САРРn CAPNn МАТn TOGn PWMn ECCFn
Бит Поз. Функция присвоения приоритета прерывания
- ССАРМn.7 Зарезервирован для дальнейшего использования
ЕСОМn ССАРМn.6 ЕСОМn=1 разрешение компаратора (функции сравнения)
САРРn ССАРМn.5 САРРn=1 разрешает сравнение по положит. фронту
CAPNn ССАРМn.4 CAPNn=1 разрешает сравнение по отрицат. фронту
МАТn ССАРМn.3 Равенство. Когда МАТn=1, при равенстве счётчика РСА и соответствующего эегистра хранения/фиксации, устанавливается флаг прерывания CCF
TOGn ССАРМn.2 Переключение. При TOGn=1 равенство счётчика РСА и соответствующего регистра хранения/фиксации вызывает изменение уровня на соответствующем выводе СЕХп
PWMn ССАРМn.1 Режим широтно-импульсного модулятора. При PWM=1 происходит выдача модулированного сигнала на вывод СЕХn
ECCFn ССАРМn.0 Разрешение прерывания по флагу CCF. При ECCFn=1 разрешается генерация прерывания по флагу CCFn регистра CCON.

Рис. 2.19. Регистр управления PCA

Каждый модуль имеет пару байтных регистров сравнения/фиксации - ССАРnН (старший байт) и CCAPnL (младший байт). В данных регистрах происходит фиксация значения счётчика при наступлении события, соответствующего режиму работы модуля. В режиме "широтно-импульсного модулятора" (PWM) регистр ССАРпН управляет циклом выдачи импульсов. PCA имеет 5 режимов работы модулей (табл. 2.6).

Режимы работы модулей сравнения/фиксации

Таблица 2.6

- ЕCОМn CAPPn CAPNn МАТn TOGn PWMn ECCFn Функция модуля
х Операций нет
х Х Х 16-битная фиксация по положительному фронту СЕХn
х Х Х 16-битная фиксация по отрицательному фронту СЕХn
х X Х 16-битная фикцация по изменению состояния СЕХn
х Х 16-битный программный таймер
х Х 16-битный высокоскоростной выход
х 8-битовый широтно-имлульсный модулятор
х X Х сторожевой таймер

16-битный режим фиксации.

Фиксация содержимого РСА может происходить как по отрицательному, так и по положительному фронту (рис. 2.20), что делает РСА весьма гибким средством для измерения периодов, ширины импульсов, разности фаз и многого другого - сразу по 5-ти каналам. Установка битов CAPPn и/или CAPNn в соответствующем регистре ССАРМn влияет на выбор типа перепада (положительного или отрицательного) сигнала на входе СЕХ0n, по которому происходит фиксация значения счётчика. При определении на вышеуказанном выводе модуля РСА заданного перепада (отрицательного, положительного, либо и того и другого), 16-битное значение счётчика РСА (регистры CH/CL) аппаратно загружается в регистр хранения/фиксации CCAPnH/CCAPnL. Оно отражает состояние таймера/счётчика РСА в момент перепада.

Регистр режима счётчика РСА (CMOD) - student2.ru

Рис. 2.20. 16-битный режим фиксации РСА

После фиксации значения таймера в регистре происходит установка флага события модуля CCFn. Если установлен бит ECCFn регистра ССАРМn, то данный флаг может использоваться для генерации прерывания от РСА (если разрешено регистром IЕ). Произошедшее прерывание не очищает данный флаг, это должно делаться программно. В процессе обработки прерывания по фиксации значения, оно, естественно, должно быть сохранено в ОЗУ до прихода следующего момента "фиксации".

Режим 16-битного программного таймера

В режиме сравнения 16-битное значение таймера РСА сравнивается с 16-битным значением, предварительно загруженным в регистры хранения/фиксации ССАРnН и CCAPnL. Это сравнение производится 3 раза за машинный цикл (с частотой, эквивалентной максимальной входной, т.е 1/4 частоты тактового генератора). Данная функция включается установкой бита ЕСОМn в регистре режима. Функциональная схема работы модуля РСА в этом режиме изображена на рис. 2.21.

Для режима программного таймера необходимо также установить и бит МАТn. При достижении равенства между таймером РСА и соответствующими регистрами CCAPnH/CCAPnL генерируется флаг события CCFn. При установлении флага прерывания ECCFn производится генерация прерывания от РСА. Флаг CCFn должен очищаться программно до возможного наступления следующего активного события.

Во время процедуры обработки прерывания в регистры CCAPnH/CCAPnL могут быть записаны новые значения. Отметим, однако, что запись нового значения в регистр CCAPnL очищает бит ЕСОМn, временно запрещая функцию сравнения с целью недопущения неверного результата сравнения при обновлении этого регистра. Запись значения снова устанавливает данный бит и разрешает сравнение. На основании вышесказанного, пользовательское программное обеспечение должно вначале производить запись в регистр CCAPnL, а затем - в ССАРnН.

Регистр режима счётчика РСА (CMOD) - student2.ru

Рис. 2.21. 16-битный режим сравнения: программный таймер и высокоскоростной выход

Высокоскоростной выход - HSO

В случае равенства значений таймера РСА и соответствующего регистра хранения/фиксации происходит изменение состояния СЕХn. Для переключения модуля в этот режим, помимо битов МАТn и ЕСОМn, должен быть установлен бит TOGn (Рис. 27). Как и в предыдущем режиме установка флага прерывания может быть разрешена установкой в "1" бита ECCFn. Инициирование прерывания происходит только после изменения состояния вывода СЕХn. Поэтому продолжительность выполнения процедуры обработки прерывания не влияет на точность выходного сигнала. Если пользовательская программа не изменяла значение регистров CCAPnH/CCAPnL во время обработки прерывания новое переключение произойдет после переполнения таймера РСА и достижения нового равенства со старым значением регистров хранения/фиксации.

Режим сторожевого таймера (рис. 2.22)

Сторожевой таймер предназначен для автоматического сброса системы в случае, если она не производит регулярных обращений к нему с целью изменения его значения. Эта функция применяется в программах, функционирующих в условиях электрических помех, электростатических наводок и требующих повышенной надёжности работы микроконтроллера. Данный режим доступен лишь для модуля 4. В этом режиме каждый раз, когда значения таймера РСА и регистра хранения/фиксации модуля 4 достигают равенства, генерируется сигнал внутреннего сброса процессора. Для включения режима WDT необходимо установить бит WDTE CMOD.6. Модуль 4 может быть сконфигурирован как программный таймер или HSO.

Когда сторожевой таймер достигает своего граничного значения, он сбрасывает микроконтроллер точно так же, как и сигнал аппаратного сброса, за исключением того, что вывод RST остаётся в состоянии логической "1".

Для недопущения сброса микроконтроллера требуется произвести одно из следующих 3-х действий:

периодически менять значение регистров хранения/фиксации модуля 4, чтобы оно не стало равно значению таймера РСА;

периодически изменять значение таймера РСА, чтобы оно не стало равно значению регистров хранения/фиксации модуля 4;

запретить WDT путём очистки бита WDTE непосредственно перед наступлением события равенства значений, а позже - вновь разрешить данную функцию.

Регистр режима счётчика РСА (CMOD) - student2.ru

Рис. 2.22. Режим сторожевого таймера

Первые 2 способа - предпочтительные по сравнению с 3-м способом. Второй способ не рекомендуется в том случае, если в работе используются остальные модули РСА (поскольку в этом случае для всех модулей существует единственный таймер, значение которого не должно изменяться произвольно). Таким образом, в большинстве случаев наиболее пригоден 1-й способ. В случае, когда режим WDT не используется, 4-й модуль может работать в любом другом режиме.

Широтно-импульсный модулятор — PWM (рис.2.23, рис.2.24)

Любой модуль РСА из 5-ти имеющихся может быть запрограммирован как "широтно-импульсный модулятор". Этот режим может использоваться для преобразования дискретного выходного значения в аналоговый сигнал посредством какого-либо внешнего преобразователя (например, интегрирующей цепи). Частота выходного сигнала зависит от частоты тактирования таймера/счётчика РСА, т.е., для тактовой частоты 16КГц, максимально возможная выходная частота составит 15.6 Кгц.

РСА генерирует частотно-модулированный сигнал путём сравнения младшего байта счётчика/таймера CL с младшим байтом соответствующего регистра фиксации/хранения CCAPnL (Рис.2-23). Когда CL меньше CCAPnL, выход СЕХn имеет низкий уровень; при CL большем или равном CCAPnL - выход СЕХn имеет высокий уровень. Таким образом, значение регистра CCAPnL управляет длительностью импульсов, поступающих на вход СЕХn. Для изменения значения CCAPnL "на лету", без сопровождающих это действие выбросов выходного сигнала, пользователь должен производить запись этого значения в регистр ССАРnН. Значение старшего байта регистра фиксации/хранения сдвигается в младший байт аппаратно в момент перехода значения счётчика/таймера из 0FFh в 00h - начала следующего периода выходного сигнала. Регистр ССАРnН может содержать любое значение от 0 до 255, что варьирует ширину отрицательного импульса от 100 до 0.4%.

Регистр режима счётчика РСА (CMOD) - student2.ru

Рис. 2.23. Регистр CCAOMn

Регистр режима счётчика РСА (CMOD) - student2.ru

Рис. 2.24. Режим широтно-импульсного модулятора

PCA1

Однако описываемая микросхема, содержит и второй набор РСА, аналогичный первому, названный РСА1. Отличия РСА1 от РСА заключаются в следующем:

· модуль 4 РСА1 не поддерживает сторожевой таймер;

· внешними выводами РСА1 являются ножки Р4.2-Р4.7 (все альтернативные функции портов микросхемы перечислены при описании её выводов);

· названия всех регистров РСА1 и их битов содержат символ "1" в своём имени;

· в регистре управления РСА1 СICON, в 5-й позиции имеется дополнительный бит CRE (битовый адрес 0EDh). При установке данного бита в "1", разрешение работы РСА1 происходит посредством совместной установки битов CR и CR 1.

Соответствие имён регистров и битов узлов РСА и РСА1

Наши рекомендации