Найти тему
Будни инженера

Предварительный делитель AVR

Продолжаем разбираться с режимами работы таймеров/счётчиков микроконтроллеров AVR. Предыдущая статья по этой теме здесь.

Каждый таймер микроконтроллера может работать от двух разных источников тактовых импульсов. Либо это внешние импульсы, либо импульсы, которые вырабатываются внутренней схемой микроконтроллера.

Независимо от того, какой источник сигналов был выбран, перед тем, как попасть на вход таймера, этот сигнал проходит схему предварительного делителя. Предварительный делитель предназначен для того, чтобы расширить диапазон формируемых частот и длительностей таймера.

Каждый микроконтроллер AVR имеет свою структуру предварительного делителя для таймеров/счетчиков. Упрощенная схема одного из вариантов предварительного делителя приведена на рисунке:

Здесь частота внутреннего тактового генератора CLK поступает на специальный десятиразрядный делитель. С выходов делителя снимаются сигналы CLK/8, CLK/32, CLK/64, CLK/128, CLK/256 и CLK/1024 (выходы модуля ST). Все эти сигналы поступают на входы данных мультиплексора.

На адресные входы мультиплексора поступают сигналы от трех разрядов регистра управления таймером (TCCRn). Таким образом в разряды CSn0, CSn1, CSn2 записываются различные значения, что позволяет выбрать один из восьми режимов работы предварительного делителя. В зависимости от выбранного режима, на выход схемы могут поступать:

  • Сигнал с одного из выходов десятиразрядного делителя
  • Прямой сигнал с тактового генератора
  • Нулевой логический уровень (входа D0). В этом случае сигнал на входе таймера будет отсутствовать, и его работа приостанавливается.

Схема, приведенная на рисунке, не является стандартом для всех микроконтроллеров серии AVR. Она отражает только общий принцип построения предварительных делителей. В разных моделях это сделано немного по-разному.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить…