Преобразование шим в аналоговый сигнал arduino. Что такое шим контроллер, как он устроен и работает, виды и схемы

АМн · ФМн · КАМ · ЧМн · GMSK
OFDM · COFDM · TCM Импульсная модуляция АИМ · ДМ · ИКМ · ΣΔ · ШИМ · ЧИМ · ФИМ Расширение спектра FHSS · DSSS См. также: Демодуляция

Широтно-импульсная модуляция (ШИМ, англ. Pulse-width modulation (PWM) ) - приближение желаемого сигнала (многоуровневого или непрерывного) к действительным бинарным сигналам (с двумя уровнями - вкл /выкл ), так, что, в среднем, за некоторый отрезок времени, их значения равны. Формально, это можно записать так:

,

где x (t ) - желаемый входной сигнал в пределе от t1 до t2 , а ∆T i - продолжительность i -го ШИМ импульса, каждого с амплитудой A . ∆T i подбирается таким образом, что суммарные площади (энергии) обеих величин приблизительно равны за достаточно продолжительный промежуток времени, равны также и средние значения величин за период:

.

Управляемыми "уровнями", как правило, являются параметры питания силовой установки, например, напряжение импульсных преобразователей /регуляторов постоянного напряжения/ или скорость электродвигателя. Для импульсных источников x (t ) = U const стабилизации.

Основной причиной внедрения ШИМ является сложность обеспечения произвольным Напряжение_(электрическое). Есть некое базовое постоянное напряжение питания (в сети, от аккумуляторов и пр.) и на его основе нужно получить более низкое произвольное и уже им запитывать электродвигатели или иное оборудование. Самый простой вариант - делитель напряжения , но он обладает пониженным КПД, повышенным выделением тепла и расходом энергии. Другой вариант - транзисторная схема. Она позволяет регулировать напряжение без использования механики. Проблема в том, что транзисторы греются больше всего в полуоткрытом состоянии (50%). И если с таким КПД ещё "можно жить", то выделение тепла, особенно в промышленных масштабах сводит всю идею на нет. Именно поэтому было решено использовать транзисторную схему, но только в пограничных состояниях (вкл/выкл), а полученный выход сглаживать LC-цепочкой (фильтром) при необходимости. Такой подход весьма энергоэффективен. ШИМ широко применяется повсеместно. Если вы читаете эту статью на LCD-мониторе (телефоне/КПК/... с LCD-подсветкой), то яркость подсветки регулируется ШИМ. На старых мониторах можно убавить яркость и услышать как ШИМ начинает пищать (очень тихий писк частотой в несколько килогерц). Так же "пищат" плавно мигающие LED-лампочки, например, в ноутбуках. Очень хорошо слышно пищание ШИМ по ночам в тишине.

В качестве ШИМ можно использовать даже COM-порт. Т.к. 0 передаётся как 0 0000 0000 1 (8 бит данных + старт/стоп), а 255 как 0 1111 1111 1, то диапазон выходных напряжений - 10-90% с шагом в 10%.

ШИП - широтно-импульсный преобразователь, генерирующий ШИМ-сигнал по заданному значению управляющего напряжения. Основное достоинство ШИП - высокий КПД его усилителей мощности, который достигается за счёт использования их исключительно в ключевом режиме. Это значительно уменьшает выделение мощности на силовом преобразователе (СП).

Применение

ШИМ использует транзисторы (могут быть и др. элементы) не в линейном, а в ключевом режиме, то есть транзистор всё время или разомкнут (выключен), или замкнут (находится в состоянии насыщения). В первом случае транзистор имеет почти бесконечное сопротивление, поэтому ток в цепи почти не течёт, и, хотя всё напряжение питания падает на транзисторе, то есть КПД=0 %, в абсолютном выражении выделяемая на транзисторе мощность равна нулю. Во втором случае сопротивление транзистора крайне мало, и, следовательно, падение напряжения на нём близко к нулю - выделяемая мощность так же мала.

Принцип работы ШИМ

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

Генерируется аналоговым компаратором , на отрицательный вход которого подаётся опорный сигнал в виде «пилы» или «треугольника», а на положительный - собственно сам модулируемый непрерывный аналоговый сигнал. Частота импульсов соответствует частоте «зубьев» пилы. Ту часть периода, когда входной сигнал выше опорного, на выходе получается единица, ниже - нуль.

В цифровой технике, выходы которой могут принимать только одно из двух значений, приближение желаемого среднего уровня выхода при помощи ШИМ является совершенно естественным. Схема настолько же проста: пилообразный сигнал генерируется N -битным счётчиком. Цифровые устройства (ЦШИП) работают на фиксированной частоте, обычно намного превышающей реакцию управляемых установок (передискретизация ). В периоды между фронтами тактовых импульсов, выход ЦШИП остаётся стабильным, на нём действует либо низкий уровень либо высокий, в зависимости от выхода цифрового компаратора, сравнивающего значение счётчика с уровнем приближаемого цифрового сигнала V (n ). Выход за много тактов можно трактовать как череду импульсов с двумя возможными значениями 0 и 1, сменяющими друг-друга каждый такт Т . Частота появления единичных импульсов получается пропорциональной уровню приближаемого сигнала ~V (n ). Единицы, следующие одна за другой, формируют контур одного, более широкого импульса. Длительности полученных импульсов переменной ширины ~V (n ), кратны периоду тактирования T , а частота равна 1/(T *2 N ). Низкая частота означает длительные, относительно T , периоды постоянства сигнала одного уровня, что даёт невысокую равномерность распределения импульсов.

Описанная цифровая схема генерации подпадает под определение однобитной (двухуровневой) импульсно-кодовой модуляции (ИКМ ). 1-битную ИКМ можно рассматривать в терминах ШИМ как серию импульсов частотой 1/T и шириной 0 либо T . Добиться усреднения за менее короткий промежуток времени позволяет имеющаяся передискретизация. Высоким качеством обладает такая разновидность однобитной ИКМ, как импульсно-плотностная модуляция (pulse density modulation ), которая ещё именуется импульсно-частотной модуляцией .

Восстанавливается непрерывный аналоговый сигнал арифметическим усреднением импульсов за много периодов при помощи простейшего фильтра низких частот. Хотя обычно даже этого не требуется, так как электромеханические составляющие привода обладают индуктивностью, а объект управления (ОУ) - инерцией, импульсы с выхода ШИП сглаживаются и ОУ, при достаточной частоте ШИМ-сигнала, ведёт себя как при управлении обычным аналоговым сигналом.

См. также

  • Векторная модуляция - векторная широтно-импульсная модуляция, используемая в силовой электронике.
  • SACD - формат аудиодисков, использующий широтно-импульсную модуляцию звукового сигнала.

Например);

  • резистор номиналом 190…240 Ом (вот отличный набор резисторов самых распространённых номиналов);
  • персональный компьютер со средой разработки Arduino IDE.
  • Инструкция по использованию ШИМ в Arduino

    1 Общие сведения о широтно-импульсной модуляции

    Цифровые выводы Arduino могут выдавать только два значения: логический 0 (LOW, низкий уровень) и логическую 1 (HIGH, высокий). На то они и цифровые. Но есть у Ардуино «особые» выводы, которые обозначаются PWM . Их иногда обозначают волнистой чертой "~" или обводят кружочками или ещё как-то выделяют среди прочих. PWM расшифровывается как Pulse-width modulation или широтно-импульсная модуляция , ШИМ .

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

    Если скважность равняется 100%, то всё время на цифровом выходе Arduino будет напряжение логическая "1" или 5 вольт. Если задать скважность 50%, то половину времени на выходе будет логическая "1", а половину - логический "0", и среднее напряжение будет равняться 2,5 вольтам. Ну и так далее.


    В программе скважность задаётся не в процентах, а числом от 0 до 255. Например, команда analogWrite(10, 64) скажет микроконтроллеру подать на цифровой PWM выход №10 сигнал со скважностью 25%.

    Выводы Arduino с функцией широтно-импульсной модуляции работают на частоте около 500 Гц. Значит, период следования импульсов - около 2 миллисекунд, что и отмеряют зелёные вертикальные штрихи на рисунке.

    Получается, что мы можем сымитировать аналоговый сигнал на цифровом выходе! Интересно, правда?!

    Как же мы можем использовать ШИМ? Применений масса! Например, управлять яркостью светодиода, скоростью вращения двигателя, током транзистора, звуком из пьезоизлучателя и т.д.…

    2 Схема для демонстрации широтно-импульсной модуляции в Arduino

    Давайте рассмотрим самый базовый пример - управление яркостью светодиода с помощью ШИМ. Соберём классическую схему.


    3 Пример скетча с ШИМ

    Откроем из примеров скетч "Fade": Файл Образцы 01.Basics Fade .


    Немного изменим его и загрузим в память Arduino.

    Int ledPin = 3; // объявляем пин, управляющий светодиодом int brightness = 0; // переменная для задания яркости int fadeAmount = 5; // шаг изменения яркости void setup() { pinMode(ledPin, OUTPUT); } void loop() { analogWrite(ledPin, brightness); // устанавливаем яркость brightness на выводе ledPin brightness += fadeAmount; // изменяем значение яркости /* при достижении границ 0 или 255 меняем направление изменения яркости */ if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount; // изменяем знак шага } delay(30); // задержка для большей видимости эффекта }

    4 Управление яркостью светодиода с помощью PWM и Arduino

    Включаем питание. Светодиод плавно наращивает яркость, а затем плавно уменьшает. Мы сымитировали аналоговый сигнал на цифровом выходе с помощью широтно-импульсной модуляции.


    Посмотрите приложенные видео, где наглядно показано изменение яркости светодиода, на подключённом осциллографе видно, как при этом меняется сигнал с Arduino.

  • 1.4. Тиристоры
  • 1.4.1. Принцип действия тиристора
  • 1.4.2. Статические вольт-амперные характеристики тиристора
  • 1.4.3. Динамические характеристики тиристора
  • 1.4.4. Типы тиристоров
  • 1.4.5. Запираемые тиристоры
  • 2. Схемы управления электронными ключами
  • 2.1. Общие сведения о схемах управления
  • 2.2. Формирователи импульсов управления
  • 2.3. Драйверы управления мощными транзисторами
  • 3. Пассивные компоненты и охладители силовых электронных приборов
  • 3.1. Электромагнитные компоненты
  • 3.1.1. Гистерезис
  • 3.1.2. Потери в магнитопроводе
  • 3.1.3. Сопротивление магнитному потоку
  • 3.1.4. Современные магнитные материалы
  • 3.1.5. Потери в обмотках
  • 3.2. Конденсаторы для силовой электроники
  • 3.2.1. Конденсаторы семейства мку
  • 3.2.2. Алюминиевые электролитические конденсаторы
  • 3.2.3. Танталовые конденсаторы
  • 3.2.4. Пленочные конденсаторы
  • 3.2.5. Керамические конденсаторы
  • 3.3. Теплоотвод в силовых электронных приборах
  • 3.3.1. Тепловые режимы работы силовых электронных ключей
  • 3.3.2. Охлаждение силовых электронных ключей
  • 4. Принципы управления силовыми электронными ключами
  • 4.1. Общие сведения
  • 4.2. Фазовое управление
  • 4.3. Импульсная модуляция
  • 4.4. Микропроцессорные системы управления
  • 5. Преобразователи и регуляторы напряжения
  • 5.1. Основные виды устройств преобразовательной техники. Основные виды устройств силовой электроники символически изображены на рис. 5.1.
  • 5.2. Трехфазные выпрямители
  • 5.3. Эквивалентные многофазные схемы
  • 5.4. Управляемые выпрямители
  • 5.5. Особенности работы полууправляемого выпрямителя
  • 5.6. Коммутационные процессы в выпрямителях
  • 6. Импульсные преобразователи и регуляторы напряжения
  • 6.1. Импульсный регулятор напряжения
  • 6.1.1. Импульсный регулятор с шим
  • 6.1.2. Импульсный ключевой регулятор
  • 6.2. Импульсные регуляторы на основе дросселя
  • 6.2.2. Преобразователь с повышением напряжения
  • 6.2.3. Инвертирующий преобразователь
  • 6.3. Другие разновидности преобразователей
  • 7. Инверторы преобразователей частоты
  • 7.1. Общие сведения
  • 7.2. Инверторы напряжения
  • 7.2.1. Автономные однофазные инверторы
  • 7.2.2. Однофазные полумостовые инверторы напряжения
  • 7.3. Трёхфазные автономные инверторы
  • 8. Широтно-импульсная модуляция в преобразователях
  • 8.1. Общие сведения
  • 8.2. Традиционные методы шим в автономных инверторах
  • 8.2.1. Инверторы напряжения
  • 8.2.2. Трехфазный инвертор напряжения
  • 8.3. Инверторы тока
  • 8.4. Модуляция пространственного вектора
  • 8.5. Модуляция в преобразователях переменного и постоянного тока
  • 8.5.1. Инвертирование
  • 8.5.2. Выпрямление
  • 9. Преобразователи с сетевой коммутацией
  • 10. Преобразователи частоты
  • 10.1. Преобразователь с непосредственной связью
  • 10.2. Преобразователи с промежуточным звеном
  • 10.3.1. Двухтрансформаторная схема
  • 10.3.3. Схема каскадных преобразователей
  • 11. Резонансные преобразователи
  • 11.2. Преобразователи с резонансным контуром
  • 11.2.1. Преобразователи с последовательным соединением элементов резонансного контура и нагрузки
  • 11.2.2. Преобразователи с параллельным соединением нагрузки
  • 11.3. Инверторы с параллельно-последовательным резонансным контуром
  • 11.4. Преобразователи класса е
  • 11.5. Инверторы с коммутацией в нуле напряжения
  • 12. Нормативы на показатели качества электрической энергии
  • 12.1. Общие сведения
  • 12.2. Коэффициент мощности и кпд выпрямителей
  • 12.3. Улучшение коэффициента мощности управляемых выпрямителей
  • 12.4. Корректор коэффициента мощности
  • 13. Регуляторы переменного напряжения
  • 13.1. Регуляторы напряжения переменного тока на тиристорах
  • 13.2. Регуляторы напряжения переменного тока на транзисторах
  • Вопросы для самоконтроля
  • 14. Новые методы управления люминесцентными лампами
  • Вопросы для самоконтроля
  • Заключение
  • Библиографический список
  • 620144, Г. Екатеринбург, Куйбышева,30
  • 8. Широтно-импульсная модуляция в преобразователях

    8.1. Общие сведения

    Принципы импульсного управления и модуляции рассмотрены в гл. 4 на при­мере простейшей схемы регулятора постоянного тока. При этом даны определе­ния основных видов импульсной модуляции, используемых в теории линейных импульсных систем, которые соответствуют практике управления импульсными преобразователями постоянного тока.

    Однако широтно-импульсная модуляция напряжений или токов в преобразова­телях переменного тока имеет в силовой электронике несколько иное определе­ние, учитывающее особенности ШИМ при решении задач преобразования элект­роэнергии на переменном токе. Согласно определению МЭК 551-16-30, широтно- импульсной модуляцией называется импульсное управление, при котором ширина или частота импульсов или и та и другая модулируются в пределах периода основ­ной частоты для того, чтобы создать определенную форму кривой выходного напряжения. В большинстве случаев ШИМ осуществляется в целях обеспечения синусоидальности напряжения или тока, т. е. снижения уровня высших гармоник относительно основной (первой) гармоники, и называется синусоидальной. Разли­чают следующие основные методы обеспечения синусоидальности: аналоговая ШИМ и ее модификации; избирательное (селективное) подавление высших гармоник; гистерезисная или дельта-модуляция;

    модуляция пространственного вектора.

    Классическим вариантом организации аналоговой синусоидальной ШИМ явля­ется изменение ширины импульсов, формирующих выходное напряжение (ток) посредством сравнения сигнала напряжения заданной формы, называемого опор­ным или эталонным, с сигналом напряжения треугольной формы, имеющим более высокую частоту и называемым несущим сигналом. Опорный сигнал является модулирующим и определяющим требуемую форму выходного напряжения (тока). Существует много модификаций этого метода, в которых модулирующие сигналы представлены специальными функциями, отличными от синусоиды. В конспекте лекций будет рассмотрено несколько основных схем поясняющих эти методы ШИМ.

    Метод избирательного подавления высших гармоник в настоящее время успешно реализуется средствами микропроцессорных контроллеров на основе программного обеспечения. Гистерезисная модуляция основана на принципах релейного «слежения» за опорным сигналом, например, синусоидальной формы. В простейшем техниче­ском исполнении этот метод сочетает принципы ШИМ и ЧИМ (частотно-импульсной модуляции). Однако посредством специальных схемотехнических мер можно стабилизировать частоту модуляции или ограничить диапазон ее изменения.

    Метод модуляции пространственного вектора основан на преобразовании трехфазной системы напряжения в двухфазную и получении обобщенного про­странственного вектора. Величина этого вектора рассчитывается в моменты, определяемые основной и модулирующей частотами. Он считается весьма пер­спективным для управления трехфазными инверторами, в частности, при исполь­зовании их в электроприводе. В то же время он во многом сходен с традиционной синусоидальной ШИМ.

    Системы управления на основе ШИМ позволяют не только обеспечить синусо­идальную форму усредненных значений основной гармоники напряжения или тока, но и управлять значениями ее амплитуды, частоты и фазы. Так как в этих случаях в преобразователе используются полностью управляемые ключи, то становится возможным реализовать работу преобразователей переменного (постоянного) тока совместно с сетью переменного тока во всех четырех квадрантах в режимах как выпрямления, так и инвертирования с любым заданным значением коэффициента мощности основной гармоники cosφ в диапазоне от -1 до 1. Более того, с увеличе­нием несущей частоты расширяются возможности воспроизведения на выходе инверторов тока и напряжения заданной формы. Это позволяет создавать актив­ные фильтры для подавления высших гармоник.

    Основные определения, используемые при дальнейшем изложении, рассмот­рим на примере применения первого метода в однофазной полу мостовой схеме инвертора напряжения (рис. 8.1, а ). В этой условной схеме ключи S 1 и S 2 пред­ставлены полностью управляемыми коммутационными элементами, дополнен­ными последовательно и параллельно соединенными с ними диодами. Последова­тельные диоды отражают однонаправленную проводимость ключей (например, транзисторов или тиристоров), а параллельные обеспечивают проводимость обратных токов при активно-индуктивной нагрузке.

    Диаграммы опорного, модулирующего u M (θ) и несущего u H (θ) сигналов приве­дены на рис. 8.1, б . Формирование импульсов управления ключами S 1 и S 2 осу­ществляется по следующему принципу. При u M (θ) > u H (θ) ключ S 1 включен, a S 2 выключен. При u M (θ) < u H (θ) состояния ключей изменяются на противоположные: S 2 - включен, a S 1 - выключен. Таким образом, на выходе инвертора формиру­ется напряжение в виде двух полярных импульсов. В реальных схемах для исключе­ния одновременной проводимости ключей S 1 и S 2 следует предусматривать опреде­ленную задержку между моментами формирования сигналов на включение этих ключей. Очевидно, что ширина импульсов зависит от соотношения амплитуд сигна­лов u M (θ) и u H (θ). Параметр, характеризующий это соотношение, называется индексом амплитудной модуляции и определяется по формуле (8.1):

    , (8.1.)

    где U M m и U H m - максимальные значения модулирующего сигнала u M (θ) и несущего сигнала u H (θ) соответственно.

    Рис. 8.1. Однофазный полу мостовой инвертор напряжения: а – схема; б – диаграммы напряжения при импульсной модуляции

    Частота несущего сигнала u H (θ) равна частоте коммутации f H ключей S 1 и S 2 и обычно значительно превышает частоту модулирующего сигнала f M . Соотношение частот f H и f M является важным показателем эффективности процесса модуляции и называется индексом частотной модуляции, который определяется по формуле (8.2):

    При малых значениях M f сигналы u M (θ) и u H (θ) должны быть синхронизированы, чтобы избежать появления нежелательных субгармоник. В в качестве максимального значения My , определяющего необходимость синхронизации, уста­навливается М f = 21. Очевидно, что при синхронизированных сигналах и коэффициент M f является постоянной величиной.

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

    (8.3)

    Согласно (8.3) при М a = 1 амплитуда первой гармоники выходного напряжения равна высоте прямоугольника полуволн U d /2. Характерная зависимость относи­тельного значения первой гармоники выходного напряжения от значения М a пред­ставлена на рис. 8.2, из которого видно, что изменение М a от 0 до 1 линейно и зависит от амплитуды U am 1 . Предельное значение величины М a определяется прин­ципом рассматриваемого вида модуляции, согласно которому максимальное зна­чение U am 1 ограничено высотой полуволны прямоугольной формы, равной U d /2. При дальнейшем увеличении коэффициента М a модуляция приводит к нелиней­ному возрастанию амплитуды U am 1 до максимального значения, определяемого формированием на выходе инвертора напряжения прямоугольной формы, которое в дальнейшем остается неизменным.

    Разложение прямоугольной функции в ряд Фурье дает максимальное значение (8.4):

    (8.4)

    Эта величина ограничивается значением индекса М а, изменяющегося в диапа­зоне от 0 до примерно 3. Очевидно, что функция на интервале а-б значений от 1 до 3,2 является нелинейной (рис. 8.2). Режим работы на этом участке называется сверх модуляцией.

    Значение M f определяется выбором частоты несущего сигнала u H (θ) и сущест­венно влияет на технические характеристики преобразователя. С ростом частоты увеличиваются коммутационные потери в силовых ключах преобразователей, но при этом улучшается спектральный состав выходного напряжения и упрощается реше­ние задачи фильтрации высших гармоник, обусловленных процессом модуляции. Важным фактором выбора значения f H во многих случаях является необходимость обеспечения его значения в звуковом диапазоне частоты более 20 кГц. При выборе f H следует также учитывать уровень рабочих напряжений преобразователя, его мощность и другие параметры.

    Рис. 8.2. Зависимость относительного значе­ния амплитуды основной гармоники выход­ного напряжения от индекса амплитудной модуляции для однофазной полу мостовой схемы

    Общей тенденцией здесь является рост значений M f преобразователей малой мощности и низких напряжений и наоборот. Поэтом выбор M f является многокритериальной оптимизационной задачей.

    Импульсная модуляция со стохастическим процессом . Использование ШИМ в преобразователях связано с появлением высших гармоник в модулируе­мых напряжениях и токах. При этом в спектральном составе этих параметров наиболее значительные гармоники возникают на частотах, кратных индексу час­тотной модуляции M f и сгруппированных около них на боковых частотах гармо­ник с убывающими амплитудами. Высшие гармоники могут порождать следую­щие основные проблемы:

      возникновение акустических шумов;

      ухудшение электромагнитной совместимости (ЭМС) с другими электротех­ническими устройствами или системами.

    Основными источниками акустических шумов являются электромагнитные компоненты (дроссели и трансформаторы), на которые воздействуют ток и напря­жение, содержащие высшие гармоники с частотами звукового диапазона. Следует отметить, что шумы могут возникать на определенных частотах, где высшие гар­моники имеют максимальное значение. Факторы, вызывающие шумы, например явление магнитострикции, усложняют разрешение проблемы ЭМС. Проблемы с ЭМС могут возникать в широком частотном диапазоне в зависимости от критич­ности к уровню электромагнитных помех электротехнических устройств. Тради­ционно для снижения уровня шумов использовались конструктивные и технологи­ческие решения, а для обеспечения ЭМС применялись пассивные фильтры.

    В качестве перспективного направления решения этих проблем рассматрива­ются методы, связанные с изменением характера спектрального состава модули­руемых напряжений и токов. Сущность этих методов состоит в выравнивании час­тотного спектра и снижении амплитуды явно выраженных гармоник за счет стохастического их распределения в широком частотном диапазоне. Такой прием иногда называется «размазыванием» частотного спектра. Концентрация энергии помех уменьшается на частотах, где гармоники могут иметь максимальные значе­ния. Реализация этих методов не связана с воздействием на компоненты силовой части преобразователей и в большинстве случаев ограничена программными средствами с незначительным изменением системы управления.

    Рассмотрим кратко принципы реализации этих методов. В основе ШИМ лежит изменение коэффициента заполнения γ= t и / T n , где t и - длительность импульса; Т n - период его формирования. Обычно эти величины, а также положение импульса на интервале периода Т n являются постоянными в установившихся режимах. Результаты ШИМ определяются как интегральные усредненные значе­ния. В этом случае детерминированные значения t и и включая положение импульса, обусловливают неблагоприятный спектральный состав модулируемых параметров. Если этим величинам придать случайный характер при сохранении заданного значения γ, то процессы становятся стохастическими и спектральный состав модулируемых параметров изменяется. Например, такой случайный харак­тер можно придать положению импульса t и на интервале периода Т n или обеспе­чить стохастическое изменение последнего. Для этой цели может использоваться генератор случайных чисел, воздействующий на задающий генератор частоты модуляции f n =1/T n . Аналогичным образом можно изменять положение импульса на интервале Т n с математическим ожиданием, равным нулю. Усреднен­ное интегральное значение γ должно оставаться на заданном системой регулирова­ния уровне, в результате чего будет реализовано выравнивание спектрального состава высших гармоник в модулируемых напряжениях и токах.

    Вопросы для самоконтроля

    1. Перечислите основные методы ШИМ для обеспечения синусоидальности тока или напряжения.

    2. В чем отличие однополярной модуляции напряжения от двухполярной?

    3. Перечислите основные параметры ШИМ.

    4. С какой целью используется ШИМ со стохастическими процессами?

    На наш взгляд, первое, с чего можно начать знакомство с платформой Arduino это её цифровые выводы. Они нам пригодятся для подключения различной периферии: светодиоды, реле модули и т.п

    На плате Arduino UNO их 14 (D0-D13). Они могут работать как входы, как выходы и как выходы с поддержкой ШИМ.

    Конфигурация выводов как вход либо выход задается в void setup

    pinMode (3, OUTPUT ); // Инициализируем цифровой pin 3 как вход pinMode (3, INPUT );

    1) Цифровые выходы

    После конфигурации цифрового вывода как выхода, мы можем придать ему два значения:

    // Устанавливает высокий уровень напряжения на 3 пине digitalWrite (3, HIGH ); // Устанавливает низкий уровень напряжения на 3 пине digitalWrite (3, LOW );

    При высоком уровне выход работает как "источник питания" с напряжением 5 Вольт, при низком же уровне выход соединяется с землей МК. В двух этих режимах порт может выдать либо принять ток до 40мА. Это позволит подключать к плате Arduino маломощные нагрузки. При превышении тока в 40мА может выгореть либо отдельно порт, либо весь камень.

    Пример на практике

    В качестве первого примера выполним некий "Hello, World!" в тематике Arduino - помигаем светодиодом.

    Плата Arduino уже имеет на своем борту встроенный светодиод подключенный к выводу D13. Можно использовать и его, но в качестве примера соберем первую схемку на макетной плате.

    2) Цифровые выходы с поддержкой ШИМ

    ШИМ (Широтно-Импульсная Модуляция) или PWM (Pulse Width Modulation) представляет собой программное, завязанное на внутренний таймер контроллера, чередование высокого и низкого уровней на порту контроллера с задаваемой скважностью. ШИМ это очень полезная штука, которая пригодится для регулирования яркости светодиодов либо управления скоростью вращения моторов ().

    Не все цифровые выводы имеют поддержку ШИМ. У Arduino UNO их 6 (D3, D5, D6, D9, D10, D11). У других плат количество может отличаться. Смотрите в спецификации.

    В программном коде скважность задается числом от 0(min) до 255(max)

    // Устанавливает ШИМ сигнал на 3 пине со скважностью 150 analogWrite (3, 150);

    Пример на практике

    В качестве наглядного примера поупрявляем яркостью светодиода с помощью ШИМ модуляции.

    Как уже говорилось, Arduino имеет на своем борту встроенный светодиод подключенный к выводу D13. Однако, этот вывод не имеет поддержки ШИМ. ШИМ поддержку имеет вывод D3. К нему, как и в предыдущем примере, мы подключим светодиод

    Для эксперимента нам понадобятся:

    Описание примера:

    При установке высокого уровня (HIGH ), на выводе D3 появляется напряжение, которое протекая через светодиод (LED1) заставляет его светиться. При установке низкого уровня (LOW ), напряжение больше не подается и светодиод не горит. Резистор (R1) необходим для ограничения потребляемого светодиодом тока.

    Скважность ШИМ сигнала, по сути своей, задает интервалы чередования высокого и низкого уровня, т.е. зажигает и гасит светодиод. Благодаря инертности нашего зрения, при частоте мерцания светодиода свыше определенного значения, наш мозг перестает воспринимать реально происходящие мерцания и воспринимает картинку как изменение яркости свечения.

    Принципиальная схема остается такой же как и в первом примере.

    На реальной макетной плате всё будет выглядеть следующим образом:

    Примечания по сборке:

    Вывод D3 соединяется с анодом светодиода, а катод уходит на резистор. У резистора нет полярности и его можно устанавливать любой стороной.

    Пример программного кода:

    // Присваиваем имя цифровому выводу 3 int led = 3; void setup () { // Инициализируем цифровой pin 3 как выход pinMode (led, OUTPUT ); } void loop () { /* Задаем значение ШИМ равное 25 (10% от max) Иными словами (1/10 времени HIGH, 9/10 LOW) Такое мигание находится в диапазоне воспринимаемой человеком. Глаз видит мигание */ analogWrite (led, 25); delay (4000); // Ждем 4 секунды /* Задаем значение ШИМ равное 150 (60% от max) Иными словами (6/10 времени HIGH, 4/10 LOW) Частота смены картинки велика, выше воспринимаемой глазом человека, но не максимальна Глаз воспринимает как постоянно горящий светодиод с определенной яркостью */ analogWrite (led, 150); delay (4000); /* Задаем значение ШИМ равное 255 (100% от max) Иными словами (10/10 времени HIGH, 0/10 LOW) При максимальном значении ШИМ светодиод горит постоянно */ analogWrite (led, 255); delay (4000); // И для финального примера прогоним значения ШИМ от min до max for (int i = 0; i < 255; i++) { analogWrite (led, i); delay (50); } for (int i = 255; i > 0; i--) { analogWrite (led, i); delay (50); } }

    3) Цифровые входы

    Как уже говорилось, цифровые выводы могут использоваться как входы. Самым ярким примером использования данной возможности является подключение кнопки. Чтение производится функцией.

    // Считываем значение с цифрового порта 4 digitalRead (4);

    В ответ получаем значения HIGH или LOW .

    Если к считываемому порту ничего не подключено, то функция digitalRead () может беспорядочно возвращать значения HIGH или LOW. Во избежание ложных срабатываний, входы необходимо подтягивать резистором 10-20кОм. При замыкании кнопки на землю - подтягивать к питанию, при замыкании на питание - к земле.


    "Документация" - техническая информация по применению электронных компонентов , особенностях построения различных радиотехнических и электронных схем , а также документация по особенностям работы с инженерным программным обеспечением и нормативные документы (ГОСТ).

    Фирма Microchip продолжает разработку и производство передовых продуктов, предоставляющих пользователю большую функциональность, гибкость и надежность. Микроконтроллеры PICmicro используются во многих приборах повседневного спроса - от стиральных машин и автомобильной техники до медицинских приборов. Модуль сравнения, захвата и ШИМ (ССР), который присутствует во многих микроконтроллерах Microchip, используется в основном для измерения и формирования импульсных сигналов. Расширенный модуль ССР (enhanced CCP - ECCP), имеющийся во многих новых микроконтроллерах, предоставляет дополнительные возможности для формирования широтно-импульсной модуляции (ШИМ). Модуль ЕССР обеспечивает поддержку управления мостовыми и полумостовыми схемами управления, программируемое время задержки переключения (для предотвращения протекания сквозных токов через внешние силовые ключи, связанного с их разным временем переключения) и возможность автоматического выключения ШИМ при аварийных ситуациях. Модули ССР и ЕССР имеют широкие области применения. Эта статья описывает основные принципы использования данных модулей в каждом режиме, а также "нестандартные" варианты использования в практических решениях.

    Модуль захвата (capture)

    В режиме захвата 16-битное значение таймера (Timer 1) захватывается в регистр CCPRxH:CCPRxL при каждом событии на входе CCPx. Событие для захвата задается в регистре CCPxCON:
    • каждый спад входного сигнала;
    • каждый фронт входного сигнала;
    • каждый 4-й фронт входного сигнала;
    • каждый 16-й фронт входного сигнала.

    Модуль захвата используется для измерения длительности между двумя событиями, например периода, длительности импульса, скважности и т. п.

    Пример 1. Измерение периода дискретного сигнала (рис. 1).

    Рис. 1. Измерение периода

      • вычитаем сохраненное время (t1) из захваченного значения времени (t2) и сохраняем результат периода Т;
      • сохраняем захваченное время t2.

    Пример 2. Измерение периода с усреднением результата (рис. 2).


    Рис. 2. Измерение периода с усреднением результата

    Усреднение результата измерений часто требуется при зашумленном входном сигнале. Модуль ССР в PIC-контроллерах Microchip позволяет выполнить усреднение с минимальными программными издержками.

    1. Конфигурируем управляющие биты CCPxM3:CCPxM0 (CCPxCON) на захват по каждому 16-му фронту входного сигнала.
    2. Конфигурируем предделитель Timer1 так, чтобы не происходило переполнение таймера за измеряемое время.
    3. Разрешаем прерывание от CCP (бит CCPxIE).
    4. При возникновении прерывания:
      • вычитаем сохраненное время (t1) из захваченного значения времени (t2) и сохраняем результат 16 периодов (168Т);
      • сохраняем захваченное время t2;
      • сдвигаем полученный результат на 4 шага вправо (деление на 16) - получаем усредненный результат за 16 периодов.

    Пример 3. Измерение длительности импульса (рис. 3).


    Рис. 3. Измерение длительности импульса

    1. Конфигурируем управляющие биты CCPxM3:CCPxM0 (CCPxCON) на захват по каждому фронту входного сигнала.
    2. Конфигурируем предделитель Timer1 так, чтобы не происходило переполнение таймера за время измеряемого импульса.
    3. Разрешаем прерывание от CCP (бит CCPxIE).
    4. При следующем прерывании вычитаем из t1 новое захваченное значение. Результат будет соответствовать длительности импульса.

    Пример 4. Измерение скважности импульсов (рис. 4).


    Рис. 4. Измерение скважности импульсов

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

    1. Конфигурируем управляющие биты CCPxM3:CCPxM0 (CCPxCON) на захват по каждому фронту входного сигнала.
    2. Конфигурируем предделитель таймера 1 так, чтобы не происходило переполнение таймера за время TMAX (максимально возможная длительность периода).
    3. Разрешаем прерывание от CCP (бит CCPxIE).
    4. При возникновении прерывания сохраняем захваченное значение таймера (t1) и переконфигурируем захват по спаду импульса.
    5. При следующем прерывании вычитаем из t1 новое захваченное значение t2. Этот результат будет соответствовать длительности импульса (W).
    6. Переконфигурируем модуль ССР на захват по следующему фронту импульса.
    7. При возникновении прерывания вычитаем из t1 новое захваченное значение t3. Этот результат будет соответствовать периоду (Т).
    8. Разделить значение T на W - получим значение скважности.
    9. Повторять пп. 4-8 для получения следующих значений скважности.

    Пример 5. Измерение скорости вращения энкодера.


    Рис. 5. Оптический энкодер

    Скорость вращения энкодера может быть измерена разными способами. Два наиболее часто встречающихся типа датчиков в энкодерах - это оптический сенсор и датчики Холла. Оптические энкодеры используют инфракрасный светодиод и датчик, а также колесо с прорезями, модулирующими световой поток (рис. 5). Другой тип использует чувствительные к магнитному полю датчики Холла, с помощью которых можно определять положение магнитов в электромоторе или постоянных магнитов, закрепленных на вращающемся объекте (рис. 6).


    Рис. 6. Энкодер с датчиками Холла

    Такой датчик выдает один или несколько импульсов на один оборот объекта. На рис. 7 показаны временные диаграммы при разных скоростях вращения. При увеличении скорости вращения период импульсов и их длительность становятся меньше. Период и длительность импульса пропорциональны скорости вращения. Для получения большей разрешающей способности лучше использовать датчики с несколькими импульсами на 1 оборот. Описание измерения периода для определения скорости вращения энкодера см. в примере 1, а метод усреднения измерений периода - в примере 2.


    Рис. 7. Выход энкодера при разных скоростях вращения

    Пример 6. Измерение периода аналогового сигнала.


    Рис. 8. Схема измерения периода аналогового сигнала

    Микроконтроллер со встроенным аналоговым компаратором и модулем CCP или ЕССР может быть легко использован для измерения периода аналогового сигнала. На рис. 8 приведен пример схемы с использованием периферийных модулей контроллера PIC16F684. Резисторы R3 и R4 задают порог срабатывания компаратора. При пересечении входным сигналом уровня порога, выходной уровень напряжения компаратора переключается между 0 и 1. Резисторы R1 и R2 задают гистерезис для предотвращения "дребезга" при равенстве порогового и входного напряжений. Рис. 9 демонстрирует эффект гистерезиса.

    Рис. 9. Диаграммы в контрольных точках

    Модуль ССР конфигурируется в режим захвата для измерения периода на выходе компаратора.

    Модуль сравнения (compare)

    В режиме сравнения 16-разрядные значения регистра CCPRx сравниваются с состоянием таймера. При совпадении происходит прерывание и вывод контроллера CCPx:

    • устанавливается в 1;
    • устанавливается в 0;
    • состояние не меняется;
    • переключается конфигурация модуля.

    Реакция вывода определяется битами управляющего регистра CCPxCON .

    Триггер специальных событий

    Таймер 1 обычно не сбрасывается в 0 при возникновении прерывания от модуля CCP в режиме сравнения, кроме случая конфигурации модуля в режим Триггера специального события. В этом режиме, когда значения таймера и регистра CCPRx равны, формируется прерывание, таймер 1 очищается и автоматически запускается преобразование АЦП (если это разрешено).

    Работа модуля в режиме сравнения подобна функции таймера в обычном секундомере. В случае секундомера определенное время загружается в часы и производится отсчет в обратном порядке с установленного времени до достижения нуля. Отличие работы таймера в режиме сравнения заключается в том, что время отсчитывается от нуля до установленного значения. Этот способ полезен для того, чтобы произвести определенные действия в точные интервалы времени. Обычный режим работы таймера может использоваться для исполнения тех же самых функций, однако в этом случае таймер нужно будет перезагружать каждый раз. Режим сравнения также может автоматически изменять состояние вывода CCPx.

    Пример 7. Формирование модулирующих импульсов для различных форматов передачи данных.


    Рис. 10. Широтно-импульсная (ШИМ)

    Модуль ССР в режиме сравнения может использоваться для формирования различных форматов модуляции. На рис. 10-12 приведены различные варианты представления 0 и 1 в различных форматах передачи данных. Передача данных похожа на асинхронную передачу данных, содержащую СТАРТ-бит, восемь информационных бит и СТОП-бит. Время ТЕ является базовым временным элементом в каждом формате модуляции и задает скорость передачи данных. Триггер специального события может использоваться для формирования времени ТЕ. При возникновении прерывания от CCP подпрограмма обработки прерывания формирует требуемый формат передачи данных.

    Рис. 11. Манчестерская модуляция

    Рис. 12. Модуляция положением импульса

    Пример 8.

    Обычно стандартные модули ШИМ имеют разрядность в 10 бит. Модуль ССР в режиме сравнения может использоваться для формирования ШИМ с 16-разрядной точностью. Для этого:

    1. Настраиваем модуль ССР на установку вывода ССРх в "0" в режиме сравнения.
    2. Разрешаем прерывание от Timer 1.
    3. Записываем значение периода в Timer1 и его предделитель.
    4. Устанавливаем длительность импульса в регистр сравнения CCPRxL и CCPRxH.
    5. Устанавливаем выход ССРх в "1" при возникновении прерывания от переполнения Timer1. Следует заметить, что маленькие значения длительности импульса не могут быть сформированы из-за конечного времени обработки прерывания от Timer1. Это не сказывается на периоде формируемого сигнала, так как время выполнения прерывания от периода к периоду будет одинаковым.

    Рис. 13. Формирование 16-разрядной ШИМ

    Таймер Timer1 имеет четыре значения предделителя: 1:1, 1:2, 1:4 и 1:8. Возможная формируемая частота рассчитывается по формуле:

    F PWM = F OSC /(65536 x 4 x предделитель)

    Для микроконтроллера, работающего на частоте FOSC = 20 МГц, значения частот FPWM будут составлять 76,3 Гц, 38,1 Гц, 19,1 Гц и 9,5 Гц.

    Пример 9. Последовательное измерение с помощью АЦП.

    Триггер специального события в режиме сравнения (при совпадении значения Timer1 и регистра сравнения CCPRxL и CCPRxH) может формировать периодические прерывания и дополнительно автоматически запускать измерения АЦП. Покажем на примере, как организовать последовательный опрос АЦП в четко определенные моменты времени.


    Рис. 14. Последовательное измерение напряжений

    Пример. Микроконтроллер PIC16F684 работает от внутреннего генератора, сконфигурированного на работу с частотой 8 МГц. Нужно последовательно опрашивать каналы АЦП и измерять входное напряжение на выводах RA0, RA1 и RA2 через каждые 30 мс.

    Таймер 1 переполняется через время TOSC x 65536 x 4 x предделитель. Для предделителя 1:1 таймер переполнится через 32,8 мс.

    Значение регистра CCPR1 рассчитывается по формуле:

    CCPR1 = время/(TOSC x 4 x предделитель) = 30 мс/ (125 нс x 4 x 1) = 6000 = 0хЕА60 . CCPR1L = 0x60, CCPR1H = 0xEA .

    Модуль ЕССР должен быть сконфигурирован в режим триггера специального события. Этот режим формирует прерывание при совпадении значения Timer1 и регистра сравнения CCPRxL и CCPRxH. Для этого режима CCP1CONТ = "b00001011". При возникновении прерывания таймер автоматически очистится и установит бит GO в регистре ADCON0 для запуска преобразования АЦП. Когда произойдет прерывание от модуля ECCP, нужно выбрать следующий вход АЦП с помощью регистра ADCON0.

    Применение широтно-импульсной модуляции (ШИМ)

    Широтно-импульсная модуляция, рассматриваемая в следующих примерах, используется в разных задачах - от формирования звукового сигнала и управления яркостью светодиодов до управления скоростью вращения электромотора. Все эти задачи основываются на базовом принципе ШИМ-сигнала - чем больше скважность импульсов, тем больше среднее значение напряжения (рис. 15). Зависимость среднего напряжения от величины скважности является линейной:

    V СР = скважность х V макс

    Рис. 15. Зависимость среднего значения напряжения от скважности ШИМ

    Модуль ССР в микроконтроллерах Microchip может формировать ШИМ-сигнал с 10-разрядной точностью на выводе CCPx-микроконтроллера. Расширенный модуль ЕССР может формировать ШИМ на одном из 4 выводов Р1A...P1D в следующих режимах:

    • одиночный выход (только на выводе P1A);
    • управление полумостом (только на выводах P1A и P1B);
    • управление мостом (возможность реверсирования двигателя).

    В мостовом режиме управления доступны четыре варианта работы:

    • PA1A, P1C активный уровень "1"; P1B, P1D активный уровень "1";
    • PA1A, P1C активный уровень "1"; P1B, P1D активный уровень "0";
    • PA1A, P1C активный уровень "0"; P1B, P1D активный уровень "1";
    • PA1A, P1C активный уровень "0"; P1B, P1D активный уровень "0".

    Пример 10. Выбор частоты ШИМ Частота ШИМ зависит от различных факторов. При увеличении частоты увеличиваются потери на переключение, емкость и индуктивность нагрузки влияет на изменение формы сигнала. Поэтому в микромощных устройствах следует выбирать минимально возможную частоту ШИМ, а в схемах с емкостной или индуктивной нагрузкой выбирать частоту исходя из анализа схемы.

    Управление электродвигателями

    ШИМ применяется для управления двигателями в импульсном режиме. По характеристикам двигателя необходимо подобрать значение частоты ШИМ, чтобы обеспечить оптимальные характеристики электропривода. При выборе задающей частоты важным критерием являются акустические шумы, создаваемые двигателем при работе. Коллекторные двигатели могут создавать звуковой шум на частотах от 20 Гц до 4 кГц. Для исключения этого нежелательного эффекта нужно выбирать частоту выше 4 кГц. На таких частотах акустического шума уже не будет, так как механические части имеют более низкие резонансные частоты.

    Светодиоды и устройства освещения

    ШИМ часто используется для изменения яркости световых приборов. Эффект мерцания может быть заметен на частотах ниже 50 Гц, поэтому на практике частота ШИМ выбирается около 100 Гц или выше.

    Пример 11. Управление коллекторным двигателем постоянного тока с использованием модуля ССР

    Скорость вращения двигателя пропорциональна скважности ШИМ на выводе контроллера CCP1 (рис. 16). Рассмотрим, как нужно сконфигурировать микроконтроллер PIC16F628 для формирования ШИМ с частотой 20 кГц и 50-процентной скважностью. Тактовая частота контроллера 20 МГц.


    Рис. 16. Управление скоростью вращения коллекторного двигателя постоянного тока

      Выбираем величину предделителя Таймера 2: F PWM = F OSC /((PR2 x 1) x 4 х предделитель) = 19531 Гц , при PR2 = 255 и предделитель = 1.

      Полученная частота несколько ниже, чем 20 кГц, таким образом, величина предделителя подходит.

      Вычисляем величину регистра периода PR2: PR2 = F OSC /(F PWM x 4 x prescaler) - 1 = 249

      Вычисляем значение регистра скважности CCPR1L и CCPCON: CCPR1L:CCP1CON = = скважность G 0x3FF = 0x1FF CCPR1L = OxlFF " 2 = 0x7F, CCP1CON = 3

    1. Конфигурируем модуль ССР в режим ге нерации ШИМ: CCP1CON = "b001111000" .

    Пример 12.


    Рис. 17. Реверсивное управление коллекторным двигателем постоянного тока с использованием модуля ЕССР

    Модуль ЕССР имеет опции для управления коллекторными двигателями постоянного тока. На рис. 17 приведена схема подключения мостовой схемы управления двигателем. Выводы модуля ЕССР P1A...P1D могут работать в режиме управления мостовой схемой и задавать скорость и направление вращения. Для примера, изображенного на рис. 17, модуль ЕССР конфигурируется так: P1A, P1C активный уровень "1"; P1B, P1D активный уровень "1" (CCP1CON). Это сделано для того, чтобы MOSFET-драйверы (ТС428) открывали выходные ключи. В таблице указана связь между режимами работы двигателя и выходами ШИМ.

    Режим Р1А Р1В Р1С Р1D CCP1CON
    вперед 1 X X ШИМ b01xx1100
    назад X ШИМ 1 X b11xx1100
    инерция X X X X не важно
    торможение X 1 1 X не важно

    Пример 13. Управление шаговым двигателем в режиме микрошага

    Шаговые двигатели занимают уникальную нишу среди всего многообразия применений двигателей. Шаговые двигатели используются в системах измерения (в качестве индикаторов параметров) и в системах управления позиционированием исполнительных механизмов. Часто возникает необходимость управлять шаговым двигателем в режиме микрошага. Применение микроконтроллера дает много преимуществ: возможность управлять скоростью движения вала, то есть варьировать ускорением и торможением, точно позиционировать объект управления. Микроконтроллер PIC16F648 идеально подходит для большинства таких задач управления шаговым двигателем. Этот дешевый 14-вы-водной контроллер имеет 2К слов Flash-памяти программ, восемь каналов 10-разрядного АЦП, два аналоговых компаратора и модуль ECCP. Таким образом, используя только периферию контроллера, можно управлять шаговым двигателем с помощью специализированного модуля ШИМ - ECCP и реализовать защиту по току с помощью встроенного компаратора.

    Подробное описание алгоритма управления шаговым двигателем и пример программы опубликованы на сайте Microchip в документе AN906 "Stepper Motor Control Using the PIC16F684".

    Пример 14. Формирование аналогового сигнала


    Рис. 18. Формирование аналогового сигнала с помощью ШИМ и ФНЧ

    Выход ШИМ может применяться для цифро-аналогового преобразования с помощью нескольких внешних элементов. Преобразование ШИМ-сигнала в аналоговый осуществляется на основе фильтра ФНЧ (рис. 18). Для исключения появления в выходном сигнале нежелательных гармоник необходимо, чтобы частота модуляции (F PWM) была намного выше, чем частота выходного сигнала (F BW):

    F PWM =К x F BW ,

    причем, чем больше значение К, тем меньше гармоник.

    Для расчета фильтра применяется следующая формула:

    RC=1/(2πF BW)

    Выбрав значение емкости С, вычисляют значение резистора R. Подавление частоты ШИМ в выходном сигнале определяется выражением:

    -10 x log (дБ)

    Если подавление недостаточное, то увеличивают коэффициент К, увеличивая тем самым частоту модуляции. Подробное описание примера реализации есть в документе AN538 "Using PWM to Generate Analog Output in PIC17C42" на сайте Microchip.

    Пример 15. Повышающий преобразователь напряжения


    Рис. 19. Повышающий преобразователь

    Широтно-импульсная модуляция используется в преобразователях напряжения, например в повышающих схемах (рис. 19). Работу схемы можно разделить на две фазы. В первой фазе, когда на выходе ШИМ активный единичный уровень, происходит накопление энергии в катушке L1 путем подключения ее вывода на "землю" транзистором Т1. Во второй фазе на выходе ШИМ нулевой уровень, который запирает транзистор. Ток из катушки течет через диод D1 на конденсатор накопления С2 и на нагрузку. При этом напряжение на нагрузке получается выше напряжения питания. Расчет необходимых характеристик схемы производится по формулам:

    U вых /U вх =1/(1-D) ,

    где D - скважность импульсов ШИМ.

    Выбор значения индуктивности производится на основе максимального выходного тока:

    L = U вх (1-D)DT/2I вых ,

    где Т - период ШИМ.

    При расчете максимальная скважность D принимается не более 75%, а частота ШИМ - 10...100 кГц. Также необходимо рассчитать пульсации тока:

    I пульс = U вх DT

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

    кважность ШИМ вычисляется контроллером по закону ПИД, что позволяет поддерживать выходное напряжение при изменении нагрузки. Более подробно данный метод описан в примере AN258 "Low Cost USB Microcontroller Programmer" на сайте Microchip.

    Пример 16. Управление яркостью светодиодов

    Для изменения яркости светодиодов можно использовать ШИМ. Для этого на выход ССР подключается светодиод через резистор, ограничивающий максимальный ток. Изменяя скважность импульсов с помощью регистра CCPRxL в широких пределах (00...FF), можно менять яркость свечения. Необходимо отметить, что частота ШИМ должна быть не менее 100 Гц для устранения мерцания.

    Пример 17. Протокол передачи данных Х-10. Синтез несущей частоты

    Для передачи информации по электросетям, например, передачи данных внутри квартиры по силовой проводке 220 В, часто используется протокол Х-10. На основную частоту (50/60 Гц) накладывается модулированный сигнал более высокой частоты (120 кГц). Для получения такой частоты в контроллере можно применять модуль ССР в режиме ШИМ. На рис. 6 показана реализация передатчика.

    В соответствии со спецификацией Х-10 частота 120 кГц должна иметь отклонения не более 2 кГц. Получение точного значения частоты в модуле ССР обусловлено примением системного кварца частотой 7,68 МГц. Подключение несущей частоты осуществляется в момент перехода сетевого напряжения через ноль.

    В примере AN236 "X-10 Home Automation Using the PIC16F877A" можно найти более детальное описание протокола и исходные коды программ.

    Рис. 20. Схема передачи сообщений по силовой сети 220 В по протоколу Х-10

    Совместное использование модулей захвата, сравнения, ШИМ

    Модуль ССР (ЕССР) в контроллерах Microchip может программироваться "на лету", за счет чего эти модули могут выполнять различные функции в одном и том же устройстве в зависимости от алгоритма работы. Рассмотрим возможности гибкого изменения функций на конкретных примерах.

    Пример 18. Автоопределение скорости передачи RS-232

    Интерфейс связи RS-232 имеет различные скорости передачи. Возможность устройства определять скорость связи и автоматически настраивать приемник и передатчик требует наличие в программе устройства соответствующих процедур.

    Во многих новых контроллерах Microchip существует аппаратный модуль EUSART с возможностью автоматического определения скорости приема данных и подстройки скорости передачи, возможностью работы в режиме SLEEP и другими функциями, необходимыми для реализации таких протоколов, как LIN.


    Рис. 21. Калибровочный символ для автоопределения скорости передачи RS-232

    В тех контроллерах, где нет аппаратного модуля USART, модуль ССР можно использовать в режиме захвата для автоматического определения скорости связи и затем перенастроить в режим сравнения для формирования или приема данных через RS-232. Для работы алгоритма автоопределения скорости необходим калибровочный байт, с которого начинается передача данных от одного устройства к другому. Один из возможных калибровочных символов изображен на рис. 21. Известные временные параметры калибровочного символа позволяют принимающему устройству определить и настроить скорость передачи интерфейса RS-232.

    Алгоритм определения скорости передачи по калибровочному символу:

    1. Настраиваем модуль ССР на захват по спаду (определение стартового бита).
    2. Когда стартовый бит определен, сохраняем значение регистра CCPR1.
    3. Настраиваем модуль ССР на захват по фронту (определение стопового бита).
    4. Когда стоповый бит определен, сохраняем значение регистра CCPR1.
    5. Определяем разность между значениями CCPR1, полученными в п. 4 и в п. 2. Это время 8 битовых интервалов.
    6. Разность сдвигаем на три бита вправо для деления на 8. Полученное значение - время битового интервала.
    7. Сдвигаем еще на один бит вправо. Получаем время половины битового интервала.

    Примеры программ для организации приема и передачи информации по последовательному каналу, а также процедуры автоопределения скорости передачи есть в AN712 "RS-232 Autobaud for the PIC16C5X Devices".

    Пример 19. АЦП двойного интегрирования

    Модуль ССР позволяет построить АЦП двойного интегрирования на основе внешнего интегратора. На рис. 8 представлена схема такого устройства. Интегрирование входного сигнала U вх осуществляется за фиксированный промежуток времени Т1. Затем на вход интегратора подается U оп и измеряется время, за которое на выходе интегратора появится нулевой уровень. По временам Т1 и Т2, а также по U оп можно вычислить U вх.


    Рис. 22. АЦП двойного интегрирования с применением модуля ССР

    Для задания времени Т1 нужно использовать режим сравнения модуля ССР, а для определения Т2 - режим захвата. Кратко алгоритм можно представить так:

    • Настраиваем ССР на режим сравнения, используем триггер специального события.
    • Подключаем Uвх на вход интегратора.
    • Отсчитываем Т1. Это время определяется параметрами интегратора.
    • По прерыванию от ССР подключаем на вход интегратора Uоп и задаем режим захвата модуля ССР по спаду.
    • По прерыванию от ССР фиксируем время Т2.
    • Вычисляем величину Uвх.
    U вх = U оп T2/T1

    Благодаря большому разнообразию контроллеров Microchip и их программной и аппаратной совместимости все описанные примеры могут быть легко перенесены на тот или иной контроллер в зависимости от требований разрабатываемой системы. Компания Microchip постоянно расширяет номенклатуру контроллеров как в сторону уменьшения числа выводов и увеличения периферийных устройств, так и в сторону мощных контроллеров с большим объемом памяти и с максимально возможной периферией.


    Дата публикации: 01.09.2004

    Мнения читателей
    • Олег / 03.03.2015 - 13:52
      Отличная статья. Спасибо!
    • Катя. / 24.12.2009 - 09:08
      я прошу вас надати мені інформація.