2.6 Таймер/счетчик типа D
Таймер/счетчик типа D входит в состав периферийных устройств микроконтроллеров типа 2313 и 4433, и имеет имя Т/С1. Он содержит шестнадцатиразрядный базовый счетчик и выполняет функции захвата и сравнения/PWM, Структурная схема таймера/счетчика изображена на рисунке 2.7.
Рисунок 2.7 – Структурная схема таймера счетчика типа D
На счетный вход шестнадцатиразрядного базового счетчика TCNT1H, L с выхода схемы управления СУ1 может поступать тактовый сигнал микроконтроллера СК, или один из четырех сигналов из пересчетной схемы, которая является общей для таймеров/счетчиков Т/СО и Т/С1 рисунок, или сигнал из внешнего источника, принимаемый на вход Т1. В качестве входа Т1 используется вывод порта PD5. Выбор сигнала определяется комбинацией состояний разрядов CS10, CS11 и CS12 регистра управления TCCR1B в соответствии с таблицей 2.1 (X = 1, Т0 = Т1). При переполнении базового счетчика устанавливается в единичное состояние разряд TOV1 регистра TIFR и при единичном состоянии разряд TOIE1 регистра TIMSK в блок прерываний поступает запрос прерывания T/C1 OVF.
Схема управления СУ2 управляет выполнением функции захвата, которая заключается в передаче кода, сформированного в базовом счетчике, через ключевую схему КС в шестнадцатиразрядный регистр захвата ICR1H, L. При этом устанавливается в единичное состояние разряд ICF1 регистра TIFR и при единичном состоянии разряда TICIE1 регистра TMSK в блок прерываний поступает запрос прерывания Т/С1 СAPT.
Захват выполняется при изменении значения внешнего сигнала, поступающего на вход ICP, или внутреннего сигнала АСО, поступающего из аналогового компаратора. Выбор сигнала определяется состоянием разряда ACIC регистра ACSR, который входит в состав аналогового компаратора. При ACIC = 0 используется внешний сигнал, при ACIC = 1 – внутренний. Вид изменения сигнала, при котором выполняется захват, определяется состоянием разряда ICES1 регистра TCCR1B. При ICES1 = 0 захват выполняется при появлении отрицательного фронта сигнала, а при ICES1 = 1 – положительного фронта.
В качестве входа ICP у микроконтроллера типа 2313 используется вывод порта PD6, а у микроконтроллера типа 4433 – вывод порта РВО.
Разряд ICNC1 регистра TCCR1B управляет работой схемы подавления помех. При ICNC1 = 0 захват выполняется при каждом появлении фронта заданной полярности.
При ICNC1 = 1 захват происходит, если перед появлением фронта в течение четырех тактов сигнал сохраняет постоянное значение.
Схема управления СУ3 управляет выполнением функции сравнения/PWM. Функция сравнения заключается в выдаче определенного значения сигнала на выходе ОС1 при совпадении кодов в базовом счетчике и шестнадцатиразрядном регистре сравнения OCR1H, L, которое выявляется с помощью компаратора К. При этом также устанавливается в единичное состояние разряд OCF1A регистра TIFR и при единичном состоянии разряда OCIE1A регистра TIMSK в блок прерываний поступает запрос прерывания Т/С1 СОМР.
Функция PWM заключается в выдаче на выход ОС1 импульсного сигнала с заданным периодом повторения и заданной длительностью импульса. При этом также периодически формируется запрос прерывания Т/С1 СОМР.
Работа схемы СУЗ определяется комбинацией состояний разрядов PWM10, PWM11, СОМ1А0 и СОМ1А1 регистра управления TCCR1A. При нулевом состоянии всех четырех разрядов функция сравнения/PWM не выполняется и выход ОС1 отключен от вывода порта.
При PWM10 = 0, PWM11 = 0 и других комбинациях состояний разрядов СОМ1А0 и СОМ1А1 выполняется функция сравнения. Значение сигнала, устанавливаемое на выходе ОС1 при совпадении кодов, указано в таблице 2.5.
Таблица 2.5 – Значение сигнала, устанавливаемое на выходе ОС1
С0М1А1 | СОМ1А0 | Значение сигнала |
0 1 1 | 1 0 1 | Изменяется 0 1 |
При выполнении функции сравнения режим работы базового счетчика зависит от состояния разряда СТС1 регистра управления TCCR1B. При СТС1 = 1 базовый счетчик при совпадении кодов сбрасывается в нулевое состояние и продолжает счет, начиная с нуля. При СТС1 = 0 он продолжает счет до переполнения и далее ведет счет, начиная с нуля.
При единичном состоянии хотя бы одного из разрядов PWM10 и PWM11 и единичном состоянии разряда СОМ1А1 выполняется функция PWM. В этом случае базовый счетчик ведет счет на сложение до получения числа 255 или 511 или 1023, переходит в режим счета на вычитание, ведет счет на вычитание до получения числа 0 и вновь возвращается в режим счета па сложение. Выбор максимального числа (Nmах), до которого ведется счет на сложение, определяется комбинацией состояний разрядов PWM11 и PWM10 регистра управления TCCR1A в соответствии с таблицей 2.6.
Таблица 2.6 – Комбинации состояний разрядов PWM11 и PWM10 регистра управления TCCR1A
PWM11 | PWM10 | Nmax |
0 1 1 | 1 0 1 | 255 511 1023 |
Сигнал PWM формируется путем изменения значения сигнала на выходе ОС1 при совпадении кодов в базовом счетчике и регистре OCR1 в процессе счета на сложение и на вычитание. Вид изменения сигнала зависит от состояния разряда СОМ1А0. На рисунке 2.8 изображены графики изменения числа в базовом счетчике (TCNT1) и временные диаграммы сигнала PWM при разных состояниях разряда СОМ1А0.
Рисунок 2.8 – Графики изменения числа в базовом счетчике (TCNT1) и временные диаграммы сигнала PWM
Период сигнала PWM (T) зависит от максимального числа, до которого выполняется счет на сложение. При Nmax = 255 период в 510 раз больше периода следования импульсов на счетном входе базового счетчика. При Nmax = 511 и 1023 это отношение равно 1022 и 2046 соответственно.
Разряд СТС1 регистра TCCR1B в режиме PWM не используется. Запрос прерывания T/C1 OVF формируется при переходе базового счетчика от числа 0 к числу 1. При записи кода в регистр OCR1 код запоминается в регистре временного хранения. Перепись кода в регистр OCR1 выполняется при появлении в базовом счетчике максимального числа, что предотвращает появление в сигнале PWM импульса со случайной длительностью.
В качестве выхода ОС1 у микроконтроллера типа 2313 используется вывод порта РВЗ, а у микроконтроллера типа 4433 – вывод порта PB1 [2].
0 комментариев