Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > AVR > Архитектура ATMega128 |
|
||||||||||||||||||
8-разрядный таймер-счетчик 0 с функциями широтно-импульсной модуляции и асинхронного тактированияТаймер-счетчик 0 - модуль многофункционального одноканального 8-разрядного таймера-счетчика с аппаратным выходом для генерации ШИМ-сигнала и встроенным асинхронным опциональным тактовым генератором, который оптимизирован под использование часового кварца (32768Гц) для асинхронного по отношению к системной синхронизации тактирования. Основные отличительные особенности:
Введение Укрупненная функциональная схема 8-разр. таймера-счетчика представлена на рис. 34. Для уточнения расположения выводов см. "Расположение выводов". Связи с регистрами, к которым осуществляет доступ ЦПУ, в т.ч. биты ввода-вывода и линии ввода-вывода показаны жирной линией. Специфические для данного устройства регистры, расположение и назначение его бит приведены в "Описание регистров 8-разр. таймера-счетчика 0".
Регистры Регистр таймера-счетчика (TCNT0) и регистр порога сравнения (OCR0) - 8-разр. регистры. Сигналы запроса на прерывание представлены как флаги прерываний таймера в регистре TIFR. Все прерывания индивидуально маскируются с помощью регистра маски прерываний таймеров (TIMSK). Регистры TIFR и TIMSK не представлены на функциональной схеме, т.к. они совместно используются с другими таймерами микроконтроллера. Таймер-счетчик может тактироваться через предделитель внутренне или асинхронно через внешние выводы TOSC1/2, что описано в последующих разделах. Асинхронная работа управляется регистром асинхронного состояния (ASSR). Блок синхронизации осуществляет выбор, какой тактовый источник используется для инкрементирования (декрементирования) состояния таймера-счетчика. Если источник тактирования не задан, то таймер-счетчик находится в неактивном состоянии. Выход логики выбора синхронизации обозначен как синхронизация таймера (clkT0). Значение регистра порога сравнения с двойной буферизацией (OCR0) непрерывно сравнивается со значением таймера-счетчика. Результат сравнения может использоваться для генерации сигналов с ШИМ или прямоугольных импульсов переменной частоты на выводе OC0. См. "Блок сравнения". Совпадение порога сравнения со значением таймера-счетчика приводит к установке флага результата сравнения (OCF0), который может использоваться для генерации запроса на прерывание по результату сравнения. Определения Некоторые определения и их сокращенные наименования, которые интенсивно используются в этом разделе, представлены в таблице 51. Таблица 51. Определения
Тактовые источники таймера-счетчика 0 Таймер-счетчик 0 может тактироваться внутренне синхронно или внешне асинхронно (по отношению к внутренней системной синхронизации). По умолчанию используется тактовый сигнал clkT0, эквивалентный тактовому сигналу микроконтроллера clkI/O. Если в бит AS0 регистра ASSR записать лог. 1, то в качестве источника синхронизации выступает генератор таймера-счетчика, связанный с выводами подключения низкочастотного кварцевого резонатора TOSC1 и TOSC2. Более подробно асинхронная работа описана в "Регистр асинхронного состояния - ASSR". Подробности по источникам синхронизации см. в разделе "Предделитель таймера-счетчика 0". Блок счетчика Основу 8-разр. таймера-счетчика 0 составляет программируемый двунаправленный счетчик. Рисунок 35 показывает функциональную схему счетчика и окружающих его элементов.
Описание сигналов (внутренние сигналы):
В зависимости от выбранного режима работы счетчик сбрасывается, инкрементируется или декрементируется на каждом такте синхронизации (clkT0). Тактовый сигнал clkT0 может быть внутренним или внешним, а его частота выбирается с помощью бит выбора частоты синхронизации CS02-CS00. Если источник синхронизации не задан (CS02-CS00 = 0b000), то таймер останавливается. Однако состояние TCNT0 доступно ЦПУ независимо от того работает синхронизация таймера или нет. Запись в регистр таймера через ЦПУ перекрывает любые действия самого счетчика: сброс или счет, т.е. имеет более высокий приоритет. Последовательность счета определяется установкой бит WGM01 и WGM00, расположенных в регистре управления таймером-счетчиком (TCCR0). Имеется точная связь между поведением счетчика (алгоритмом счета) и генерируемой на выходе OC0 формы сигнала. Более подробно об алгоритмах счета и генерации импульсов написано в "Режимы работы". Флаг переполнения таймера-счетчика (TOV0) устанавливается в соответствии с режимом работы, который выбирается битами WGM01, WGM00. Бит TOV0 может использоваться для генерации прерывания ЦПУ. Блок сравнения 8-разрядный цифровой компаратор непрерывно выполняет сравнение содержимого регистра таймера-счетчика TCNT0 с регистром порога сравнения OCR0. Всякий раз, когда значение TCNT0 совпадает со значением OCR0 компаратор устанавливает флаг совпадения OCF0 следующим тактом синхронизации таймера. Если разрешено прерывание битом OCIE0 = 1, то установка флага совпадения вызывает запрос на прерывание. Флаг OCF0 автоматически сбрасывается во время выполнения процедуры обработки прерывания. Альтернативно, флаг OCF0 можно сбросить программно путем записи лог. 1 в позицию данного бита. Генератор сигнала использует сигнал результата сравнения для генерации прямоугольных импульсов по одному из алгоритмов, который выбирается битами задания режима работы таймера WGM01, WGM00 и битами задания режима формирования выходного сигнала (COM01, COM00). Верхний и нижний пределы счета используются в некоторых режимах работы для выполнения специальных действий (см. "Режимы работы таймера -счетчика 0"). На рисунке 36 приведена функциональная схема блока сравнения.
Регистр OCR0 выполнен по схеме двойной буферизации при использовании режимов с широтно-импульсной модуляцией (ШИМ). В нормальном режиме и режиме сброса таймера при совпадении (CTC) схема двойной буферизации отключается. Двойная буферизация позволяет синхронизировать обновление регистра сравнения OCR0 по достижении верхнего или нижнего предела счета. Такая синхронизация предотвращает возможность возникновения несимметричных ШИМ-импульсов нечетной длины, тем самым гарантируя отсутствие сбоев при генерации прямоугольных импульсов. Доступ к регистру OCR0 может показаться сложным, но это выполнено не случайно. После разрешения двойной буферизации ЦПУ осуществляет доступ к буферному регистру OCR0, а после отключения - непосредственно адресуется к регистру OCR0. Принудительная установка результата сравнения В режимах генерации импульсов без ШИМ в формирователе импульсов результат сравнения может быть установлен непосредственно через бит принудительной установки результата сравнения FOC0. Принудительная установка результата сравнения компаратора не приводит к установке флага OCF0 или сбросу/перезагрузке таймера, но влияет на состояние вывода OC0, который будет устанавливаться, сбрасываться или переключаться (инвертироваться) в зависимости от выбранной установки бит COM01, COM00. Результат сравнения блокируется записью в TCNT0 Если ЦПУ осуществляет запись в регистр TCNT0, то результат сравнения будет игнорироваться на следующем такте синхронизации таймера, даже если таймер остановлен. Данная функция позволяет установить в регистре OCR0 то же значение, что и в TCNT0 без генерации запроса на прерывание, если разрешено тактирование таймера-счетчика. Использование блока сравнения Поскольку запись в TCNT0 блокирует любые действия по результату сравнения на один такт синхронизации таймера независимо от режима работы, то при изменении TCNT0 при использовании канала сравнения (независимо работает синхронизация таймера или нет) необходимо учесть следующие особенности. Если в регистр TCNT0 записано значение равное OCR0, то игнорирование совпадения приведет к генерации некорректной формы сигнала. По аналогии следует избегать записи в TCNT0 значения равного нижнему пределу (0x00), если счетчик работает как вычитающий. Установка OC0 должна быть выполнена перед настройкой линии ввода-вывода на вывод в регистре направления данных. Самый легкий путь установки значения OC0 - использование бита принудительной установки результата сравнения (FOC0) в нормальном режиме. Регистр OC0 сохраняет его значение, даже если происходит изменение режима работы таймера. Учтите, что биты COM01, COM00 не содержат схемы двойной буферизации и на любые изменения реагируют мгновенно.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|