Разделы

В сети

Пользователей: 146
Из них просматривают:
Аналоги: 32. Даташиты: 81. Инструкции: 1. Новости: 12. Остальное: 1. Профиль пользователя: 6. Теги: 1. Форум: 12.
Участников: 2
Гостей: 144

Google , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

В настоящее время нет объявлений.

Atmega128. Блок захвата

Написал MACTEP 31.03.2010 9:10:00 (Просмотров: 5839)

Блок захвата




Таймер-счетчик содержит блок захвата, который запоминает состояние счетчика при возникновении внешнего события, тем самым определяя время его возникновения. В качестве события/событий выступает внешний сигнал, подключенный к выводу ICPn. Для таймера-счетчика 1 альтернативно может использоваться аналоговый компаратор в качестве источника внешнего события. Результат захвата состояния таймера может использоваться для вычисления частоты, скважности импульсов и других параметров импульсных сигналов. Альтернативно это значение может использоваться для создания журнала событий.

Функциональная схема блока захвата представлена на рисунке 48. Некоторые блоки на функциональной схеме, которые не относятся напрямую к блоку захвата, залиты серым цветом. Символ “n” в наименованиях бит и регистров заменяет номер таймера-счетчика.


Рисунок 48 – Функциональная схема блока захвата

Прим.: Выход аналогового компаратора (ACO) только у таймера-счетчика 1 может выступать в качестве сигнала захвата. У таймера-счетчика 3 эта возможность отсутствует.

Если на входе захвата (ICPn) или альтернативно на выходе аналогового компаратора (ACO) возникает изменение логического уровня (событие), которое соответствует установкам детектора фронта, то выполняется захват состояния таймера. При этом 16-разр. значение содержимого таймера (TCNTn) помещается в регистр захвата (ICRn). Флаг захвата (ICFn) устанавливается на том же такте ЦПУ, на котором произошло копирование значения TCNTn в ICRn. Установка бита TICIEn =1 разрешает прерывание по установке флага захвата. Флаг ICFn автоматически сбрасывается при переходе на вектор прерывания. Альтернативно флаг ICFn сбрасывается программно, если записать в него лог. 1. Считывание 16-разр. значения регистра захвата (ICRn) выполняется чтением сначала младшего байта (ICRnL), а затем старшего байта (ICRnH). При выполнении команды чтения младшего байта значение старшего байта автоматически копируется во временный регистр. Если ЦПУ выполняет команду чтения регистра ICRnH, то фактически считывается содержимое временного регистра. Запись в регистр ICRn возможна только в том случае, если битами задания режима работы таймера выбран режим, в котором значение регистра ICRn задает верхний предел счета. В этом случае необходимо выполнить соответствующую установку бит режима работы (WGMn3:0), а только затем выполнить запись значения верхнего предела в регистр ICRn. Запись 16-разр. значения в регистр ICRn выполняется путем записи сначала старшего байта в ICRnH, а только затем младшего байта в ICRnL (см. также “Доступ к 16-разр. регистрам”).

Источник срабатывания механизма захвата

Основным источником, инициирующим захват состояния таймер-счетчика, является вывод захвата (ICPn). Таймер-счетчик 1 также альтернативно может использовать выход аналогового компаратора в качестве источника инициации захвата. Для этого необходимо установить бит разрешения захвата аналоговым компаратором (ACIC) в регистре состояния и управления аналогового компаратора (ACSR). Учтите, что изменение источника инициации захвата может привести к возникновению захвата. Поэтому, после изменения источника должен быть сброшен флаг захвата.

Входные каскады, связанные с выводом захвата (ICPn) и выходом аналогового компаратора (ACO) выполнены по аналогии с каскадом, связанного с выв. Tn (см. рис. 59). Детекторы фронта также идентичны. Однако если разрешена работа подавителя шумов, то последовательно перед детектором фронта включается дополнительная логика, которая реагирует на изменение уровня, если он находился на постоянном уровне не менее 4 тактов ЦПУ. Обратите внимание, что вход подавителя шумов и детектора фронта всегда разрешен, если таймер-счетчик находится в режиме, где ICRn определяет вершину счета.

Захват можно инициировать программно путем управления настройками порта на выводе ICPn.

Подавитель шума

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

Работа подавителя шума разрешается путем установки бита разрешения подавления шумов на входе захвата (ICNCn) в регистре В управления таймером-счетчиком (TCCRnB). С разрешением работы подавителя шума вводится задержка на 4 такта между возникновением изменения входного уровня и собственно захватом состояния таймера. Подавитель шума использует системную синхронизацию и, следовательно, не зависит от настройки предделителя таймера.

Использование блока захвата

Основная проблема при использовании блока захвата состоит в необходимости выделения достаточного процессорного времени на обработку возникшего события. Время между двумя событиями является критичным параметром. Если процессор не успевает считать содержимое ICRn до момента возникновения следующего события, то регистр ICRn обновит свое содержимое. В этом случае результат захвата будет некорректным.

Если используется прерывание по захвату, то в процедуре обработки прерываний регистр ICRn необходимо считать как можно раньше. Даже при том, что прерывание по захвату имеет относительно высокий приоритет, время реакции на прерывание будет зависеть от максимального числа тактов, которое требуется на выполнение процедуры обработки любого другого прерывания.

Использование блока захвата не рекомендуется, если таймер используется в режиме, когда значение верхнего предела счета (разрешающая способность) активно обновляется в процессе работы.

Для измерения скважности (или коэффициента заполнения) импульсов необходимо после каждого захвата изменять фронт, по которому происходит захват. Данное изменение необходимо выполнять как можно раньше после считывания регистра ICRn. После изменения фронта необходимо сбросить флаг захвата ICFn записью в него лог. 1. Если требуется измерение только частоты, то сброс флага ICFn не требуется (если используется обработка по прерыванию).
 

<< Предыдущая страница Оглавление Следующая страница >>

Теги:

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.

Разное

Интересно

Семь раз отмерь, один раз отрежь. И не перепутай!

Похожие статьи