Смекни!
smekni.com

Разработка информационно-обучающей программы "Таймеры/счетчики и АЦП микроконтроллеров семейства AVR" (стр. 3 из 6)

Таблица 2.3 – комбинации состояний разрядов CS13, CS12, CS11 и CS10

CS13 CS12 CS11 CS10 Сигнал
0 0 0 0 0 0 0 01 1 1 1 1 1 1 1 0 0 0 01 1 1 10 0 0 011 1 1 0 01 10 01 10 0110 01 1 0101010101010101 нетРСК(16СК)РСК/2 (8 СК)РСК/4 (4 СК)РСК/8 (2 СК) РСК/16(СК)СК/2СК/4С К/8СК/16СК/32СК/64СК/128СК/256СК/512СК/1024

В состав таймера/счетчика входят два регистра сравнения – OCR10 и OCR11. Регистр OCR10 используются при выполнении функции сравнения. Регистр OCR11 используется совместно с регистром OCR10 при выполнении функции PWM. Базовый счетчик работает в режиме счета на сложение и ведет счет от 0 до числа, код которого записан в регистре OCR11. Графики изменения числа в базовом счетчике и временные диаграммы сигнала PWM изображены на рисунке 2.5. Сигнал OC1/PWM выдается на вывод порта РВ1.


Рисунок 2.5 – Графики изменения числа в базовом счетчике и временные диаграммы сигнала PWM

В микроконтроллере типа t15 в работе таймера/счетчика Т/С1 участвуют разряды FOC1A и PSR1 регистра SFOR.

В режиме сравнения при установке в единичное состояние разряда FOC1A на выходе ОС1 устанавливается требуемое значение сигнала немедленно, не дожидаясь совпадения кодов в базовом счетчике и регистре сравнения. При этом запрос прерывания Т/С1 СОМР не формируется и базовый счетчик не сбрасывается в пулевое состояние при СТС1 = 1. Разряд FOC1А сбрасывается в нулевое состояние аппаратно. В режиме PWM он не используется.

При установке в единичное состояние разряда PSR1 сбрасывается в исходное (нулевое) состояние пересчетная схема ПС. Разряд сбрасывается в нулевое состояние аппаратно [2].

2.5 Таймер/счетчик типа С

Таймер/счетчик типа С входит в состав периферийных устройств микроконтроллеров типа 8535 и m163 (Т/С2) и типа m103 (Т/СО). Он формирует запрос прерывания Т/СХ OVF при переполнении восьмиразрядного базового счетчика TCNTX, может выполнять функцию сравнения/PWM и работать в режиме счета реального времени. В структуру таймера/счетчика типа С входят все элементы таймера/счетчика типа В и, кроме того, регистр ASSR, мультиплексор М и внутренний генератор G. Дополнительные элементы изображены на рисунке 2.6.

Рисунок 2.6 – Структурная схема таймера счетчика типа C

В качестве исходного сигнала для работы базового счетчика TCNT 0 может использоваться тактовый сигнал микроконтроллера СК или сигнал TOSC1 из дополнительного внутреннего генератора G, к которому через выводы TOSC1 и TOSC2 подключен кварцевый резонатор КР2.

При частоте резонатора 32768 Гц ("часовой" кварц) параметры процессов в таймере/счетчике с высокой точностью привязаны к единице измерения реального времени – секунде.

При нулевом состоянии разряда AS0 регистра ASSR используется тактовый сигнал СК, при единичном состоянии – сигнал генератора G (режим реального времени). Выбранный сигнал РСК0 с выхода мультиплексора М поступает в пересчетную схему ПС, в котором выполняется деление частоты на 8, 32, 64, 128, 256 и 1024.

Сигналы с шести выходов пересчетной схемы и сигнал с выхода мультиплексора поступают в схему управления СУ1. Выбор сигнала для передачи на счетный вход базового счетчика определяется комбинацией состояний разрядов CS00, CS01 и CS02 регистра управления TCCR0 в соответствии с таблицей 2.4

Таблица 2.4 – Комбинации состояний разрядов CS00, CS01 и CS02 регистра управления TCCR0

CS02 CS01 CS00 Сигнал
0 0 0 01 1 1 1 00110011 01010101 нетРСК0РСК0/8РСК0/32 РСК0/64 РСК0/128 РСК0/256 РСК0/1024

При работе в режиме реального времени (AS0 = 1) процесс счета и базовом счетчике привязан к сигналу TOSC1, а запись в регистры TCCR0 и OCR0 и в счетчик TCNT0 – к сигналу СК. Для исключения конфликтных ситуаций в счетчике TCNT0 в режиме реального времени используются регистры временного хранения. При записи кода (по команде OUT) байт принимается в соответствующий регистр временного хранения, при этом устанавливается в единичное состояние соответствующий разряд регистра ASSR – TCN0UB при записи в счетчик TCNT0, OCR0UB при записи в регистр OCR0, TCR0UB при записи в регистр TCCR0. Перепись байта из регистра временного хранения в основной регистр или счетчик привязана к сигналу TOSC1, при этом соответствующий разряд регистра ASSR сбрасывается в нулевое состояние. Очередная запись в регистр или счетчик по команде OUT может производиться при нулевом состоянии соответствующего разряда регистра ASSR.

У микроконтроллеров типа 8535 и m163 для подключения кварцевого резонатора КР2 используются выводы порта РС6 и РС7, а у микро контроллеров типа m10З – специальные выводы корпуса.

В таймере/счетчике типа С в микроконтроллере типа m163 (X = 2) в регистре TCCR2 имеется дополнительный разряд FOC2 и в регистре SFIOR – дополнительный разряд PSD2.

В режиме сравнения при установке в единичное состояние разряда FOC2 сигнал на выходе ОС2 принимает требуемое значение немедленно, не дожидаясь совпадения сравниваемых кодов. При этом запрос прерывания Т/С2 СОМР не формируется и базовый счетчик не сбрасывается. Сброс разряда FOC2 в нулевое состояние выполняется аппаратно. В режиме PWM разряд FOC2 не используется.

При установке в единичное состояние разряда PSR2 сбрасывается в исходное (нулевое) состояние пересчетная схема ПС.

Сброс разряда PSR2 в нулевое состояние выполняется аппаратно [2].

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 Значение сигнала
011 1 01 Изменяется01

При выполнении функции сравнения режим работы базового счетчика зависит от состояния разряда СТС1 регистра управления TCCR1B. При СТС1 = 1 базовый счетчик при совпадении кодов сбрасывается в нулевое состояние и продолжает счет, начиная с нуля. При СТС1 = 0 он продолжает счет до переполнения и далее ведет счет, начиная с нуля.

При единичном состоянии хотя бы одного из разрядов PWM10 и PWM11 и единичном состоянии разряда СОМ1А1 выполняется функция PWM. В этом случае базовый счетчик ведет счет на сложение до получения числа 255 или 511 или 1023, переходит в режим счета на вычитание, ведет счет на вычитание до получения числа 0 и вновь возвращается в режим счета па сложение. Выбор максимального числа (Nmах), до которого ведется счет на сложение, определяется комбинацией состояний разрядов PWM11 и PWM10 регистра управления TCCR1A в соответствии с таблицей 2.6.