14.8. Канал сравнения
Каждый канал сравнения непрерывно сравнивает значение счетчика (CNT) с регистром CCx. Если CNT равен CCx канал сравнения генерирует сигнал совпадения, что по окончании очередного цикла синхронизации таймера приведет к установке флага прерывания канала захвата-сравнения, а также генерации события и (опционально) прерывания.
Буферный регистр сравнения реализует механизм двойной буферизации, идентичный буферизации регистра периода. Двойная буферизация синхронизирует обновление регистра CCx значением из буфера, которое равно либо значению TOP, либо значению BOTTOM, в зависимости от состояния сигнала UPDATE, поступающего из блока логики управления таймера-счетчика. Синхронизация предотвращает генерацию несимметричных импульсов в режимах PWM и FRQ, тем самым, избавляясь от сбоев в форме генерируемых импульсов.
14.8.1. Генерация импульсов
Каналы сравнения можно использовать для генерации импульсов для соответствующем выводе порта. Чтобы генерируемый сигнал появился на выводе порта необходимо выполнить следующие требования:
- Выбрать режим генерации импульсов.
- Отключить действия событий.
- Разрешить работу используемого канала захвата-сравнения. Это приведет к перекрытию соответствующего вывода порта выходного регистра.
- Установить выходное направление соответствующего вывода порта.
При необходимости в настройках порта можно активизировать инвертирование на требуемой линии ввода-вывода.
14.8.2. Генерация частотных сигналов (FRQ)
В режиме генерации частотного сигнала (меандра) длительность периода (T) задается через регистр CCA (регистр PER не используется). Выход генерации импульсов (WG) изменяет свое состояние на противоположное при каждом совпадении между регистрами CNT и CCA, как показано на рисунке 14.12.
Рисунок 14.12. Генерация частотных импульсов (меандра)
Генерируемые импульсы имеют максимальную частоту, равную половине частоты синхронизации УВВ (fPER), когда в регистр CCA записано нулевое значение (0x0000). Точно так обстоят дела при использовании блока расширения Hi-Res, поскольку он увеличивает только разрешающую способность, а не частоту. Частота импульсов (fFRQ) определяется по выражению:
fFRQ = fPER/2N(CCA+1),
где N - используемая настройка предделителя (1, 2, 4, 8, 64, 256, 1024 или канал события n).
14.8.3. Генерация ШИМ сигнала в режиме PWM с однонаправленным счетом
В режиме PWM с однонаправленным счетом период (T) импульсов задается через регистр PER, а регистры CCx управляют заполнением импульсов на выходе WG. На рисунке 14.13 показано, как считчик следует от значения BOTTOM к TOP, а затем вновь перезапускается со значения BOTTOM. Выход генератора импульсов (WG) переходит в высокое состояние при совпадении между регистрами CNT и d CCx, и в низкое состояние при достижении счетчиком значения TOP.
Рисунок 14.13. Генерация импульсов в режиме PWM с однонаправленным счетом
От регистра PER зависит разрешающая способность ШИМ. Минимальная разрешающая способность - 2 бита (PER=0x0003), а максимальная - 16 бит (PER=MAX).
Для точного вычисления разрешающей способности в режиме PWM с однонаправленным счетом (RPWM_SS) можно использовать следующее выражение:
RPWM_SS = log(PER+1)/log(2)
Частота генерируемого сигнала в рассматриваемом режиме (fPWM_SS) зависит от настройки периода (PER) и частоты синхронизации УВВ (fPER), и может быть рассчитана по выражению:
fPWM_SS = fPER/N(PER+1),
где N - используемая настройка предделителя (1, 2, 4, 8, 64, 256, 1024 или канал события n).
14.8.4. Генерация ШИМ сигнала в режиме PWM с двунаправленным счетом
В режиме PWM с двунаправленным счетом период (T) задается через регистр PER, а регистры CCx управляют заполнением импульсов на выходе WG. На рисунке 14.14 показано, что в режиме PWM с двунаправленным счетом счетчик вначале следует от значения BOTTOM к TOP, а затем от TOP к BOTTOM и т.д. по циклу. Выход генератора импульсов переходит в высокое состояние при достижении значения BOTTOM или при совпадении на фазе обратного счета, и в низкое состояние при совпадении на фазе прямого счета.
Рисунок 14.14. Генерация импульсов в режиме PWM с двунаправленным счетом
Работа в режиме PWM с двунаправленным счетом приводит к снижению рабочей частоты по сравнению с режимом PWM с однонаправленным счетом.
Разрешающая способность ШИМ зависит от регистра периода (PER). Минимальная разрешающая способность - 2 бита (PER=0x0003), а максимальная - 16 бит (PER=MAX).
Вычислить разрешающую способность в режиме PWM с двунаправленным счетом (RPWM_DS) можно с помощью следующего выражения:
RPWM_DS = log(PER+1)/log(2)
Частота ШИМ зависит от настройки периода (PER) и частоты синхронизации УВВ (fPER), и может быть рассчитана по выражению:
fPWM_DS = fPER/2·N·PER,
где N - используемая настройка предделителя (1, 2, 4, 8, 64, 256, 1024 или канал события n).
14.8.5. Вывод сигналов генератора импульсов на линии порта
Чтобы сигналы генератора импульсов появились на линии порта ввода-вывода, их необходимо настроить, как выходы. Альтернативная функция линии порта ввода-вывода активизируется сразу после разрешения работы канала захвата-сравнения (CCENx) и выбора режима генерации импульсов.
На рисунке 14.15 демонстрируется перекрытие линий портов сигналами таймеров-счетчиков 0 и 1. У таймера-счетчика 0, каналы захвата-сравнения A…D своими выходными сигналами (OUTxn) перекрывают линии 0…3 соответствующего порта (Pxn). В свою очередь, у таймера-счетчика 1 каналы захвата-сравнения A и B своими выходными сигналами перекрывают линии 4 и 5. Если на линии порта активизировать функцию инвертирования (INVENxn), то это приведет к инвертированию выхода WG.
Рисунок 14.15. Перекрытие линий портов сигналами таймеров-счетчиков 0 и 1
|