Что такое ШИМ-контроллер PWM и для чего он нужен
Любой радиолюбитель, начинающий телемастер или электрик рано или поздно столкнётся с такой штукой, как ШИМ-контроллер. За рубежом он маркируется как PWM. Поэтому сегодня я хочу остановиться на вопросе что такое ШИМ-контроллер, как он работает и для чего нужен. Даже если Вы не планируете заниматься ремонтом электронной техники, всё равно эта статья будет интересна для общего ознакомления.
Широтно-импульсный модулятор — принцип работы
Аббревиатура ШИМ расшифровывается, как широтно-импульсный модулятор. На английском это будет так — pulse-width modulation или PWM. В теле- и радио-технике ШИМ-контроллеры используются для преобразования напряжения, их можно встетить даже в качестве узлов системы управления скоростью электроприводов в бытовых приборах, меняя скорость электродвигателя. PWM-контроллер есть даже в обычных импульсных блоках питания.
Там постоянное напряжение на входе преобразуется в импульсы прямоугольной формы, которые формируются с определенной частотой и с определённой скважностью. На выходе, с помощью управляющих сигналов, получается регулировать работу целого транзисторного модуля большой мощности. Таким образом разработчики получили блок управления напряжением регулируемого типа, который значительно меньше и удобнее старых, которые используют понижающий трансформатор, диодный мост и фильтр помех.
Главные плюсы ШИМ:
В Интернете Вы можете встретить ШИМ-контроллер на Arduino или NE555. Это не совсем контроллер, а скорее уже генератор ШИМ-импульсов, в которых нет возможности подключения цепи обратной связи. Такие устройства подходят больше для регуляторов напряжения, чем для обеспечения стабильного питания приборов, ведь они могут использоваться только для регулирования выходных параметров, но не для их стабилизации.
Стандартная схема ШИМ-контроллера, который используется в теле-, радио- и иной электронной аппаратуре, характеризуется наличием нескольких выходов.
Общий вывод (GND) — контакт подключается к общему проводу схемы питания контролера. Он соединен с аналогичным контактом схемы подачи питания модуля и контроллирует напряжение на выходе схемы, отключая ее при снижении значения ниже пороговой величины.
Вывод питания (VC) — этот вывод ШИМ-контроллера отвечает за энергоснабжение схемы и подключение питания. Как правило, вывод контроля питания и вывод питания располагаются рядом друг с другом. Не перепутайте его с выводом VCC.
Вывод контроля питания (VCC) — следит, чтобы напряжение питания микросхемы было выше определенного значения. Обычно этот контакт соединяют с VC. Если напряжение на этом выводе падает ниже заданного порогового значения для данного PWM-контроллера, то контроллер выключается. Если этого не делать, то при снижении напряжение на выходе схемы, то транзисторы начнут открываться не полностью и будут быстро нагреваться, что приведёт к поломке.
Выход контроллера OUT – это выходное управляющее напряжение, другими словами отсюда подаётся управляющий ШИМ-сигнал для силовых ключей. Тут надо отметить, что микросхемы бывают разные. Например, есть с друмя выходами — двухтактные, которые применяются для управления двухплечевыми каскадами. Да и сам выходной каскад может быть одно- и двухтактным. Тут главное не запутаться!
Вывод VREF — Опорное напряжение. Обеспечивает работу функции формирования стабильно опорного напряжения. Как правило, екомендуется соединять его с общим проводом конденсатором 1 мкФ для повышения качества и стабильности опорного напряжения.
Вывод ILIM — Ограничитель выходного тока. Это сигнал с датчика тока. Если напряжение на этом выводе превышает заданный порог (как правило, это 1 Вольт), то ШИМ-контроллер закрывает силовые ключи. Если же превышается ещё больший порог (обычно 1.5 Вольта), то PWM-контроллер сбрасывает напряжение на ножке мягкого старта и импульсы на выходе прекращаются.
Вывод ILIMREF — задаёт значение ограничения выходного тока на выводе ILIM.
Вывод SS — так называемый «мягкий старт». Напряжение на этом контакте ограничивает максимально возможную ширину импульсов. Сюда ШИМ-контроллер подает ток фиксированной силы.
Вывод RtCt – используется для подключения времязадающей RC-цепи, используемой для определения частоты ШИМ-сигнала.
Вывод RAMP – это ввод сравнения. Рабоает это так. На контакт подаётся пилообразное напряжение. Как только оно превышает значение напряжение на выходе усиления ошибки, вывод OUT появляется отключающий сигнал. Это основа ШИМ-регулирования.
Вывод CLOCK – тактовые импульсы. Используются для синхронизации между собой сразу нескольких ШИМ-контроллеров. В этом случае RC-цепь подключается только к ведущему контроллеру, RT ведомых соединяется с Vref, а CT ведомых соединяюся с общим.
Вывод INV — это инвертирующий вход компаратора. На нём построен усилитель ошибки. Чем больше напряжение на INV, тем длиннее выходные импульсы.
Вывод NONINV – это неинвертирующий вход компаратора. Его обычно подключают к общему проводу — GND.
Вывод EAOUT — выход усилителя ошибки — Error Amplifier Output. С этого вывода осуществляется частотная коррекция усилителя ошибки, путём подачи сигналов на INV через частотозависимые цепи. Дело в том, что PWM-контроллер достаточно медленно реагирует на воздействие через вход усилителя ошибки и потому схема может сгореть из-за возбуждения. Поэтому и применяется вывод EAOUT.
Как проверить ШИМ-контроллер
Есть несколько способов как сделать проверку ШИМ-контроллера. Можно, конечно это сделать без мультиметра, но зачем так мучаться, если можно воспользоваться нормальным прибором.
Прежде, чем проверять работу ШИМ-контроллера, необходимо выполнить базовую диагностику самого блока питания. Она выполняется так:
Шаг 1. Внимательно осмотреть в выключенном состоянии сам источник питания, в котором установлен PWM. В частности надо тщательно осмотреть электролитические конденсаторы на предмет вздутости.
Шаг 2. Провести проверку предохранителя и элементов входного фильтра блока питания на исправность.
Шаг 3. Провести проверку на короткое замыкание или обрыв диодов выпрямительного моста. Прозвонить их можно не выпаивая из платы. При этом надо быть уверенным, что проверяемая цепь не шунтируется обмотками трансформатора или резистором. Если есть на это подозрение, то всё таки придётся выпаивать элементы и проверять уже по отдельности.
Шаг 4. Провести проверку исправностм выходных цепей, а именно электролитических конденсаторов низкочастотных фильтров, выпрямительных диодов, диодных сборок и т.п.
Шаг 5. Провести проверку силовых транзисторов высокочастотного преобразователя и транзисторов каскада управления. При этом в обязательном порядке проверьте возвратные диоды, которые включенны параллельно электродам коллектор-эмиттер силовых транзисторов.
Широтно-импульсная модуляция (ШИМ)
Как нам уже известно из первых уроков, любой микроконтроллер умеет хорошо работать с цифровыми сигналами. Он легко справляется с арифметическими операциями над цифровыми данными, принимает и передаёт цифровые сигналы по линиям связи. А что значит «цифровые» в данном случае?
В самом первом уроке мы зажигали и гасили светодиод с помощью Ардуино. Для того, чтобы зажечь светодиод, мы подавали на его анод высокий уровень сигнала. А чтобы погасить — низкий уровень. Получается, для управления мы использовали только два уровня напряжения: высокий и низкий. Светодиод либо будет гореть, либо не будет. Третьего — не дано. Оперируя только двумя состояниями означает, что мы работаем с цифровым сигналом.
Но что делать, если нам нужно зажечь этот самый светодиод только на половину яркости? Или запустить двигатель, на 30% его мощности? Для решения этой задачи используют подход, называемый широтно-импульсной модуляцией сигнала. О том, что такое ШИМ и как это работает, мы узнаем на сегодняшнем уроке.
Широтно-импульсная модуляция — ШИМ
Разберем понятие ШИМ на примере управления скоростью вращения двигателя постоянного тока. Поставим своей целью запустить мотор на 50% от его максимальной скорости. Пусть наш двигатель идеальный и чтобы достичь заданной скорости, нам нужно в единицу времени передавать на мотор в два раза меньше мощности. Как это сделать, не меняя источник питания?
Проведем мысленный эксперимент (а кто-то может и натуральный — ничего сложного). Возьмём мотор постоянного тока с массивным маховиком, закрепленным на валу (таким маховиком может служить колесо). Подадим питание от аккумулятора и мотор начнет набирать обороты. Через какое-то время, мотор достигнет номинальной мощности, а его ротор максимальной скорости вращения. Отключим питание, и мотор постепенно начнет замедляться вплоть до полной остановки.
Следующий опыт. Снова включим мотор, и когда его скорость достигнет половины от максимальной — выключим. Заметив, что скорость падает — снова включим. И так далее. Включая и выключая питание мотора, мы заставим ротор вращаться со скоростью, близкой к половине от максимальной!
Разумеется, в силу человеческой медлительности, мотор будет удерживать заданную скорость с некоторой погрешностью. Другими словами, скорость будет «плавать» вокруг заданного значения. Чтобы минимизировать эти отклонения, нам потребуется увеличить частоту переключений. Тут уже не обойтись без автоматики.
А как заставить мотор вращаться медленнее или быстрее? Количество переданной мотору энергии будет зависеть от отношения времени когда мотор включен — tвкл к времени когда он выключен — tвыкл.
Так, для передачи мотору 50% мощности, tвкл будет равно tвыкл. Такой случай как раз изображен на графике. Чтобы мотор вращался еще медленнее, скажем с мощностью 25% от номинальной, придется время включения мотора уменьшить до этих самых 25% от общего периода управления T.
Таким образом, имея возможность менять ширину импульсов, мы можем достаточно точно управлять скоростью вращения мотора.
Собственно, рассмотренный способ управления мощностью и называется широтно-импульсной модуляцией сигнала, а сокращённо — ШИМ. Теперь рассмотрим параметры которые характеризуют ШИМ сигнал и которые следует учитывать при написании программ для микроконтроллеров.
Коэффициент заполнения (duty cycle)
Начнем с самого главного параметра — коэффициента заполнения D (он же duty cycle). Этот коэффициент равен отношению периода ШИМ сигнала к ширине импульса:
Пример ШИМ сигнала для разных значений D:
Чем больше D, тем больше мощности мы передаем управляемому устройству, например, двигателю. Так, при D = 1 двигатель работает на 100% мощности, при D = 0,5 — наполовину мощности, при D = 0 — двигатель полностью отключен.
Кстати, кроме коэффициента заполнения для характеризации ШИМ применяют и другой параметр — скважность S. Эти два параметра связаны выражением:
Скважность, как и коэффициент заполнения — величина безразмерная. В отличие от D, она может принимать значения от 1 до бесконечности. Но чаще всего, особенно в англоязычных источниках, используют именно D.
Частота ШИМ
Частота ШИМ определяет период импульса — T (см картинку выше). Требования к этой частоте диктуются несколькими факторами, в зависимости от типа управляемого устройства.
В случае управления светодиодами одним из главных факторов становится видимость мерцания. Чем выше частота, тем менее заметно мерцание излучаемого света. Высокая частота также помогает снизить влияние температурных скачков, которые светодиоды не любят. На практике для светодиодов достаточно иметь частоту ШИМ в пределах 100-300 Гц.
С моторами постоянного тока дела обстоят немного иначе. С одной стороны, чем больше частота, тем более плавно и менее шумно работает мотор. С другой — на высоких частотах падает крутящий момент. Нужен баланс. Более подробно о моторах мы поговорим в одной из будущих статей, а пока рекомендуем для большинства DIY задач использовать частоту ШИМ 2кГц.
Плюс, общая проблема для всех случаев управления силовой нагрузкой — потери в цепях силовой коммутации (в транзисторах, и не только), которые увеличиваются с ростом частоты ШИМ. Чем больше частота, тем большее время транзисторы находятся в переходных состояниях, активно выделяя тепло и снижая эффективность системы.
Разрешение ШИМ
Ещё один важный параметр — разрешение ШИМ сигнала. Этот параметр показывает, с какой точностью мы можем менять коэффициент заполнения. Чем больше разрешение, тем плавнее будет меняться мощность на управляемом устройстве.
Например, у платы Ардуино с базовыми настройками, разрешение ШИМ — 256. То есть мы можем изменять сигнал от 0 до 255 — не густо, но для большинства DIY задач хватает.
ШИМ и микроконтроллеры
Простейший генератор ШИМ можно собрать и без всяких микроконтроллеров, только лишь с микросхемой таймера 555. Разумеется, любой микроконтроллер тоже умеет работать с ШИМ сигналом.
Например, у платы Ардуино имеется 6 контактов: 3, 5, 6, 9, 10 и 11, которые можно настроить для генерации аппаратного ШИМ. По-умолчанию, на контактах 5 и 6 частота сигнала будет 1кГц, на остальных — скромные 500Гц. Как ими пользоваться ШИМ на Ардуино подробно рассказывается на уроке «Ардуино: ШИМ» (скоро будет).
STM32F103 — гораздо более серьёзный микроконтроллер. У него целых 20 контактов имеют возможность генерации ШИМ. Частота этого микроконтроллера — 72МГц, что делает возможным плавное и точное управление моторами постоянного тока, не говоря уже о светодиодах. Узнаём подробности в уроке про STM32 и ШИМ.
Кстати, микроконтроллеры умеют не только генерировать ШИМ, но и детектировать подобные сигналы. Про это можно почитать в соответствующей статье на нашем портале (скоро будет).