Продукти

Как работи PWM на хардуерно ниво

Как работи PWM на хардуерно ниво
20 януари 2026

Въведение

PWM (Pulse Width Modulation – широчинно-импулсна модулация) е един от най-използваните методи за управление на мощност в електрониката. Чрез него можем да регулираме скоростта на DC мотори, яркостта на LED, позицията на сервомотори и много други устройства, без реално да променяме захранващото напрежение.

В тази статия ще разгледаме как PWM работи на хардуерно ниво, а не само как се използва софтуерно.

 

1. Какво представлява PWM? 

PWM е цифров сигнал, който:

  • Има само две състояния: HIGH (1) и LOW (0);

  • Бързо превключва между тях;

  • Управлява средната мощност към товара.

Основни параметри:

  • Честота – колко пъти в секунда сигналът се повтаря;

  • Duty Cycle (%) – колко време сигналът е HIGH в рамките на един период.

Пример:

  • 0% → винаги LOW;

  • 50% → половината време HIGH;

  • 100% → винаги HIGH.

 

 

2. Защо PWM е по-добър от аналогово управление? 

Ако искаме да намалим напрежението с резистор:

  • Губим енергия като топлина;

  • Ниска ефективност.

С PWM:

  • Напрежението е винаги пълно (например 5V);

  • Просто се включва и изключва бързо;

  • Много висока ефективност.

 

 

3. Как се генерира PWM на хардуерно ниво?

Основни хардуерни блокове:

  1. Таймер (Timer);

  2. Брояч (Counter);

  3. Компаратор (Comparator);

  4. Регистри;

  5. Изходен пин.

 

4. Работа на таймера

Таймерът:

  • Работи с вътрешен часовник (например 16MHz);

  • Брои нагоре или надолу;

  • Нулира се при достигане на зададена стойност.

Пример:

  • Таймер брои от 0 до 255;

  • След това започва отново.

Това определя честотата на PWM

 

 

5. Компаратор – сърцето на PWM

Компараторът:

  • Сравнява стойността на брояча;

  • Със зададена референтна стойност (OCR регистър).

Принцип:

Брояч OCR Изход
< OCR HIGH  
> OCR LOW  

 

 

Пример:

  • OCR = 128

  • Таймер: 0–255

  • Duty cycle ≈ 50%

 

 

6. Регистри в микроконтролера

Най-често използвани регистри:

  • TCNT – текуща стойност на брояча;

  • OCR – стойност за сравнение;

  • TCCR – конфигурация на таймера;

  • TOP – максимална стойност.

 

 

7. Типове PWM режими

Fast PWM

  • Броячът расте само нагоре;

  • По-висока честота;

  • По-груба резолюция.

Phase Correct PWM

  • Броячът расте и пада;

  • По-симетричен сигнал;

  • По-точен duty cycle.

 

 

8. Как микроконтролерът генерира сигнала физически? 

На хардуерно ниво:

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

  2. Таймерът брои;

  3. Компаратор сравнява;

  4. Логическа схема управлява пина;

  5. Пинът се превключва HIGH/LOW.

Всичко това става без намеса на CPU

 

 

9. Как честотата се определя

Формула:

PWM честота = Тактова честота / (Prescaler * TOP)

Пример:

  • 16MHz

  • Prescaler = 64

  • TOP = 255

 

10. Реален пример – управление на LED

  • 0% → изгасен

  • 50% → полусветъл

  • 100% → максимална яркост

 

 

11. Предимства на хардуерния PWM

  • Много точен;

  • Не товари процесора;

  • Стабилна честота;

  • Работи независимо от кода.

 

 

12. Разлика между софтуерен и хардуерен PWM

 

Хардуерен PWM Софтуерен PWM
В таймера В цикъл
Точен Неточен
Не товари CPU Товари CPU
Стабилен Зависи от кода

 

13. Често срещани грешки

  • Грешен prescaler;

  • Неподходяща честота;

  • Шум в сигнала;

  • Лошо филтриране.

 

 

14. Заключение

PWM е мощна техника, която работи изцяло на хардуерно ниво чрез таймери, компаратори и логически блокове. Разбирането на този механизъм позволява:

  • По-добра оптимизация;

  • По-прецизно управление;

  • Професионален дизайн.