Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпт 2013.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.12 Mб
Скачать

49. Режимы работы таймера. Шим с фазовой коррекцией.

Режим широтно-импульсной модуляции с фазовой коррекцией (ШИМ ФК)

  • Режим ШИМ ФК (WGMn1, WGMn0 = 0b01) позволяет выполнять фазовую коррекцию ШИМ-сигнала с высокой разрешающей способностью.

  • Режим ШИМ ФК основан на двунаправленной работе таймера-счетчика. Счетчик циклически выполняет счет в направлении от нижнего предела до максимального значения, а затем обратно от максимального значения к нижнему пределу.

  • Если задан неинвертирующий режим выхода компаратора, то выход OCn сбрасывается/устанавливается при совпадении значений TCNTn и OCRn во время прямого/обратного счета. Если задан инвертирующий режим выхода, то, наоборот, во время прямого счета происходит установка, а во время обратного - сброс выхода OCn.

  • При двунаправленной работе максимальная частота ШИМ-сигнала меньше, чем при однонаправленной работе, однако, за счет такой особенности, как симметричность в режимах ШИМ с двунаправленной работой, данные режимы предпочитают использовать при решении задач управления приводами.

  • Разрешающая способность ШИМ для данного режима фиксирована и равна 8 бит. В режиме ШИМ ФК счетчик инкрементирует свое состояние пока не достигнет максимального значения (0xFF). По достижении максимального значения счетчик реверсируется.

  • Значение TCNTn остается равным максимальному значению в течение одного такта синхронизации таймера. На рисунке показана временная диаграмма работы таймера-счетчика для режима ШИМ ФК.

50.Асинхронный режим работы таймера.

Если таймер-счетчик 0 работает асинхронно, то необх-мо учесть некоторые особенности.

При переключении между асинхронным и синхронным тактовыми источниками таймера-счетчика содержимое регистров TCNT0, OCR0 и TCCR0 может быть нарушено. Во избежание этого необх-мо придерживаться след. безопасной последоват-ти переключения:

  1. Отключить прерывания таймера-счетчика 0 путем сброса бит OCIE0 и TOIE0.

  2. Выбрать необходимый тактовый источник с помощью бита AS0

  3. Выполнить запись новых значений в TCNT0, OCR0 и TCCR0.

  4. При переходе в асинхронный режим тактирования дождаться сброса флагов TCN0UB, OCR0UB и TCR0UB.

  5. Сбросить флаги прерывания таймера-счетчика 0

  6. При необходимости разрешить прерывания

  7. Генератор оптимизирован под использование часового кварцевого резонатора на частоту 32768 Гц. Подключение внешнего тактового сигнала к выводу TOSC1 может сказаться на некорректности работы таймера.

  8. Тактовая частота ЦПУ д.б. минимум в четыре раза выше частоты данного генератора.

  9. Запись в любой из регистров TCNTn, OCRn или TCCRn происходит за два положительных фронта TOSC1, т.к. данные предварительно помещаются во временный регистр, а затем передаются по назначению. Программист должен предусмотреть, чтобы до окончания передачи содержимого временного регистра к назначенному регистру не выполнилась еще одна запись в этот регистр. Каждый из трех упомянутых регистров имеют свои индивидуальные временные регистры. Это означает, что, например, запись в TCNTn не влияет на процесс записи в регистр OCRn. Чтобы определить в какой регистр была выполнена запись, реализован регистр асинхронного состояния ASSR.

  10. Если экономичный режим или расширенный дежурный режим вводится после записи в TCNTn, OCRn или TCCRn, то программист должен дождаться завершения обновления записанного регистра, в случае если таймер-счетчик n используется для пробуждения из этих режимов. Иначе микроконтроллер перейдет в режим сна прежде чем вступят в силу желаемые изменения. Это особенно важно, если прерывание по результату сравнения таймера-счетчика n используется для пробуждения МК, т.к. функция отработки условия совпадения блокируется после записи в OCRn или TCNTn. Если цикл записи не заканчивается и МК переводится в режим сна прежде чем OCRnUB станет равным нулю, то МК больше не будет прерываться при выполнении условия сравнения и, не сможет пробудиться.

Если выбрана асинхронная работа, то генератор на 32768 Гц таймера-счетчика находится постоянно включенным, за исключением режима выключения и дежурного режима МК.

После сброса при подаче питания или пробуждения из режима выкл. и дежурного режима программист должен учитывать, что для возобновления нормальной работы данного генератора требуется минимум 1 секунда. Т.о., программисту рекомендуется вкл. задержку минимум на 1 сек. перед использованием таймера-счетчика после подачи питания или выхода из режима выкл. или дежурного режима. Содержимое всех регистров таймера-счетчика необходимо рассматривать как потерянное после подачи питания или пробуждения из указанных выше режимов из-за нестабильности тактового сигнала при запуске независимо от того, какой асинхронный источник используется (генератор или внешний сигнал).

Во время асинхронной работы синхронизация флагов прерываний асинхронного таймера требует три такта синхронизации ЦПУ плюс один такт синхронизации таймера. Т.о., как минимум таймер должен изменить свое состояние на 1 прежде чем процессор сможет считать его содержимое, вызывающее установку флагов прерываний. Выход генератора прямоугольных импульсов OCn привязан к синхронизации таймера и не синхронизирован с тактированием ЦПУ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]