Данный флаг устанавливается следующим тактом после совпадения значения TCNT3 с регистром А порога сравнения (OCR3A).
Обратите внимание, что строб принудительной установки результата сравнения (FOC3A) не устанавливает флаг OCF3A. Флаг OCF3A автоматически сбрасывается при переходе на соответствующий вектор прерывания. Альтернативно, флаг OCF3A сбрасывается путем записи в него лог. 1.
Разряд 3 – OCF3B: Флаг результата сравнения канала B таймера-счетчика 3
Действует аналогично предыдущему, но в отношении канала В таймера-счетчика 3.
Разряд 2 – TOV3: Флаг переполнения таймера-счетчика 3
Установка данного флага зависит от значений бит WGM3:0. В нормальном режиме и режиме СТС флаг TOV3 устанавливается при переполнении таймера-счетчика. См. табл. 61 для изучения поведения флага TOV3 при задании других значений WGM3:0. Флаг TOV3 автоматически сбрасывается при переходе на вектор прерывания по переполнению таймера-счетчика 3. Альтернативно флаг TOV3 сбрасывается путем записи в него лог. 1.
Разряд 1 – OCF3C: Флаг результата сравнения канала С таймера-счетчика 3
Данный флаг устанавливается следующим тактом после совпадения значения TCNT3 с регистром С порога сравнения (OCR3С).
Обратите внимание, что строб принудительной установки результата сравнения (FOC3С) не устанавливает флаг OCF3С. Флаг OCF3С автоматически сбрасывается при переходе на соответствующий вектор прерывания. Альтернативно, флаг OCF3С сбрасывается путем записи в него лог. 1.
Разряд 0 – OCF1C: Флаг результата сравнения канала С таймера-счетчика 1
Действует аналогично предыдущему, но в отношении TCNT1 и канала С таймера 1.
Предделители таймеров-счетчиков 1, 2 и 3
Таймеры-счетчики 1, 2 и 3 используют один и тот же модуль предделителя, но могут использовать различные установки предварительного деления. Приведенное ниже описание распространяется на все упомянутые таймеры.
Внутренний тактовый источник
Тактовый вход таймера-счетчика может быть непосредственно связан с системной синхронизацией, если установить CSn2:0 = 1. В данном случае достигается максимально быстрая работа таймера-счетчика на системной частоте fCLK_I/O. Альтернативно четыре производных тактовых сигнала на выходе предделителя могут использоваться в качестве тактового источника. Поделенный тактовый сигнал имеет частоту fCLK_I/O/8, fCLK_I/O/64, fCLK_I/O/256 или fCLK_I/O/1024.
Сброс предделителя
Предделитель является самым простым нереверсивным счетчиком, т. е. работает независимо от логики выбора синхронизации таймера-счетчика и является общим для таймеров 1, 2 и 3. Поскольку логика выбора синхронизации не влияет на таймер-счетчик, то в случае использования предделителя его состояние будет неопределенным. Как пример можно привести неопределенность, которая возникает после разрешения работы таймера, тактируемого через предделитель с настройкой (6 > CSn2:0 > 1). Количество системных тактов с момента разрешения работы таймера до возникновения первого счетного импульса может быть от 1 до N+1, где N – коэффициент деления предделителя (8, 64, 256 или 1024).
Имеется возможность выполнить программный сброс предделителя для синхронизации его работы с таймером. Однако следует учитывать возможность негативного влияния на работу остальных таймеров, которые используют этот же предделитель. Внешний тактовый источник
Внешний сигнал, подключенный к выводу Tn, может использоваться как тактовый для таймеров-счетчиков (clkT1/clkT2/clkT3). Вывод Tn опрашивается каждый такт системной синхронизации логикой синхронизации данного вывода. Считанный таким образом сигнал проходит через детектор фронта. На рисунке 59 представлена функциональная схема синхронизации Tn и логики детектора фронта. Регистры тактируются положительным фронтом внутренней системной синхронизации (clkI/O). Детектор фронта генерирует один тактовый импульс clkT1/clkT2/clkT3 при определении положительного (CSn2:0 = 7) или отрицательного (CSn2:0 = 6) фронта.

Рисунок 59 – Функциональная схема синхронизатора и детектора фронта вывода Tn
Работа логики синхронизатора и детектора фронта связана с задержкой исходного фронта на выводе Tn на 2.5…3.5 такта системной синхронизации до появления счетного импульса.
Разрешение и запрет тактового входа необходимо выполнять, когда Tn находится в устойчивом состоянии в течение не менее одного такта системной синхронизации, иначе имеется риск генерации ложного тактового импульса синхронизации таймера-счетчика.
Для корректной работы логики преобразования каждый полупериод внешнего тактового сигнала должен быть больше одного периода системной синхронизации. Таким образом, внешний тактовый сигнал должен быть меандром (скважность 2) с частотой минимум вдвое меньшей системной (fExtClk < fclk_I/O/2). Т. к. детектор фронта использует преобразование, то максимальная частота, которую он может определить, равна половине частоты преобразования (теорема преобразования Найквиста). Однако, вследствие изменения частоты системной синхронизации и скважности, вызванных погрешностями тактового генератора (погрешности кварцевого резонатора, керамического резонатора или конденсаторов) рекомендуется, чтобы максимальная частота внешнего тактового сигнала была не более fclk_I/O/2.5.
Частота внешнего тактового сигнала не может быть поделена внутренним предделителем.

Рисунок 60 – Предделитель таймеров-счетчиков 1, 2 и 3
Прим.: логика синхронизации на входах T3/T2/T1 показана на рисунке 59.
Регистр специальных функций ввода-вывода – SFIOR
Разряд | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
TSM | - | - | - | ACME | PUD | PSR0 | PSR321 | SFIOR | |
Чтение/запись | Чт./Зп. | Чт. | Чт. | Чт. | Чт./Зп. | Чт./Зп. | Чт./Зп. | Чт./Зп. | |
Исх. значение | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Разряд 7 – TSM: Режим синхронизации таймеров-счетчиков
Запись в данный бит лог. 1 активизирует режим синхронизации таймеров-счетчиков. В этом режиме запоминаются значения, записанные в биты PSR0 и PSR321, следовательно, запоминаются состояния соответствующих сигналов сброса предделителей. Этим гарантируется, что все соответствующие таймеры будут остановлены и им можно присвоить одинаковые значения без опасности их модификации в процессе конфигурации. Если в бит TSM записать лог. 0, то биты PSR0 и PSR321 сбросятся аппаратно и таймеры-счетчики начнут счет одновременно.
Разряд 0 – PSR321: Сброс предделителя таймеров-счетчиков 1, 2 и 3
Если данный бит равен лог. 1, то предделитель таймеров-счетчиков 1, 2 и 3 будет сброшен. Данный бит обычно сразу сбрасывается аппаратно за исключением, когда установлен бит TSM. Обратите внимание, что таймеры-счетчики 1, 2 и 3 используют один и тот же предделитель и сброс этого предделителя оказывает влияние на все три таймера.
Модулятор выходов таймеров (OCM1C2)
Введение
Модулятор выходов таймеров (OCM) позволяет генерировать прямоугольные импульсы, промодулированные несущей частотой. Модулятор использует выходы канала сравнения С 16-разр. таймера-счетчика 1 и выход блока сравнения 8-разр. таймера-счетчика 2. Обратите внимание, что данная функция не поддерживается в режиме совместимости с ATmega103.
Если работа модулятора разрешена, то сигналы с выходов каналов сравнения объединяются в один в соответствии с рис. 72.

Рисунок 72. Принцип выполнения модуляции
Описание
Блоки сравнения 1C и 2 использует один и тот же вывод порта PB7 в качестве своего выхода. Выходы блоков сравнения (OC1C и OC2) блокируют обычную функцию регистра PORTB7 после разрешения работы одного из них (в т. ч., если COMnx1:0 не равны 0). После разрешения работы OC1C и OC2 автоматически разрешается работа модулятора.
Эквивалентная функциональная схема модулятора представлена на рисунке 73. Схема содержит часть блоков таймеров-счетчиков и схему выходного драйвера линии 7 порта B.

Рисунок 73. Эквивалентная функциональная схема модулятора выходов таймеров
После разрешения работы модулятора необходимо выбрать тип модуляции (лог. И или ИЛИ) с помощью регистра PORTB7. Обратите внимание, что DDRB7 управляет направлением независимо от установок бит COMnx1:0.
Пример временной диаграммы
Рисунок 74 иллюстрирует работу модулятора. В данном примере таймер-счетчик 1 настроен на работу в режиме быстрой ШИМ (без инверсии), а таймер-счетчик 2 генерирует импульсы в режиме СТС (сброс таймера при совпадении) с переключением выходного состояния выхода компаратора при совпадении (COMnx1:0 = 1).

Рисунок 74. Временная диаграмма работы модулятора
В данном примере таймер-счетчик 2 генерирует несущий сигнал, а модулирующий сигнал генерируется каналом С блока сравнения таймера-счетчика 1.
Разрешающая способность ШИМ-сигнала (OC1C) снижается за счет модуляции. Коэффициент снижения эквивалентен числу тактовых импульсов системной синхронизации в течение одного периода несущего сигнала (OC2). В данном примере разрешение снижено с коэффициентом 2. Причина снижения разрешения показана ни рисунке 74 во 2 и 3 периоде сигнала на выходе PB7, когда состояние PORTB7 равно нулю. Длительность единичного импульса 2-го периода (OC1C) на один такт дольше длительности единичного импульса 3-го периода, но форма сигнала на выводе PB7 одинакова на каждом из этих периодов.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |


