Широтно-импульсная модуляция (ШИМ) — это метод, используемый микроконтроллерами для управления питанием путем включения и выключения сигналов с высокой скоростью. Он используется в светодиодах, двигателях, сервоприводах, аудиосистемах и системах питания. В этой статье подробно описываются основы ШИМ, рабочий цикл, работа таймера, режимы, частота, разрешение и передовые методы.
С1. Обзор широтно-импульсной модуляции (ШИМ)
С2. Коэффициент заполнения широтно-импульсной модуляции
С3. Таймер широтно-импульсной модуляции
С4. Режимы ШИМ с выравниванием по краям и по центру
С5. Выбор правильной частоты ШИМ
С6. Разрешение ШИМ и размер шага
С7. Пример предварительного делителя ШИМ и настройки периода
С8. Передовые методы работы с каналами ШИМ
С9. Сервопривод с ШИМ-сигналами
С10. Заключение
С11. Часто задаваемые вопросы [FAQ]

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

Осциллограмма показывает повторяющийся сигнал, который переключается между 0 В и 5 В. Период обозначается как 10 мс, что соответствует времени одного полного цикла. В течение этого периода сигнал остается высоким (5 В) в течение 3 мс, что называется длительностью импульса. Затем рабочий цикл рассчитывается как отношение времени максимума к общему периоду, что дает в данном случае 30%. Это означает, что сигнал подает питание только 30% времени за цикл. Частота также рассчитывается как 1 ÷ 10 мс = 100 Гц.
Расчет коэффициента заполнения в таймерах микроконтроллера
Коэффициент заполнения показывает, сколько времени включен сигнал по сравнению с полным циклом сигнала. В микроконтроллере это важно, потому что он определяет, сколько энергии передается устройству в течение каждого цикла.
Чтобы рассчитать его, используйте простую формулу: Коэффициент заполнения (%) = (Ширина импульса ÷ период) × 100. Если сигнал активен в состоянии HIGH, то коэффициент заполнения равен доле времени, в течение которого сигнал остается в состоянии HIGH. Если сигнал активен в состоянии LOW, то коэффициент заполнения равен доле времени, в течение которого он остается в состоянии LOW.
Таймер широтно-импульсной модуляции

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

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

В ШИМ, выровненной по центру, счетчик отсчитывает вверх, а затем вниз в течение каждого цикла. Это гарантирует, что коммутационные края распределяются вокруг центра сигнала, создавая более сбалансированный выходной сигнал. Симметрия снижает гармоники, пульсации крутящего момента в двигателях и электромагнитные помехи в системах питания. Несмотря на то, что он немного сложнее и менее эффективен с точки зрения использования частоты, он обеспечивает гораздо более чистое качество выходного сигнала.
Выбор правильной частоты ШИМ
• Для затемнения светодиодов требуется частота выше 200 Гц для устранения видимого мерцания, в то время как подсветка дисплея и высококачественные системы освещения часто используют частоту 20–40 кГц, чтобы оставаться вне человеческого восприятия и минимизировать шум.
• Электродвигатели лучше всего работают с частотами ШИМ в диапазоне от 2 до 20 кГц, уравновешивая потери при переключении с плавностью крутящего момента; Более низкие значения обеспечивают более высокое разрешение в рабочем цикле, в то время как более высокие значения снижают слышимый шум и пульсации.
• Стандартные хобби-сервоприводы основаны на фиксированных управляющих сигналах в частоте около 50 Гц (период 20 мс), где угловое положение определяется длительностью импульса, а не частотой.
• Для генерации звука и цифро-аналогового преобразования требуется ШИМ значительно выше слышимого спектра, на частоте более 22 кГц, чтобы предотвратить помехи и обеспечить чистую фильтрацию сигналов.
• В силовой электронике выбор частоты часто сводится к компромиссу между эффективностью, коммутационными потерями, электромагнитными помехами и динамической реакцией конкретной нагрузки.
Разрешение ШИМ и размер шага
Решение (шаги)
Количество дискретных уровней рабочего цикла задается числом периодов таймера (N). Например, если счетчик изменяется от 0 до 1023, это дает 1024 различных шага рабочего цикла. Чем больше подсчеты, тем точнее контроль выхода.
Разрядность
Разрешение часто выражается в битах, вычисляемых как log₂(N). Счетчик с шагом 1024 соответствует 10-битному разрешению, а счетчик 65536 — 16-битному. Это определяет, насколько точно можно отрегулировать рабочий цикл.
Шаг во времени
Системные часы определяют наименьшее приращение, равное 1 ÷ fClock. Более высокие тактовые частоты позволяют использовать более короткие периоды и более высокие частоты ШИМ, сохраняя при этом высокое разрешение.
Компромиссы
Увеличение разрешения требует большего количества таймеров, что, в свою очередь, снижает максимальную частоту ШИМ для данного тактового сигнала. И наоборот, более высокие частоты снижают доступное разрешение.
Предделитель ШИМ и пример настройки периода
| Шаг | Расчет | Результат | Подробное описание |
|---|---|---|---|
| Часы MCU | - | 24 МГц | Базовая частота, приводящая в движение таймер. |
| Применить предварительный делитель ÷8 | 24 МГц ÷ 8 | 3 МГц | Диапазон таймера был уменьшен до управляемого диапазона подсчета. |
| Период таймера | 3 МГц × 0,020 с | 60 000 счетов | Установка регистра автоматической перезагрузки/периода на 60 000 дает кадр длительностью 20 мс. |
| Разрешение за такт | 1 ÷ 3 МГц | 0,333 μс | Каждый шаг таймера равен \~0,33 микросекунды. |
| Сервоимпульсное управление | Длительность импульса 1–2 мс = 3000–6000 тактов | Обеспечивает плавное угловое управление в пределах кадра 20 мс. | - |
Передовые методы работы с каналами ШИМ
Вставка мёртвого времени
Мертвое время — это малая контролируемая задержка, вставляемая между переключением комплементарных транзисторов в полумостовой или полномостовой цепи. Без него устройства как высокого, так и низкого напряжения могут на мгновение работать одновременно, вызывая короткое замыкание, известное как простреливание. Добавляя несколько десятков или сотен наносекунд мертвого времени, аппаратное обеспечение обеспечивает безопасные переходы, защищая MOSFET или IGBT от повреждений.
Дополнительные результаты
Комплементарные выходы генерируют два сигнала, которые являются логически противоположными друг другу. Это особенно полезно в двухтактных цепях, драйверах двигателей и инверторных каскадах, где один транзистор должен выключаться точно при включении другого. Использование комплементарных пар ШИМ упрощает схемотехнику драйвера и обеспечивает симметрию, повышая эффективность и уменьшая искажения.
Синхронные обновления
В системах с несколькими каналами ШИМ синхронные обновления позволяют одновременно обновлять все выходы. Без этой функции могут возникать небольшие временные несоответствия (асимметрия), что приводит к неравномерной работе. В трехфазных электроприводах или многофазных преобразователях синхронизированная ШИМ обеспечивает балансировку, плавную работу и снижение электромагнитных помех.
Перекрестный запуск
Перекрестный запуск позволяет таймерам взаимодействовать друг с другом, так что одно событие ШИМ может запуститься, сбросить или настроить другой таймер. Эта функция является мощной в современных системах управления, позволяя точно координировать несколько сигналов. Приложения включают каскадные приводы двигателей, чередующиеся преобразователи энергии и синхронизированную выборку датчиков, где временные отношения между каналами имеют решающее значение.
Сервопривод с сигналами ШИМ
| Длительность импульса | Сервопривод |
|---|---|
| \~1,0 мс | Полностью поворачивает влево или вращается по часовой стрелке на полной скорости |
| \~1,5 мс | Остается посередине или перестает двигаться |
| \~2,0 мс | Полностью поворачивает вправо или вращается против часовой стрелки на полной скорости |
Заключение
ШИМ является основным инструментом, позволяющим цифровым системам управлять аналоговыми устройствами с высокой точностью и эффективностью. Изучая рабочие циклы, настройку таймера, выбор частоты, компромиссы между разрешением и передовые методы, такие как мертвое время или гамма-коррекция, вы можете проектировать надежные системы. ШИМ продолжает поддерживать современную электронику в области освещения, движения, звука и питания.
Часто задаваемые вопросы [FAQ]
Повышает ли ШИМ энергоэффективность?
Да. ШИМ полностью включает или выключает устройства, сводя к минимуму потери тепла по сравнению с аналоговым управлением напряжением.
Создает ли ШИМ электромагнитные помехи (ЭМП)?
Да. Быстрое переключение генерирует гармоники, вызывающие электромагнитные помехи. Выровненная по центру ШИМ снижает его, а фильтры помогают подавлять шум.
Зачем использовать фильтр нижних частот с ШИМ?
Фильтр нижних частот сглаживает прямоугольный сигнал до среднего напряжения постоянного тока, что полезно для аудио, аналоговых выходов и моделирования датчиков.
Может ли ШИМ управлять нагревательными элементами?
Да. Нагреватели реагируют медленно, поэтому даже низкие частоты ШИМ (10–100 Гц) обеспечивают стабильный контроль температуры.
Для чего используется ШИМ с фазовым сдвигом?
Он смещает синхронизацию между каналами для уменьшения скачков тока и балансировки нагрузок, что характерно для многофазных преобразователей и моторных приводов.
Как микроконтроллеры предотвращают джиттер ШИМ?
Они используют регистры с двойной буферизацией и синхронизированные обновления, поэтому изменения коэффициента заполнения применяются в начале каждого цикла.