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. Оно отражает состояние таймера/счётчика РСА в момент перепада.

Рис. 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Н.

Рис. 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 непосредственно перед наступлением события равенства значений, а позже - вновь разрешить данную функцию.

Рис. 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%.

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

Рис. 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

РСА РСА1
SFR-регистры
CCON С1CON
CMOD C1MOD
ССАРМ0 С1САРМ0
ССАРМ1 С1САРМ1
ССАРМ2 С1САРМ2
ССАРМЗ С1САРМЗ
ССАРМ4 С1САРМ4
CL CL1
CCAP0L C1CAP0L
CCAP1L C1CAP1L
CCAP2L C1CAP2L
CCAP3L C1CAP3L
CCAP4L C1CAP4L
СН СН1
ССАР0Н С1САР0Н
ССАР1Н С1САР1Н
ССАР2Н С1САР2Н
ССАРЗН С1САРЗН
ССАР4Н С1САР4Н
Биты
ECI ECI1
СЕХ0 С1ЕХ0
СЕХ1 С1ЕХ1
СЕХ2 С1ЕХ2
СЕХЗ С1ЕХЗ
СЕХ4 С1ЕХ4
CCF0 C1CF0
CCF1 C1CF1
CCF2 C1CF2
CCF3 C1CF3
CCF4 C1CF4
CR CR1
CF CF1







Дата добавления: 2015-10-09; просмотров: 875;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.013 сек.