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

2.2 Таймеры/счетчики общего назначения


Таймер/счетчик Т/СХ (X = 0, 1, 2 – цифра в имени таймера/счетчика) любого типа содержит базовый счетчик TCNTX, имеющий восемь или шестнадцать разрядов, и восьмиразрядный регистр управления TCCRX. Кроме того, в состав таймера/счетчика входят один или несколько разрядов регистра запросов, прерывания TIFR и столько же разрядов регистра маскирования прерываний TIMSK. Регистры TIFR и TIMSK являются общими для всех таймеров/счетчиков микроконтроллера.

Разряд регистра TIFR устанавливается в единичное состояние при формировании в таймере/счетчике определенного запроса прерывания. Запрос прерывания проходит в блок прерываний при единичном состоянии соответствующего разряда регистра TIMSК. Разряд регистра ТIFR сбрасывается в нулевое состояние аппаратно при переходе микроконтроллера к выполнению соответствующей прерывающей программы или программно при выполнении команды установки бита в единичное состояние.

В состав таймера/счетчика, выполняющего функцию сравнения/PWM, входит регистр сравнения OCRX, а в состав таймера/счетчика, выполняющего функцию захвата, – регистр захвата ICRX. Разрядность регистров OCRX и ICRX равна разрядности базового счетчика TCNTX.

Для записи кода в шестнадцатиразрядный счетчик или регистр сначала выполняется команда записи (OUT) байта в старшую половину разрядов (Н), при этом поступавший из регистра общего назначения старший байт запоминается в регистре временного хранения. Затем выполняется команда записи (OUT) младшего байта в младшую половину разрядов (L), при этом оба байта одновременно записываются в счетчик или регистр.

Для чтения кода из шестнадцатиразрядного счетчика или регистра сначала выполняется команда чтения (IN) байта из младшей половины разрядов (L), при этом считанный младший байт поступает в регистр общего назначения, а старший байт запоминается в регистре временного хранения. Затем выполняется команда чтения байта из старшей половины разрядов (Н), при этом старший байт из регистра временного хранения поступает в указанный в команде регистр общего назначения [2].


2.3 Таймер/счетчик типа А


Таймер/счетчик типа А есть у микроконтроллеров всех типов кроме микроконтроллера типа m103. Он имеет имя Т/С0 (X = 0). Таймер/счетчик типа А формирует запрос прерывания Т/С0 OVF при переполнении восьмиразрядного базового счетчика TCNT0. Структурная схема таймера/счетчика типа А изображена на рисунке 2.2.



Рисунок 2.3 – Структурная схема таймера/счетчика типа А


Тактовый сигнал микроконтроллера СК поступает в пересчетную схему (prescaler) ПС, представляющую собой десятиразрядный счетчик, где выполняется деление частоты тактового сигнала на 8, 64, 256 и 1024. Сигналы с четырех выходов пересчетной схемы поступают в схему управления СУ (мультиплексор). При наличии в микроконтроллере таймера/счетчика Т/С1 эти же сигналы поступают в Т/С1.

В схему управления поступают также тактовый сигнал СК и сигнал из внешнего источника, принимаемый на вход Т0. В качестве входа Т0 у микроконтроллеров типа 1200, 2313 и 4433 используется вывод порта PD4, у микроконтроллеров типа 2323, 2343 и серии ATtny – вывод порта РВ2, а у микроконтроллеров типа 8515, 8535 и m163 – вывод порта РВ0.

Схема управления в зависимости от комбинации состоянии разрядов CS00, CS01 и CS02 регистра управления TCCR0 передаст один из поступающих сигналов на счетный вход базового счетчика TCNT0, ведущего счет на сложение. Сигналы, используемые для счета в счетчике TCNT0 при разных комбинациях значений в разрядах регистра TCCR0, указаны в таблице 2.1.


Таблица 2.1 – Сигналы, используемые для счета в счетчике TCNT0

CS02

CS01

CS00

сигнал

0 0 0 0

1 1 1 1

0 0

1 1

0 0

1

1

0

1

0

1

0

1

0

1

нет

СК

СК/8

СК/64

СК/256

СК/1024

Отрицательный фронт на ТО Положительный фронт на ТО


При переполнении счетчика TCNT0 устанавливается в единичное состояние разряд TOV0 регистра TIFR и при единичном состоянии разряда ТОIЕ0 регистра TMSK в блок прерываний поступает запрос прерывания Т/С0 OVF.

В микроконтроллере типа t15 в работе таймера/счетчика типа А участвуют разряд PSR0 регистра SFIOR. При установке этого разряда в единичное состояние сбрасывается в исходное (нулевое) состояние пересчетная схема ПС. Разряд PSR0 возвращается в нулевое состояние аппаратно. В микроконтроллере тина m163 аналогичная операция выполняется при установке в единичное состояние разряда PSR10 регистра SFIOR [2].


2.4 Таймер/счетчик типа В


Таймер/счетчик типа В входит в состав периферийных устройств микроконтроллеров типа t15 (T/C1) и m103 (T/C2). Он формирует запрос прерывания Т/СХ OVF при переполнении восьмиразрядного базового счетчика TCNTX и выполняет функцию сравнения/PWM с формированием запроса прерывания Т/СХ СОМР. Структурная схема таймера/счетчика типа В изображена на рисунке 2.3.



Рисунок 2.3 – Структурная схема таймера/счетчика типа В


Тактовый сигнал микроконтроллера СК поступает в пересчетную схему ПС, где частота сигнала делится на 8, 64, 256 и 1024. Сигналы с четырех выходов пересчетной схемы поступают в схему управления СУ1 и в таймер/счетчик Т/С1 типа Е. В схему управления СУ1 поступают также тактовый сигнал СК и сигнал из внешнего источника, принимаемый на вход Т2 (вывод порта PD7). При выполнении функции сравнения/PWM вывод порта РВ7 используется в качестве выхода OC2/PWM2 для выдачи сигнала, формируемого при совпадении сравниваемых кодов или сигнала PWM2.

Схема управления СУ1 в зависимости от комбинации состояний разрядов CS20, CS21 и CS22 регистра управления TCCR2 передает на счетный вход базового счетчика TCNT2 один из поступающих сигналов в соответствии с таблицей 2.1 при (Х = 2).

При переполнении базового счетчика устанавливается в единичное состояние разряд TOV2 регистра TIFR и при единичном состоянии разряда TOIE2 регистра TIMSK в блок прерываний поступает запрос прерывания Т/С2 OVF.

Режим работы таймера/счетчика определяется комбинацией состояний разрядов PWM2, СОМ21 и СОМ20 регистра TCCR2. При нулевом состоянии трех названных разрядов формируется только запрос прерывания Т/С2 OVF. При PWM2 = 0 и других комбинациях состоянии разрядов СОМ21 и СОМ20 выполняется функция сравнения. Код, формируемый в базовом счетчике TCNT2, с помощью компаратора К сравнивается с кодом, записанным в регистре OCR2. При совпадении кодов устанавливается определенное значение сигнала на выходе ОС2 (вывод порта РВ7), переводится в единичное состояние разряд OCF2 регистра TFR и при единичном состоянии разряда OCIE2 регистра TIMSK в блок прерываний поступает запрос прерывания Т/С2 СОМР. Значение сигнала, устанавливаемого на выходе ОС2 при совпадении кодов, определяется комбинацией состояний разрядов СОМ20 и СОМ21 регистра TCCR2 в соответствии с таблицей 2.2.


Таблица 2.2 – Комбинации состояний разрядов СОМ20 и СОМ21 регистра TCCR2

С0М21

СОМ20

Значение сигнала

0

1

1

1 0

1

 изменяетcя

0

1


Работа базового счетчика при выполнении функции сравнения зависит от состояния разряда СТС2 регистра TCCR2. При СТС2 = 0 базовый счетчик после совпадения кодов продолжает счет до переполнения и далее выполняет счет, начиная с 0. При СТС2 = 1 базовый счетчик при совпадении кодов сбрасывается в нулевое состояние и продолжает счет, начиная с 0. При PWM2 = 1 и СОМ21 = 1 выполняется функция PWM. Базовый счетчик ведет счет на сложение до получения кода максимального числа (255), переводится в режим счета на вычитание и в этом режиме ведет счет до получения кода минимального числа (0) и далее вновь переходит в режим счета на сложении. Акт переполнения (переход от кода числа 255 к коду числа 0) в данном случае отсутствует.

Запрос прерывания Т/С2 OVF формируется при переходе от числа 0 к числу 1.

Состояние разряда СОМ20 определяет вид изменения выходного сигнала при совпадении кодов в счетчике и регистре сравнения. На рисунке 1.4 изображены графики изменения числа в счетчике TCNT2 и временные диаграммы сигнала PWM на выходе ОС2 при заданном коде числа в регистре сравнения (OCR2) при разных состояниях разряда СОМ20.


Рисунок 2.4 – Графики изменения числа в счетчике TCNT2 и временные диаграммы сигнала PWM на выходе ОС2


Период сигнала PWM (T) в 510 раз больше периода сигнала, поступающего на счетный вход базового счетчика.

При записи байта в регистр OCR2 (по команде с мнемокодом операции OUT) байт принимается в регистр временного хранения, из регистра которого переписывается в регистр OCR2 при появлении в базовом счетчике кода числа 255. При этом исключается появление в сигнале PWM импульса со случайной длительностью.

Таймер/счетчик типа В микроконтроллере типа t15 имеет имя Т/С1 (X = 1). Исходный сигнал для работы таймера/счетчика (РСК) имеет частоту 25,6 МГц при частоте тактового сигнала микроконтроллера 1,6 МГц (1/16 РСК). В регистре управления имеется дополнительный разряд CS13. Выбор сигнала для передачи на счетный вход базового счетчика определяется комбинацией состояний разрядов CS13, CS12, CS11 и CS10 в соответствии с таблицей 2.3. Вход для приема сигнала из внешнего источника отсутствует.


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

CS13

CS12

CS11

CS10

Сигнал

0 0 0 0 0 0 0 0

1 1 1 1 1 1 1 1

0 0 0 0

1 1 1 1

0 0 0 0

1

1 1 1

0 0

1 1

0 0

1 1

0 0

1

1

0 0

1 1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

нет

РСК(16СК)

РСК/2 (8 СК)

РСК/4 (4 СК)

РСК/8 (2 СК) РСК/16(СК)

СК/2

СК/4

С К/8

СК/16

СК/32

СК/64

СК/128

СК/256

СК/512

СК/1024

Страницы: 1, 2, 3, 4, 5



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.