Шим с фазовой коррекцией (pcpwm-режим) 


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



ЗНАЕТЕ ЛИ ВЫ?

Шим с фазовой коррекцией (pcpwm-режим)



ШИМ с точной фазой. Работает похоже, но тут счетчик считает несколько по другому. Сначала от 0 до 255, потом от 255 до 0. Вывод OCxx при первом совпадении сбрасывается, при втором устанавливается.
Но частота ШИМ при этом падает вдвое, из-за большего периода. Основное его предназначение, делать многофазные ШИМ сигналы, например, трехфазную синусоиду. Чтобы при изменении скважности не сбивался угол фазового сдвига между двумя ШИМ сигналами. Т.е. центры импульсов в разных каналах и на разной скважности будут совпадать.

PCPWM-режим (WGM02:0 = 1 или 5) позволяет воспользоваться высоким Разрешением Генератора

Частоты и обеспечивает ШИМ-сигнал правильный по фазе. PCPWM-режим основан на Двунаправленном Счете.

 

При Двунаправленном Счете Счетчик циклически считает от значения BOTTOM до TOP,а затем, обратно от значения TOP до BOTTOM. Значение TOP будет равно 0xFF, если WGM2:0 = 1, а, если установлены биты WGM2:0 = 5, то значение TOP будет равно числу, загруженному в OCR0A. При использовании НеИнвертирующего Режима Сравнения и Инкрементированного Счета, значение на Выводе OC0x будет Очищаться в "0" при совпадении Регистров TCNT0 и OCR0x и наоборот, при том же Режиме Сравнения, значение на Выводе OC0x будет Устанавливаться в "1" при совпадении TCNT0 и OCR0x при Декрементированном Счете. При использовании Инвертирующего Режима Сравнения все работает наоборот. Двунаправленный Режим Счета имеет более низкую максимальную частоту генерирования, чем Однонаправленный. Однако, из-за своей симметричности Двунаправленный Режим Счета предпочтительно использовать для приложений, управляющих двигателями.

 

В PCPWM-режиме Счетчик увеличивается (Инкрементируется) до тех пор, пока Регистр TCNT0 недостигнет значения TOP. При достижении значения TOP Счетчик меняет направление Счета. Естественно, что TCNT0 равен TOP только на время одного Тактового Цикла. Временные диаграммы для PCPWM-режима показаны на Рисунке 32. Увеличивающееся и уменьшающееся значения Регистра TCNT0 показаны на Рисунке 32 какгистограммы (кривые), они иллюстрируют Двунаправленный Режим Счета. На Рисунке 32, также, показаны временные диаграммы значений на Выходах OCn для Инвертирующих и НеИнвертирующих Режимов Сравнения. Короткие горизонтальные линии на гистограммах представляют собой время совпадения между Регистрами OCR0x и TCNT0.

 

 

Рисунок - Временные диаграммы значений на Выходах OCn для Инвертирующихи НеИнвертирующих Режимов Сравнения (PCPWM-режим)

 

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

 

 

Переменная N представляет собой коэффициент деления Тактовой Частоты МК, которая, в последствии, является Тактовой Частотой Т/С, эта переменная может принимать значения такого ряда: (N=1, N=8, N=64, N=256 или N=1024). Критические Значения (т.е., создающие риск ошибки в работе) для Регистра OCR0A представляют собой особый случай при Генерировании ШИМ-частоты в PCPWM-режиме. Если OCR0A эквивалентен значению BOTTOM, то на Выводе всегда будет низкий уровень сигнала, а, если OCR0A=TOP, то на Выводе всегда будет высокий уровень сигнала - это справедливо для НеИнвертирующего Режима Сравнения. Для Инвертирующего Режима все будет наоборот. В самом начале 2-го периода, Рисунок 32, значение на Выводе OCn меняет свое значение с Высокого Уровня на Низкий даже, если Регистры Сравнения не равны. Это гарантирует генерирование симметричных импульсов в Двунаправленном Режиме Счета. Это второй случай, когда происходит смена логического уровня без Сравнения Регистров Сравнения.

 

• Регистр OCR0A может иметь значения не равные MAX, как показано на Рисунке 32. Если OCR0A=_TOP(MAX)_, то значение на Выводе OCn будет таким же, какое получается в результате равенства Регистров Сравнения при Декрементированном Счете, а это "1" - при НеИнвертирующем Режиме и "0"- при Инвертирующем Режиме.

Симметрия Импульсов ШИМ-частоты гарантирована, если значение на Выводе OCn, при TCNTn=MAX, соответствует значению, получающемуся в результате равенства Регистров Сравнения при Инкрементирующем Счете.

 

• Таймер начинает считать с числа на единицу большего, чем то, которое загружено в OCR0A (т.е.

OCR0A+1) и поэтому, пропускает Сравнение на один период (даже, если TCNT0 и OCR0A равны) и,

следовательно, не происходит ошибочного изменения сигнала на выводе OCn (что показано на Рисунке 32 – период 1 там пропущен).

 

Clear Timer On Compare

Сбросприсравнении. Это уже скорей ЧИМ — частотно-импульсно моделированный сигнал. Тут работает несколько иначе, чем при других режимах. Тут счетный таймер тикает не от 0 до предела, а от 0 до регистра сравнения! А после чего сбрасывается.

 

 



Поделиться:


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

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