Режим Быстрой ШИМ-модуляции (FastPWMилиFPWM-режим) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Режим Быстрой ШИМ-модуляции (FastPWMилиFPWM-режим)



В этом режиме счетчик считает от нуля до 255, после достижения переполнения сбрасывается в нуль и счет начинается снова. Когда значение в счетчике достигает значения регистра сравнения, то соответствующий ему вывод ОСхх сбрасывается в ноль. При обнулении счетчика этот вывод устанавливается в 1. Частота получившегося ШИМ сигнала определяется просто: Частота процессора 8Мгц, таймер тикает до 256 с тактовой частотой. Значит один период ШИМ будет равен 8000 000/256 = 31250Гц. Быстрей не получится — это максимальная скорость на внутреннем 8Мгц тактовом генераторе. Но если переключить FUSE биты на внешний кварц то можно запустить МК на 16Мгц.


Еще есть возможность повысить разрешение, сделав счет 8, 9, 10 разрядным (если разрядность таймера позволяет), но надо учитывать, что повышение разрядности, вместе с повышением дискретности выходного аналогового сигнала, резко снижает частоту ШИМ.

Режим Быстрой ШИМ-модуляции, или FPWM-режим (WGM02:0 = 3 или 7), позволяет Генерироватьвысокочастотный сигнал с ШИМ. FPWM-режим _ использует Однонаправленный Cчет. Т.е. Счетчик считает от BOTTOM-значения до TOP-значения, затем Счетчик начинает считать заново от BOTTOM до TOP и т.д.. Значение TOP равно числу 0xFF, когда биты WGM2:0 = 3 или же TOP может быть равно числу, записанному в Регистр OCR0A, когда биты WGM2:0 = 7. Если используется Не Инвертирующий Режим Сравнения, то значение на выводе OC0x очищается (устанавливается ноль) при совпадении Регистров TCNT0 и OCR0x, а при достижении Регистром TCNT0 значения BOTTOM, на выводе OC0x обратно устанавливается единица. А, если используется Инвертирующий Режим Сравнения, то значение на выводе OC0x устанавливается (выгружается единица) при совпадении Регистров TCNT0 и OCR0x, а при достижении Регистром TCNT0 значения BOTTOM, на выводе OC0x

обратно устанавливается ноль. Модуль PWM в FPWM-режиме, используя Однонаправленный Счет, позволяет Генерировать удвоенную частоту, такую же, какую может Генерировать ШИМ с Фазовой Коррекцией, используя Двунаправленный Счет. Способность Генерировать такую высокую частоту делает FPWM-режим отлично приспособленным для использования в приложениях Регулирования Мощности, _ в ЦАП-приложениях и др..

 

Использование в приложениях ВЧ-сигналов дает возможность применять радиоэлементы для поверхностного монтажа (катушки, конденсаторы и др.), что, в свою очередь, ведет к уменьшению стоимости проекта. В FPWM-режиме Счетчик увеличивается до тех пор, пока Регистр TCNT0 не сравняется со значением TOP. Когда значение в TCNT0 достигнет значения TOP, произойдет очистка Регистра Счетчика TCNT0 сразу же на его следующем Тактовом Цикле. Временные Диаграммы для FPWM-режима показаны на Рисунке.

 

Нарастающие значения Регистра TCNT0 на Рисунке показаны как гистограмма (пилообразные импульсы), что иллюстрирует Однонаправленный Счет (импульс нарастает - значение в TCNT0 увеличивается). На Рисунке 29, также, показаны Инвертирующий и Не Инвертирующий режимы ШИМ. Короткие горизонтальные линии (Рисунок 29) на TCNT0-значениях представляют собой случай совпадения значений регистров OCR0x и TCNT0.

 

 

Флаг Переполнения Таймера/Счетчика "TOV0" устанавливается каждый раз, когда Счетчик достигает значения TOP. Если прерывания разрешены, то можно использовать подпрограмму обработки прерываний для того, чтобы обновлять (изменять) сравниваемые значения в Регистрах Сравнения. В FWPM-режиме Модуль Сравнения позволяет Генерировать ВЧ ШИМ-сигнал и выводить его на Вывод OC0x. Если настроить биты COM0x так: COM0x1:0 = 2, то это приведет ко включению НеИнвертирующего Режима ШИМ. Если настроить биты COM0x так: COM0x1:0 = 3, то это приведет ко включению Инвертирующего Режима ШИМ: если настроить биты COM0x так: COM0A1:0 = 1, то это позволит задействовать Вывод AC0A и переключать значение на нем в Режиме Сравнения, при том условии, что установлен бит WGM02. Эта Опция не доступна для использования Выводом OC0B (Смотрите Таблицу 54). Значение на этом Выводе (в этом случае) будет изменяться, если этот Вывод настроен как Выход. Принцип Генерирования ШИМ Частоты состоит в том, что в Режиме Сравнения на Выводе OC0x постоянно изменяется логический уровень сигнала, т.е. происходит установка в "1" (или очистка в "0"); или наоборот - очистка в "0" (или установка в "1") одновременно на том же Тактовом Цикле, когда Счетчик сбрасывает свое значение с TOP до BOTTOM. Частота ШИМ, "снимаемая" с вывода OCnx, может быть рассчитана по Формуле:

 

 

Переменная N представляет собой коэффициент деления Тактовой Частоты МК, которая, в последствии, является Тактовой Частотой Т/С, эта переменная может принимать значения такого ряда: (N=1, N=8, N=64, N=256 или N=1024).

 

Критические Значения для Регистра OCR0A представляют собой особый случай при Генерировании ШИМ-частоты. Если значение Регистра OCR0A эквивалентно значению BOTTOM, то на Выходе будет происходить выброс импульса на каждом следующем Тактовом Цикле Таймера после достижения числа MAX: MAX+1; Загрузка в OCR0A числа, равного значению MAX, в результате дает постоянный логический уровень на Выходе - высокий или низкий (последнее зависит от полярности Выхода, которая зависит от установки битов COM0A1:0).

 

ШИМ-частота в FPWM-режиме с Рабочим Циклом 50% (когда длительность импульса равна половине периода цикла) может быть получена переключением логического уровня на Выводе OC0x используя Режим Сравнения (COM0x1:0 = 1). Максимальная частота, вырабатываемая таким образом, может достигать значения в Два раза меньшего, чем Тактовая (Системная) Частота МК: fOC0 = fclk_I/O/2, при условии, что в Регистр OCR0A загружены нули (0x00). Этот способ Генерирования Частоты подобен СТС-режиму, в котором используется переключение вывода OC0A, за исключением того, что в FPWM-режиме Двойная Буферизация Модуля Сравнения Разрешена, а в СТС-режиме - Запрещена.



Поделиться:


Последнее изменение этой страницы: 2021-01-08; просмотров: 213; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.37.240 (0.008 с.)