Принцип работы шим – Широтно-импульсная модуляция — Википедия

Содержание

Широтно-импульсная модуляция — Википедия

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

Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощностью методом пульсирующего включения и выключения прибора. Различают аналоговую ШИМ и цифровую ШИМ, двоичную (двухуровневую) ШИМ и троичную (трёхуровневую) ШИМ[1].

Основной причиной применения ШИМ является стремление к повышению КПД при построении вторичных источников питания электронной аппаратуры и в других узлах, например, ШИМ используется для регулировки яркости подсветки LCD-мониторов и дисплеев в телефонах, КПК и т.п..

Тепловая мощность, выделяемая на ключе при ШИМ[править | править код]

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

1. Rtr→∞↔P=U2R→0{\displaystyle R_{tr}\rightarrow \infty \leftrightarrow P={{\frac {{U}^{2}}{R}}\rightarrow 0}}

2. Rtr→0↔P=I2R→0{\displaystyle R_{tr}\rightarrow 0\leftrightarrow P={I}^{2}R\rightarrow 0}

Реализуемый в контроллерах широтно-импульсный модулятор состоит из двух блоков: линейного интегратора (И-звена) и  трехпозиционного релейного элемента. Установленными при изготовлении изделия параметрами схемы являются: постоянная времени И-звена Ти и уровень сигнала на выходе релейного элемента ±А.

Широтно-импульсный модулятор генерирует последовательность импульсов со скважностью, пропорциональной уровню сигнала на его входе. Параметр его настройки, т.е. минимальная длительность импульса, устанавливается с помощью зоны нечувствительности релейного элемента широтно-импульсного модулятора. [2]

Аналоговая ШИМ[править | править код]

Один из методов двухуровневой ШИМ с помощью аналогового компаратора. На один из входов компаратора подаётся пилообразное напряжение от вспомогательного генератора, на другой вход — модулирующее напряжение. Состояние выхода компаратора — ШИ-модуляция. На рис.: сверху — пилообразный сигнал и модулирующее напряжение, снизу — результат ШИМ.

ШИМ-сигнал генерируется аналоговым компаратором, на один вход (по рисунку — на инвертирующий вход компаратора) которого подаётся вспомогательный опорный пилообразный или треугольный сигнал, значительно большей частоты, чем частота модулирующего сигнала, а на другой — модулирующий непрерывный аналоговый сигнал. Частота повторения выходных импульсов ШИМ равна частоте пилообразного или треугольного напряжения. В ту часть периода пилообразного напряжения, когда сигнал на инвертирующем входе компаратора выше сигнала на неинвертирующем входе, куда подается модулирующий сигнал, на выходе получается отрицательное напряжение, в другой части периода, когда сигнал на инвертирующем входе компаратора ниже сигнала на неинвертирующем входе — будет положительное напряжение[3].

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

Аналоговая ШИМ применяется в усилителях низкой частоты класса «D».

Цифровая ШИМ[править | править код]

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

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

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

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

В цифровой ШИМ период делится на части, которые заполняются прямоугольными подымпульсами. Средняя величина за период зависит от количества прямоугольных подымпульсов. Цифровая ШИМ — приближение бинарного сигнала (с двумя уровнями — вкл/выкл) к многоуровневому или непрерывному сигналу так, чтобы их средние значения за период времени t2−t1{\displaystyle t_{2}-t_{1}} были бы приблизительно равны.

Формально это можно записать так:

∫t1t2x(t)dtt2−t1=∑i=1nA∗ΔTit2−t1,{\displaystyle {\int _{t_{1}}^{t_{2}}{x(t)\,dt} \over {t_{2}-t_{1}}}={\sum _{i=1}^{n}{A*\Delta T_{i}} \over {t_{2}-t_{1}}},}

где x(t){\displaystyle x(t)} — входной сигнал в пределах от t1 до t2, а ΔTi=t2−t1n{\displaystyle \Delta T_{i}={\frac {t_{2}-t_{1}}{n}}} — продолжительность i -го ШИМ подымпульса, каждого с амплитудой A. n выбирается таким образом, чтобы за период разность суммарных площадей (энергий) обеих величин была меньше допустимой:

∫t1t2x(t)dt−∑i=1nA∗ΔTi<E{\displaystyle \int _{t_{1}}^{t_{2}}{x(t)\,dt}-\sum _{i=1}^{n}{A*\Delta T_{i}}<E}.

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

В цифровой ШИМ прямоугольные подымпульсы, заполняющие период, могут стоять в любом месте периода, на среднюю величину за период влияет только их количество. Например, при разбиении периода на 8 частей последовательности 11110000, 11101000, 11100100, 11100010, 11100001 и др. дают одинаковую среднюю за период величину, но отдельно стоящие «1» ухудшают режим работы ключа (транзистора).

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

Управление многоуровневыми синусоидальными ШИМ (СШИМ)[править | править код]

Напряжение на участке инвертора.(а) Выходное напряжение с применением СШИМ. (b) Выходное напряжение с добавлением синусоидальной третьей гармоники.

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

Множество Nc-каскадов в одной фазе с их источниками, смещенными на угол θс = 360°/Nc и использующими то же управляющее напряжение, производят напряжение нагрузки с самым маленьким искажением. Этот результат был получен для многоэлементного инвертора в семи-уравневой конфигурацией, которая использует три подключенных последовательно сегмента в каждой фазе. Самое маленькое искажение получено, когда источник смещен на угол в θс = 360°/3 = 120 °.

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

Метод опорных векторов (MOB)[править | править код]

Пространственно-векторная диаграмма :(а) для двух-уровневого ,(b) трех-уровневого, и (c) пяти-уровневого инвертора.

Техника МОВ может быть легко применима для всех многоуровневых инверторов рисунок справа показывает векторы пространства для традиционных двух — трех — и пяти-уравневых инверторов. Эти векторные диаграммы универсальны независимо от типа многоуровневого инвертора. Другими словами, рисунок справа действителен для пяти-уравнего зафиксированного на диод, зафиксированного на конденсатор, или расположенного каскадом инвертора. Смежные три вектора могут синтезировать желаемый вектор напряжения путем вычисления рабочего цикла (Tj, Tj+1, и Tj+2) для каждого вектора.

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

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

ru.wikipedia.org

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

Широтно-импульсная модуляция (ШИМ) – это метод преобразования сигнала, при котором изменяется длительность импульса (скважность), а частота остаётся константой. В английской терминологии обозначается как PWM (pulse-width modulation). В данной статье подробно разберемся, что такое ШИМ, где она применяется и как работает.

Область применения

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

Широтно-импульсная (ШИ) модуляция активно используется в построении систем управления яркостью светодиодов. Благодаря низкой инерционности, светодиод успевает переключаться (вспыхивать и гаснуть) на частоте в несколько десятков кГц. Его работа в импульсном режиме воспринимается человеческим глазом как постоянное свечение. В свою очередь яркость зависит от длительности импульса (открытого состояния светодиода) в течение одного периода. Если время импульса равно времени паузы, то есть коэффициент заполнения – 50%, то яркость светодиода будет составлять половину от номинальной величины. С популяризацией светодиодных ламп на 220В стал вопрос о повышении надёжности их работы при нестабильном входном напряжении. Решение было найдено в виде универсальной микросхемы – драйвера питания, работающего по принципу широтно-импульсной или частотно-импульсной модуляции. Схема на базе одного из таких драйверов детально описана здесь.

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

Масштабное применение ШИМ отражено во всех LCD панелях со светодиодной подсветкой. К сожалению, в LED мониторах большая часть ШИ-преобразователей работает на частоте в сотни Герц, что негативно отражается на зрении пользователей ПК.

Микроконтроллер Ардуино тоже может функционировать в режиме ШИМ контроллера. Для этого следует вызвать функцию AnalogWrite() с указанием в скобках значения от 0 до 255. Ноль соответствует 0В, а 255 – 5В. Промежуточные значения рассчитываются пропорционально.

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

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

  • обеспечивает режим плавного пуска преобразователя;
  • ограничивает амплитуду и скважность управляющих импульсов;
  • контролирует уровень входного напряжения;
  • защищает от короткого замыкания и превышения температуры силового ключа;
  • при необходимости переводит устройство в дежурный режим.

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

Задача ШИМ контроллера состоит в управлении силовым ключом за счёт изменения управляющих импульсов. Работая в ключевом режиме, транзистор находится в одном из двух состояний (полностью открыт, полностью закрыт). В закрытом состоянии ток через p-n-переход не превышает несколько мкА, а значит, мощность рассеивания стремится к нулю. В открытом состоянии, несмотря на большой ток, сопротивление p-n-перехода чрезмерно мало, что также приводит к незначительным тепловым потерям. Наибольшее количество тепла выделяется в момент перехода из одного состояния в другое. Но за счёт малого времени переходного процесса по сравнению с частотой модуляции, мощность потерь при переключении незначительна.

Широтно-импульсная модуляция разделяется на два вида: аналоговая и цифровая. Каждый из видов имеет свои преимущества и схемотехнически может реализовываться разными способами.

Аналоговая ШИМ

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

Цифровая ШИМ

Широтно-импульсная модуляция в цифровой интерпретации является одной из многочисленных функций микроконтроллера (МК). Оперируя исключительно цифровыми данными, МК может формировать на своих выходах либо высокий (100%), либо низкий (0%) уровень напряжения. Однако в большинстве случаев для эффективного управления нагрузкой напряжение на выходе МК необходимо изменять. Например, регулировка скорости вращения двигателя, изменение яркости светодиода. Что делать, чтобы получить на выходе микроконтроллера любое значение напряжения в диапазоне от 0 до 100%?

Вопрос решается применением метода широтно-импульсной модуляции и, используя явление передискретизации, когда заданная частота переключения в несколько раз превышает реакцию управляемого устройства. Изменяя скважность импульсов, меняется среднее значение выходного напряжения. Как правило, весь процесс происходит на частоте в десятки-сотни кГц, что позволяет добиться плавной регулировки. Технически это реализуется с помощью ШИМ-контроллера – специализированной микросхемы, которая является «сердцем» любой цифровой системы управления. Активное использование контроллеров на основе ШИМ обусловлено их неоспоримыми преимуществами:

  • высокой эффективности преобразования сигнала;
  • стабильность работы;
  • экономии энергии, потребляемой нагрузкой;
  • низкой стоимости;
  • высокой надёжности всего устройства.

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

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

Пример использования ШИМ регулятора

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

Читайте так же

ledjournal.info

AVR. Учебный курс. Использование ШИМ

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

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

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

А вот если двигатель включать на десять секунд каждую минуту, то маховик раскрутится, но далеко не на полную скорость — большая инерция сгладит рывки от включающегося двигателя, а сопротивление от трения не даст ему крутится бесконечно долго.
 

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

Меня скважность (отношение длительности периода к длительности импульса) можно плавно менять эту площадь, а значит и напряжение на выходе. Таким образом если на выходе сплошные 1, то на выходе будет напряжение высокого уровня, в случае моего робота, на выходе из моста L293 это 12 вольт, если нули, то ноль. А если 50% времени будет высокий уровень, а 50% низкий то 6 вольт. Интегрирующей цепочкой тут будет служить масса якоря двигателя, обладающего довольно большой инерцией.
 

 

А что будет если взять и гнать ШИМ сигнал не от нуля до максимума, а от минуса до плюса. Скажем от +12 до -12. А можно задавать переменный сигнал! Когда на входе ноль, то на выходе -12В, когда один, то +12В. Если скважность 50% то на выходе 0В. Если скважность менять по синусоидальному закону от максимума к минимуму, то получим… правильно! Переменное напряжение. А если взять три таких ШИМ генератора и гнать через них синусоиды сдвинутые на 120 градусов между собой, то получим самое обычное трехфазное напряжение, а значит привет бесколлекторные асинхронные и синхронные двигатели — фетиш всех авиамоделистов. На этом принципе построены все современные промышленные привода переменного тока. Всякие Unidrive и Omron Jxx

 
В качестве сглаживающей интегрирующей цепи в ШИМ может быть применена обычная RC цепочка:

 

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

 
Аппаратный ШИМ
В случае ATMega16 проще всего сделать на его ШИМ генераторе, который встроен в таймеры. Причем в первом таймере у нас целых два канала. Так что без особого напряга ATmega16 может реализовать одновременно четыре канала ШИМ.

 
Как это реализовано
У таймера есть особый регистр сравнения OCR**. Когда значение в счётном регистре таймера достигнает значения находящегося в регистре сравнения, то могут возникнуть следующие аппаратные события:

  • Прерывание по совпадению
  • Изменение состояния внешнего выхода сравнения OC**.

 
Выходы сравнения выведены наружу, на выводы микроконтроллера

 

 
На демоплате Pinboard к этим выводам как раз подключены светодиоды. А если поставить джамперы вдоль, в сторону надписи RC то к выводу ШИМ будет подключена интегрирующая цепочка.

 

 

Для Pinboard II разница в подключении невелика. Джамперы тут сгруппированы в один блок. А светодиоды и RC цепочки сгруппированы в левом верхнем углу платы.

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

 
Что при этом произойдет? Таймер будет считать как ему и положено, от нуля до 256, с частотой которую мы настроим битами предделителя таймера. После переполнения сбрасывается в 0 и продолжает заново.

 

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

 

Так что меняя значение в регистре сравнения можно менять скважность ШИМ сигнала. А если пропустить этот ШИМ сигнал через сглаживающую RC цепочку (интегратор) то получим аналоговый сигнал.

 
У таймера может быть сколько угодно регистров сравнения. Зависит от модели МК и типа таймера. Например, у Атмега16

  • Timer0 — один регистр сравнения
  • Timer1 — два регистра сравнения (16ти разрядных!)
  • Timer2 — один регистр сравнения

 
Итого — четыре канала. В новых AVR бывает и по три регистра сравнения на таймер, что позволяет одним МК организовать просто прорву независимых ШИМ каналов.

 
Самих режимов ШИМ существует несколько:

 
Fast PWM
В этом режиме счетчик считает от нуля до 255, после достижения переполнения сбрасывается в нуль и счет начинается снова. Когда значение в счетчике достигает значения регистра сравнения, то соответствующий ему вывод ОСхх сбрасыватся в ноль. При обнулении счетчика этот вывод устанавливается в 1. И все!

 
Частота получившегося ШИМ сигнала определяется просто: Частота процесора 8Мгц, таймер тикает до 256 с тактовой частотой. Значит один период ШИМ будет равен 8000 000/256 = 31250Гц. Вполне недурно. Быстрей не получится — это максимальная скорость на внутреннем 8Мгц тактовом генераторе. Но если переключить FUSE биты на внешний кварц то можно раскачать МК на 16Мгц.

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

 

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

 

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

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

 

 
В результате, на выходе получаются импульсы всегда одинаковой скважности, но разной частоты. А чаще всего этот режим применяется когда надо таймером отсчитывать периоды (и генерить прерывание) с заданной точностью.

 
Например, надо нам прерывание каждую миллисекунду. И чтобы вот точно. Как это реализовать проще? Через Режим СТС! Пусть у нас частота 8Мгц.

 
Прескалер будет равен 64, таким образом, частота тиков таймера составит 125000 Гц. А нам надо прерывание с частотой 1000Гц. Поэтому настраиваем прерывание по совпадению с числом 125.

 
Дотикал до 125 — дал прерывание, обнулился. Дотикал до 125 — дал прерывание, обнулился. И так бесконечно, пока не выключим.

 
Вот вам и точная тикалка.

 
Нет, конечно, можно и вручную. Через переполнение, т.е. дотикал до переполнения, загрузил в обработчике прерывания заново нужные значение TCNTх=255-125, сделал нужные полезные дела и снова тикать до переполнения. Но ведь через СТС красивей! 🙂

 
Аппаратура
А теперь контрольные регистры, которыми все это безобразие задается и программируется. Опишу на примере Двухканального FastPWM на таймере 1. В других все похоже. Даташит в зубы и вперед.

 
Итак, тут правят бал регистры TCCR1A и TCCR1B. Гы, кто бы сомневался %)

 
Распишу их по битам.
Регистр TCCR1A, биты COM1A1:COM1A0 и COM1B1:COM1B0. Эта братия определяет поведение вывода сравнения OC1A и OC1B соответственно.

 

COMxx1COMxx0Режим работы выхода
00вывод отцеплен от регистра сравнения и не меняется никак.
01Поведение вывода зависит от режима заданного в WGM, различается для разных режимов (FastPWM, FC PWM, Compar out) и разных МК, надо сверяться с даташитом.
10прямой ШИМ (сброс при совпадении и установка при обнулении счета)
11обратный ШИМ (сброс при обнулении и установка при совпадении)

 
Регистр TCCR1A, биты WGM11 и WGM10 вместе с битами WGM12 и WGM13, находящимися в регистре TCCR1B задают режим работы генератора.

WGM13WGM12WGM11WGM10Режим работы
0101Fast PWM 8 бит
0110Fast PWM 9 бит
0111Fast PWM 10 бит

 
Другие комбинации битов WGM задают режимы Phase Correct PWM и CTC (сброс OCxx при совпадении). Если интересно, то читай даташит, я для себя много интересного там не нашел, кроме Phase Correct PWM. И то мне сейчас важней скорость, а не точность фазы 🙂

 
После остается только запустить таймер, установив бит CS10 (подсчет тактовых импульсов с делителем 1:1)

 
Пример кода:

 
Попробуем поиграться яркостью светодиодов с помощью ШИМ сигналов. Подключи джамперы, чтобы запитать светодиоды LED1 и LED2

 

 
Для версии Pinboard II все аналогично, с поправкой на другое расположение джамперов:

 

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

 

1
2
3
4
5
6
7
8
9
10
11
12
;FastPWM Init
	SETB	DDRD,4,R16	; DDRD.4 = 1 Порты на выход
	SETB	DDRD,5,R16	; DDRD.5 = 1
 
; Выставляем для обоих каналов ШИМ режим вывода ОС** сброс при совпадении. 
; COM1A = 10 и COM1B = 10
; Также ставим режим FAST PWM 8bit (таймер 16ти разрядный и допускает
; большую разрядность ШИМ сигнала. Вплоть до 10 бит.  WGM = 0101
; Осталось только запустить таймер на частоте МК CS = 001
 
	OUTI 	TCCR1A,2<<COM1A0|2<<COM1B0|0<<WGM11|1<<WGM10	 
	OUTI	TCCR1B,0<<WGM13|1<<WGM12|1<<CS10

;FastPWM Init SETB DDRD,4,R16 ; DDRD.4 = 1 Порты на выход SETB DDRD,5,R16 ; DDRD.5 = 1 ; Выставляем для обоих каналов ШИМ режим вывода ОС** сброс при совпадении. ; COM1A = 10 и COM1B = 10 ; Также ставим режим FAST PWM 8bit (таймер 16ти разрядный и допускает ; большую разрядность ШИМ сигнала. Вплоть до 10 бит. WGM = 0101 ; Осталось только запустить таймер на частоте МК CS = 001 OUTI TCCR1A,2<<COM1A0|2<<COM1B0|0<<WGM11|1<<WGM10 OUTI TCCR1B,0<<WGM13|1<<WGM12|1<<CS10

 
Готово! Теперь ШИМ таймера1 генерит сигнал на выходаx OC1А и OC1B

 
Закинем в регистры сравнения первого и второго канала число 255/3=85 и 255/2 = 128
Так как ШИМ у нас 8ми разрядный, то заброс идет только в младший разряд. Старший же остается нулем. Но регистры сравнения тут у нас 16ти разрядные поэтому грузить надо оба байта сразу. Не забыв запретить прерывания (это важно!!! ибо атомарный доступ)

 

1
2
3
4
5
6
7
	CLI
	OUTI	OCR1AH,0
	OUTI	OCR1AL,85
 
	OUTI	OCR1BH,0
	OUTI	OCR1BL,128
	SEI

CLI OUTI OCR1AH,0 OUTI OCR1AL,85 OUTI OCR1BH,0 OUTI OCR1BL,128 SEI

 
Поехали! 🙂

 
Прошиваем, тыкаемся в ноги микроконтроллера осциллографом — видим следующую картину по каналам:

 

 
Как мы и запланировали. С первого канала длительность импульса в 1/3 периода, а со второго в 1/2
Ну и светодиоды горят с разной яркостью. Один ярче, другой тусклей. Меняя значение в регистрах OCR*** мы можем менять скважность.

 
Давай сделаем так, чтобы светодиод плавно менял свою яркость от нуля до максимума. Как помнишь, у нас там была программа, с мигающем по таймеру0 светодиодом. Немного ее подправим, сделаем так, чтобы по таймеру не светодиод мигал, а менялось значение в регистрах сравнения OCR1A и OCR1B. Причем меняться оно будет в разные стороны 🙂

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
; Main =========================================================
Main:	LDS	R16,TCNT	; Грузим числа в регистры
	LDS	R17,TCNT+1
 
	CPI	R16,0x10	; Сравниванем побайтно выдержку
	BRCS	NoMatch
	CPI	R17,0x01	; Выдержку сделали поменьше = 0x0110
	BRCS	NoMatch
 
; Если совпало то делаем экшн
Match:	CLI			; Запрет прерываний, т.к. атомарный доступ
 
; Меняем первый канал
; Особенность 16ти разрядных регистров в том, что их надо правильно читать и записывать.
; Читают вначале младший, потом старший байты. Так надо, чтобы младший не успел измениться
; (он ведь может тикать по таймеру) пока читают первым старший.  Укладывают их в обратном
; порядке. Сначала старший, потом младший. Правда для регистров OCR это не имеет большой 
; разницы -- они статичные, а вот для TCNT очень даже!
 
	IN	R16,OCR1AL	; Достали первый байт сравнения
	IN	R17,OCR1AH	; он 16ти разрядный, но старший байт будет 0
 
	INC	R16		; Увеличили
 
	OUT	OCR1AH,R17	; И сунули их обратно
	OUT	OCR1AL,R16
 
; Меняем второй канал
	IN	R16,OCR1BL	; Достали второй байт сравнения
	IN	R17,OCR1BH	; он 16ти разрядный, но старший байт будет 0
 
	DEC	R16		; Уменьшили
 
	OUT	OCR1BH,R17	; И сунули их обратно
	OUT	OCR1BL,R16	
	SEI			; Конец атомарного доступа
 
; Теперь надо обнулить счетчик, иначе за эту же итерацию главного цикла
; Мы сюда попадем еще не один раз -- таймер то не успеет натикать 255 значений
; чтобы число в первых двух байтах счетчика изменилось. 
 
	CLR	R16		; Нам нужен ноль
	CLI			; Таймер меняется и в прерывании. Нужен
				; атомарный доступ. Запрещаем прерывания
	OUT	TCNT0,R16	; Ноль в счетный регистр таймера
	STS	TCNT,R16	; Ноль в первый байт счетчика в RAM
	STS	TCNT+1,R16	; Ноль в второй байт счетчика в RAM
	STS	TCNT+2,R16	; Ноль в третий байт счетчика в RAM
	STS	TCNT+3,R16	; Ноль в первый байт счетчика в RAM
	SEI			; Разрешаем прерывания. 
; Не совпало - не делаем :) 
NoMatch:	NOP
 
	INCM	CCNT		; Шарманка вращается дальше, вхолостую
	JMP	Main

; Main ========================================================= Main: LDS R16,TCNT ; Грузим числа в регистры LDS R17,TCNT+1 CPI R16,0x10 ; Сравниванем побайтно выдержку BRCS NoMatch CPI R17,0x01 ; Выдержку сделали поменьше = 0x0110 BRCS NoMatch ; Если совпало то делаем экшн Match: CLI ; Запрет прерываний, т.к. атомарный доступ ; Меняем первый канал ; Особенность 16ти разрядных регистров в том, что их надо правильно читать и записывать. ; Читают вначале младший, потом старший байты. Так надо, чтобы младший не успел измениться ; (он ведь может тикать по таймеру) пока читают первым старший. Укладывают их в обратном ; порядке. Сначала старший, потом младший. Правда для регистров OCR это не имеет большой ; разницы — они статичные, а вот для TCNT очень даже! IN R16,OCR1AL ; Достали первый байт сравнения IN R17,OCR1AH ; он 16ти разрядный, но старший байт будет 0 INC R16 ; Увеличили OUT OCR1AH,R17 ; И сунули их обратно OUT OCR1AL,R16 ; Меняем второй канал IN R16,OCR1BL ; Достали второй байт сравнения IN R17,OCR1BH ; он 16ти разрядный, но старший байт будет 0 DEC R16 ; Уменьшили OUT OCR1BH,R17 ; И сунули их обратно OUT OCR1BL,R16 SEI ; Конец атомарного доступа ; Теперь надо обнулить счетчик, иначе за эту же итерацию главного цикла ; Мы сюда попадем еще не один раз — таймер то не успеет натикать 255 значений ; чтобы число в первых двух байтах счетчика изменилось. CLR R16 ; Нам нужен ноль CLI ; Таймер меняется и в прерывании. Нужен ; атомарный доступ. Запрещаем прерывания OUT TCNT0,R16 ; Ноль в счетный регистр таймера STS TCNT,R16 ; Ноль в первый байт счетчика в RAM STS TCNT+1,R16 ; Ноль в второй байт счетчика в RAM STS TCNT+2,R16 ; Ноль в третий байт счетчика в RAM STS TCNT+3,R16 ; Ноль в первый байт счетчика в RAM SEI ; Разрешаем прерывания. ; Не совпало — не делаем 🙂 NoMatch: NOP INCM CCNT ; Шарманка вращается дальше, вхолостую JMP Main

 
А теперь давайте включим режим с точной фазой (WGM = 0001) и посмотрим на то как будет меняться скважность.

 

1
2
	OUTI 	TCCR1A,2<<COM1A0|2<<COM1B0|0<<WGM11|1<<WGM10	 
	OUTI	TCCR1B,0<<WGM13|0<<WGM12|1<<CS10

OUTI TCCR1A,2<<COM1A0|2<<COM1B0|0<<WGM11|1<<WGM10 OUTI TCCR1B,0<<WGM13|0<<WGM12|1<<CS10

 

 
ШИМ на прерываниях.
Но вот засада — плата уже разведена, захотелось ШИМ, а выводы OCxx уже задействованы под другие цели.

 
Ничего страшного, малой кровью можно это исправить. Также запускаем ШИМ, только:

  • Отключаем выводы OCxx от регистра сравнения.
  • Добавляем два обработчика прерывания на сравнение и на переполнение. В прерывании по сравнению сбрасываем нужный бит, в прерывании по переполнению счетчика устанавливаем.

Все просто 🙂

 
Пример:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
;FastPWM Init на прерываниях
 
; ШИМ будет на выводах 3 и 6 порта D
	SETB	DDRD,3,R16	; DDRD.3 = 1 Порты на выход
	SETB	DDRD,6,R16	; DDRD.6 = 1
 
; Выставляем для обоих каналов ШИМ режим вывода ОС** выключеным. 
; COM1A = 00 и COM1B = 00
; Также ставим режим FAST PWM 8bit (таймер 16ти разрядный и допускает
; большую разрядность ШИМ сигнала. Вплоть до 10 бит.  WGM = 0101
; Осталось только запустить таймер на частоте МК CS = 001
 
	OUTI 	TCCR1A,0<<COM1A0|0<<COM1B0|0<<WGM11|1<<WGM10	 
	OUTI	TCCR1B,0<<WGM13|1<<WGM12|1<<CS10	
 
	SETB	TIMSK,OCIE1A,R16	; Включаем прерывание по сравнению А
	SETB	TIMSK,OCIE1B,R16	; Включаем прерывание по сравнению Б
	SETB	TIMSK,TOIE1,R16	; Включаем прерывание по переполнению Т1
					; Причем в режиме WGM=1010 переполнение
					; будет на FF т.е. таймер работает как
					; 8ми разрядный.

;FastPWM Init на прерываниях ; ШИМ будет на выводах 3 и 6 порта D SETB DDRD,3,R16 ; DDRD.3 = 1 Порты на выход SETB DDRD,6,R16 ; DDRD.6 = 1 ; Выставляем для обоих каналов ШИМ режим вывода ОС** выключеным. ; COM1A = 00 и COM1B = 00 ; Также ставим режим FAST PWM 8bit (таймер 16ти разрядный и допускает ; большую разрядность ШИМ сигнала. Вплоть до 10 бит. WGM = 0101 ; Осталось только запустить таймер на частоте МК CS = 001 OUTI TCCR1A,0<<COM1A0|0<<COM1B0|0<<WGM11|1<<WGM10 OUTI TCCR1B,0<<WGM13|1<<WGM12|1<<CS10 SETB TIMSK,OCIE1A,R16 ; Включаем прерывание по сравнению А SETB TIMSK,OCIE1B,R16 ; Включаем прерывание по сравнению Б SETB TIMSK,TOIE1,R16 ; Включаем прерывание по переполнению Т1 ; Причем в режиме WGM=1010 переполнение ; будет на FF т.е. таймер работает как ; 8ми разрядный.

 
Осталось только прописать обработчики и вектора:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
         .CSEG
         .ORG $000		; (RESET) 
         RJMP   Reset
         .ORG $002
         RETI			; (INT0) External Interrupt Request 0
         .ORG $004
         RETI 			; (INT1) External Interrupt Request 1
         .ORG $006
         RETI			; (TIMER2 COMP) Timer/Counter2 Compare Match
         .ORG $008
         RETI 			; (TIMER2 OVF) Timer/Counter2 Overflow
         .ORG $00A
         RETI			; (TIMER1 CAPT) Timer/Counter1 Capture Event
         .ORG $00C 
         RJMP Timer1_OCA		; (TIMER1 COMPA) Timer/Counter1 Compare Match A
         .ORG $00E
         RJMP Timer1_OCB		; (TIMER1 COMPB) Timer/Counter1 Compare Match B
         .ORG $010
         RJMP Timer1_OVF 		; (TIMER1 OVF) Timer/Counter1 Overflow
         .ORG $012
         RJMP	Timer0_OV 	; (TIMER0 OVF) Timer/Counter0 Overflow
         .ORG $014
         RETI 			; (SPI,STC) Serial Transfer Complete
         .ORG $016
         RETI     			; (USART,RXC) USART, Rx Complete
         .ORG $018
         RETI			; (USART,UDRE) USART Data Register Empty
         .ORG $01A
         RETI			; (USART,TXC) USART, Tx Complete
         .ORG $01C
         RETI			; (ADC) ADC Conversion Complete
         .ORG $01E
         RETI			; (EE_RDY) EEPROM Ready
         .ORG $020
         RETI			; (ANA_COMP) Analog Comparator
         .ORG $022
         RETI			; (TWI) 2-wire Serial Interface
         .ORG $024
         RETI			; (INT2) External Interrupt Request 2
         .ORG $026
         RETI			; (TIMER0 COMP) Timer/Counter0 Compare Match
         .ORG $028
         RETI			; (SPM_RDY) Store Program Memory Ready
 
	 .ORG   INT_VECTORS_SIZE      	; Конец таблицы прерываний
 
; Interrupts ==============================================
Timer0_OV:	PUSHF
		PUSH	R17
		PUSH	R18
		PUSH	R19
 
		INCM	TCNT
 
		POP	R19
		POP	R18
		POP	R17
		POPF
 
		RETI
 
; Вот наши обработчики на ШИМ
Timer1_OCA:	SBI	PORTD,3
		RETI
 
Timer1_OCB:	SBI	PORTD,6
		RETI
 
Timer1_OVF: 	CBI	PORTD,3
		CBI	PORTD,6
		RETI
; End Interrupts ==========================================

.CSEG .ORG $000 ; (RESET) RJMP Reset .ORG $002 RETI ; (INT0) External Interrupt Request 0 .ORG $004 RETI ; (INT1) External Interrupt Request 1 .ORG $006 RETI ; (TIMER2 COMP) Timer/Counter2 Compare Match .ORG $008 RETI ; (TIMER2 OVF) Timer/Counter2 Overflow .ORG $00A RETI ; (TIMER1 CAPT) Timer/Counter1 Capture Event .ORG $00C RJMP Timer1_OCA ; (TIMER1 COMPA) Timer/Counter1 Compare Match A .ORG $00E RJMP Timer1_OCB ; (TIMER1 COMPB) Timer/Counter1 Compare Match B .ORG $010 RJMP Timer1_OVF ; (TIMER1 OVF) Timer/Counter1 Overflow .ORG $012 RJMP Timer0_OV ; (TIMER0 OVF) Timer/Counter0 Overflow .ORG $014 RETI ; (SPI,STC) Serial Transfer Complete .ORG $016 RETI ; (USART,RXC) USART, Rx Complete .ORG $018 RETI ; (USART,UDRE) USART Data Register Empty .ORG $01A RETI ; (USART,TXC) USART, Tx Complete .ORG $01C RETI ; (ADC) ADC Conversion Complete .ORG $01E RETI ; (EE_RDY) EEPROM Ready .ORG $020 RETI ; (ANA_COMP) Analog Comparator .ORG $022 RETI ; (TWI) 2-wire Serial Interface .ORG $024 RETI ; (INT2) External Interrupt Request 2 .ORG $026 RETI ; (TIMER0 COMP) Timer/Counter0 Compare Match .ORG $028 RETI ; (SPM_RDY) Store Program Memory Ready .ORG INT_VECTORS_SIZE ; Конец таблицы прерываний ; Interrupts ============================================== Timer0_OV: PUSHF PUSH R17 PUSH R18 PUSH R19 INCM TCNT POP R19 POP R18 POP R17 POPF RETI ; Вот наши обработчики на ШИМ Timer1_OCA: SBI PORTD,3 RETI Timer1_OCB: SBI PORTD,6 RETI Timer1_OVF: CBI PORTD,3 CBI PORTD,6 RETI ; End Interrupts ==========================================

Почему я в этих обработчиках не сохраняю регистры и SREG? А незачем! Команды SBI меняют только конкретные биты (а больше нам и не надо), не влияя на флаги и другие регистры.

 
Запустили…

 

 
И получили полную херню. Т.е. ШИМ как бы есть, но почему то адово мерцает. А на осциллографе в этот момент полный треш. Кто виноват? Видимо конфликт прерываний. Осталось только выяснить где именно. Сейчас я вам дам практический пример реалтаймовой отладки 🙂

 
Итак, что мы имеем:

 
ШИМ, как таковой, работает. Скважность меняется. Значит наш алгоритм верен.
Но длительности скачут. Почему? Видимо потому, что что-то мешает им встать вовремя. Когда у нас возникают фронты? Правильно — по прерываниям. А прерывания по таймерам. Т.е. врать не должны. Однако так получается. Давайте узнаем каком месте у нас конфликт.

 
Первым делом надо добавить в код обработчика отладочную инфу. Будем в обработчике прерываний инвертировать бит. Пусть это будет PD7 — зашли в обработчик, инверснули. Зашли — инверснули. В результате, у нас на выходе этого бита будет прямоугольный сигнал, где каждый фронт — сработка прерываний. Послужит нам как линейка, отмеряющая время.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
; Interrupts ==============================================
Timer0_OV:	PUSHF
		PUSH	R17
		PUSH	R18
		PUSH	R19
 
		INCM	TCNT
 
		POP	R19
		POP	R18
		POP	R17
		POPF
 
		RETI
 
; Установка бита ШИМ канала А
Timer1_OCA:	SBI	PORTD,3
		RETI
 
; Установка бита ШИМ канала Б
Timer1_OCB:	SBI	PORTD,6
		RETI
 
;Сброс бита ШИМ канала А и Б
Timer1_OVF: 	CBI	PORTD,3
		CBI	PORTD,6
 
;DEBUG PIN BEGIN ---------------
		PUSHF
		INVBM	PORTD,7    
		POPF
;DEBUG PIN END -----------------
		RETI

; Interrupts ============================================== Timer0_OV: PUSHF PUSH R17 PUSH R18 PUSH R19 INCM TCNT POP R19 POP R18 POP R17 POPF RETI ; Установка бита ШИМ канала А Timer1_OCA: SBI PORTD,3 RETI ; Установка бита ШИМ канала Б Timer1_OCB: SBI PORTD,6 RETI ;Сброс бита ШИМ канала А и Б Timer1_OVF: CBI PORTD,3 CBI PORTD,6 ;DEBUG PIN BEGIN ————— PUSHF INVBM PORTD,7 POPF ;DEBUG PIN END —————— RETI

Инверсия бита невозможна без логических операций, поэтому надо сохранять флаги.

 

 
Из картинки стало понятно, что у нас накрывается прерывание по сравнению. Давайте попробуем посмотреть с какими прерыванием происходит конфликт. Особых вариантов у нас нет — прерываний у нас тут четрые. А наиболее очевиден конфликт Timer0_OV vs Timer1_OCA vs Timer1_OCB.

 
OCA и OCB конфликтуют только тогда, когда счетные регистры у них сравниваются — вызов происходит почти одновременно, но сами обработчики короткие — всего несколько тактов, поэтому дребезг не столь сильный.

 
А вот Timer0_OV делает довольно мощный прогруз стека и еще вычитает четырехбайтную переменную. Т.е. тактов на 20 может задержать обработчик установки бита Timer1_OC* от того и вылазят такие зверские дребезги.

 
Давайте проверим эту идею. Разрешим прерывания в обработчике Timer0_0V

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
; Interrupts ==============================================
Timer0_OV:	SEI
		PUSHF
		PUSH	R17
		PUSH	R18
		PUSH	R19
 
		INCM	TCNT
 
		POP	R19
		POP	R18
		POP	R17
		POPF
 
		RETI
 
; Установка бита ШИМ канала А
Timer1_OCA:	SBI	PORTD,3
		RETI
 
; Установка бита ШИМ канала Б
Timer1_OCB:	SBI	PORTD,6
		RETI
 
;Сброс бита ШИМ канала А и Б
Timer1_OVF: 	CBI	PORTD,3
		CBI	PORTD,6
		RETI

; Interrupts ============================================== Timer0_OV: SEI PUSHF PUSH R17 PUSH R18 PUSH R19 INCM TCNT POP R19 POP R18 POP R17 POPF RETI ; Установка бита ШИМ канала А Timer1_OCA: SBI PORTD,3 RETI ; Установка бита ШИМ канала Б Timer1_OCB: SBI PORTD,6 RETI ;Сброс бита ШИМ канала А и Б Timer1_OVF: CBI PORTD,3 CBI PORTD,6 RETI

 

 
Картина сразу исправилась. Теперь более важное (для нас важное) прерывание задвигает обработчик от Таймера 0. Но тут надо просекать возможные риски:

 

  • Более глубокий прогруз стека
  • Нарушается атомарный доступ к четырехбайтной переменной TCNT, поэтому если бы у нас было еще какое-то прерывание, меняющее TCNT то его надо было бы запрещать локально. Иначе бы мы получили такой трешняк, что проще заново прогу переписать, чем это отладить

.

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

 
Исходник к статье

easyelectronics.ru

ШИМ — широтно-импульсная модуляция | joyta.ru

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

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

Принцип действия ШИМ

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

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

где:

  • Ton — время высокого уровня
  • Toff — время низкого уровня
  • T — период сигнала

Время высокого уровня и время низкого уровня сигнала показано на нижнем рисунке. Напряжение U1- это состояния высокого уровня сигнала, то есть его амплитуда.

На следующем рисунке представлен пример сигнала ШИМ с определенным временным интервалом высокого и низкого уровня.

Расчет коэффициента заполнения ШИМ

Расчет коэффициента заполнения ШИМ на примере:

 

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

Как следует из расчета, на данном примере, сигнал (высокого уровня) характеризуется заполнением, равным 0,357 или иначе 37,5%. Коэффициент заполнения является абстрактным значением.

Важной характеристикой  широтно-импульсной модуляции может быть также частота сигнала, которая рассчитывается по формуле:

Значение T, в нашем примере, следует взять уже в секундах для того, чтобы совпали единицы в формуле. Поскольку, формула частоты имеет вид 1/сек, поэтому 800ms переведем в 0,8 сек.

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

Для вычисления среднего значения напряжения ШИМ необходимо знать коэффициент заполнения, поскольку среднее значение напряжения является произведением коэффициента заполнения и амплитуды напряжения сигнала.
Для примера, коэффициент заполнения был равен 37,5% (0,357) и амплитуда напряжения U1 = 12В даст среднее напряжение Uср:

В этом случае среднее напряжение сигнала ШИМ составляет 4,5 В.

ШИМ дает очень простую возможность понижать напряжение  в диапазоне от напряжения питания U1 и до 0. Это можно использовать, например, для регулировки яркости свечения светодиодов, или скорости вращения двигателя DC (постоянного тока), питающиеся от величины среднего напряжения.

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

Это может быть биполярный или полевой транзистор. На следующих примерах будет использован биполярный транзистор BC547.


Пример управления светодиодом при помощи ШИМ.

Сигнал ШИМ поступает на базу транзистора VT1 через резистор R1, иначе говоря, транзистор VT1 с изменением сигнала то включается, то выключается. Это подобно ситуации, при которой транзистор можно заменить обычным выключателем, как показано ниже:


Упрощенная схема управления светодиодом.

Когда переключатель замкнут, светодиод питается через резистор R2 (ограничивающий ток) напряжением 12В. А когда переключатель разомкнут, цепь прерывается, и светодиод гаснет. Такие переключения с малой частотой в результате дадут мигающий светодиод.

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

Чем меньше коэффициент заполнения, тем слабее будет светиться светодиод, поскольку во время одного периода светодиод  будет гореть меньшее время.

Такой же принцип и подобную схему можно использовать и для управления двигателем постоянного тока. В случае двигателя необходимо, однако, применять более высокую частоту переключений (выше 15-20 кГц) по двум причинам.

Первая из них касается звука, какой может издавать двигатель (неприятный писк). Частота 15-20 кГц является теоретической границей слышимости человеческого уха, поэтому частоты выше этой границы будут неслышны.

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

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

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

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


Схема системы управления скоростью вращения двигателя постоянного тока с защитным диодом.

Для сглаживания всплесков питания между клеммами двигателя, можно подключить к ним параллельно конденсатор небольшой емкости (100nF), который будет стабилизировать напряжение между последовательными переключениями транзистора. Это также снизит помехи, создаваемые частыми переключениями транзистора VT1.

www.joyta.ru

ШИМ-регулятор. Широтно-импульсная модуляция. Схема :: SYL.ru

При работе с множеством различных технологий часто стоит вопрос: как управлять мощностью, которая доступна? Что делать, если её необходимо понизить или повысить? Ответом на эти вопросы служит ШИМ-регулятор. Что он собой представляет? Где применяется? И как самому собрать такой прибор?

Что такое широтно-импульсная модуляция?

Без выяснения значения этого термина продолжать не имеет смысла. Итак, широтно-импульсная модуляция — это процесс управления мощностью, которая подводится к нагрузке, осуществляемая путём видоизменения скважности импульсов, которая делается при постоянной частоте. Существует несколько типов широтно-импульсной модуляции:

1. Аналоговый.

2. Цифровой.

3. Двоичный (двухуровневый).

4. Троичный (трехуровневый).

Что такое ШИМ-регулятор?

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

Настоящим спасением из данной ситуации стал ШИМ-регулятор, который работает на мощных полевых силовых транзисторах. Они могут коммутировать большие токи (которые достигают 160 Ампер) при напряжении всего в 12-15В на затворе. Следует отметить, что сопротивление у открытого транзистора довольное мало, и благодаря этому можно заметно снизить уровень рассеиваемой мощности. Чтобы создать свой собственный ШИМ-регулятор, понадобится схема управления, которая сможет обеспечить разность напряжения между истоком и затвором в границах 12-15В. Если этого не получится достичь, то сопротивление канала будет сильно увеличиваться и значительно возрастёт рассеиваемая мощность. А это, в свою очередь, может привести к тому, что транзистор перегреется и выйдет из строя.

Выпускается целый ряд микросхем для ШИМ-регуляторов, которые смогут выдержать повышение входного напряжения до уровня 25-30В, при том, что питание будет всего 7-14В. Это позволит включать выходной транзистор в схеме вместе с общим стоком. Это, в свою очередь, необходимо для подключения нагрузки с общим минусом. В качестве примеров можно привести такие образцы: L9610, L9611, U6080B … U6084B. Большинство нагрузок не потребляет ток больше 10 ампер, поэтому они не могут вызвать просадку напряжения. И как результат – использовать можно и простые схемы без доработки в виде дополнительного узла, который будет повышать напряжение. И именно такие образцы ШИМ-регуляторов и будут рассмотрены в статье. Они могут быть построены на основе несимметрического или ждущего мультивибратора. Стоит поговорить про ШИМ-регулятор оборотов двигателя. Об этом далее.

Схема №1

Эта схема ШИМ-регулятора собиралась на инверторах КМОП-микросхемы. Она является генератором прямоугольных импульсов, который действует на 2-х логических элементах. Благодаря диодам здесь отдельно изменяется постоянная времени разряда и заряда частотозадающего конденсатора. Это позволяет менять скважность, которую имеют выходные импульсы, и как результат – значение эффективного напряжения, которое есть на нагрузке. В данной схеме возможно использование любых инвертирующих КМОП-элементов, а также ИЛИ-НЕ и И. В качестве примеров подойдут К176ПУ2, К561ЛН1, К561ЛА7, К561ЛЕ5. Можно использовать и другие виды, но перед этим придётся хорошо подумать о том, как правильно сгруппировать их входы, чтобы они могли выполнять возложенный функционал. Преимущества схемы – доступность и простота элементов. Недостатки – сложность (практически невозможность) доработки и несовершенство относительно изменения диапазона выходного напряжения.

Схема №2

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

Причины распространения

Чем привлекает автолюбителей ШИМ-регулятор? Следует отметить стремление к увеличению КПД, когда проводится построение вторичных источников питания для электронной аппаратуры. Благодаря данному свойству можно данную технологию найти также при изготовлении компьютерных мониторов, дисплеев в телефонах, ноутбуках, планшетах и подобной техники, а не только в автомобилях. Также следует отметить значительную дешевизну, которой отличается данная технология при своём использовании. Также, если решите не покупать, а собирать ШИМ-регулятор собственноручно, то можно сэкономить деньги при усовершенствовании своего собственного автомобиля.

Заключение

Что ж, вы теперь знаете, что собой представляет ШИМ-регулятор мощности, как он работает, и даже можете сами собрать подобные устройства. Поэтому, если есть желание поэкспериментировать с возможностями своего автомобиля, можно сказать по этому поводу только одно – делайте. Причем можете не просто воспользоваться представленными здесь схемами, но и существенно доработать их при наличии соответствующих знаний и опыта. Но даже если всё не получится с первого раза, то вы сможете получить очень ценную вещь – опыт. Кто знает, где он может в следующий раз пригодиться и насколько важным будет его наличие.

www.syl.ru

Широтно-импульсная модуляция (ШИМ). Аналоговая и цифровая

Принцип ШИМ – широтно-импульсная модуляция заключается в изменении ширины импульса при постоянстве частоты следования импульса. Амплитуда импульсов при этом неизменна.

Широтно-импульсное регулирование находит применение там, где требуется регулировать подаваемую к нагрузке мощность. Например, в схемах управления электродвигателями постоянного тока, в импульсных преобразователях, для регулирования яркости светодиодных светильников, экранов ЖК-мониторов, дисплеев в смартфонах и планшетах и т.п.

Большинство вторичных источников питания электронных устройств в настоящее время строятся на основе импульсных преобразователей, применяется широтно-импульсная модуляция и в усилителях низкой (звуковой) частоты класса D, сварочных аппаратах, устройствах зарядки автомобильных аккумуляторов, инверторах и пр. ШИМ позволяет повысить коэффициент полезного действия (КПД) вторичных источников питания в сравнении с низким КПД аналоговых устройств.

Широтно-импульсная модуляция бывает аналоговой и цифровой.

Аналоговая широтно-импульсная модуляция

Как уже упоминалось выше, частота сигнала и его амплитуда при ШИМ всегда постоянны. Один из важнейших параметров сигнала ШИМ – это коэффициент заполнения, равный отношению длительности импульса t к периоду импульса T. D = t/T. Так, если имеем сигнал ШИМ с длительностью импульса 300 мкс и периодом импульса 1000 мкс, коэффициент заполнения составит 300/1000 = 0,3. Коэффициент заполнения также выражается в процентах, для чего коэффициент заполнения умножается на 100%. По примеру выше процентный коэффициент заполнения составляет 0,3 х 100% = 30%.

Скважность импульса – это отношение периода импульсов к их длительности, т.е. величина, обратная коэффициенту заполнения. S = T/t.

Частота сигнала определяется как величина, обратная периоду импульса, и представляет собой количество полных импульсов за 1 секунду. Для примера выше при периоде 1000 мкс = 0,001 с, частота составляет F = 1/0,001 – 1000 (Гц).

Смысл ШИМ заключается в регулировании среднего значения напряжения путем изменения коэффициента заполнения. Среднее значение напряжения равно произведению коэффициента заполнения и амплитуды напряжения. Так, при коэффициенте заполнения 0,3 и амплитуде напряжения 12 В среднее значение напряжения составит 0,3 х 12 = 3,6 (В). При изменении коэффициента заполнения в теоретически возможных пределах от 0% до 100% напряжение будет изменяться от 0 до 12 В, т.е. Широтно-импульсная модуляция позволяет регулировать напряжение в пределах от 0 до амплитуды сигнала. Что и используется для регулирования скорости вращения электродвигателя постоянного тока или яркости свечения светильника.

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

В переходных состояниях на ключе присутствует значительное напряжение с прохождением значительного тока, т.е. значительна и рассеиваемая тепловая мощность. Поэтому в качестве ключа необходимо применение малоинерционных полупроводниковых приборов с быстрым временем переключения, порядка десятков наносекунд.

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

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

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

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

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

При напряжении вспомогательного генератора выше напряжения управляющего сигнала на выходе компаратора будет отрицательная часть импульса.

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

Цифровая широтно-импульсная модуляция

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

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

В качестве источника сигнала цифровой ШИМ можно использовать COM-порт компьютера с 10-битовым сигналом на выходе. С учетом 8 информационных битов и 2 битов старт/стоп, в сигнале COM-порта присутствует от 1 до 9 «единичек», что позволяет регулировать напряжение в пределах 10-90% напряжения питания с шагом в 10%.

Похожие темы:

electrosam.ru

Мощный ШИМ регулятор своими руками


Приветствую, Самоделкины!
Совсем недавно Роману, автору YouTube канала «Open Frime TV», понадобился мощный ШИМ-регулятор. Начались поиски и проверки разных схем. В итоге он остановился на данном варианте:

Автор уже не однократно снимал ролики про шим-регуляторы, но на момент их создания не особо разбирался в схемотехнике, да и не было оборудования для того, чтобы полностью протестировать получившиеся устройства.

Теперь же у автора появился осциллограф, с помощью которого можно увидеть все косяки.

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


Это же касается и закрытия. Если этого тока недостаточно, то транзистор будет медленнее открываться и, следовательно, сильнее греться.

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

Думаю, все кто искал схему шим-регулятора, натыкались на вариант с микросхемой ne555 и кучей транзисторов, но стоит заглянуть в ее datasheet и мы увидим максимальный выходной ток 200 мА.


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

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


Теперь давайте взглянем на схему устройства:

Как видим, в качестве задающий микросхемы, автор применил TL494. Почему именно ее? Да потому, что она очень популярна и легка в настройке.

Автор также пробовал собирать ШИМ на Uc3843, но там есть свои особенности, которые затрудняют сборку. Делал и на 555-ой, но больше всего приглянулась именно 494-ая. В нее можно без особых проблем добавить ограничитель тока, но это уже будете делать под ваши нужды.

Теперь пару слов про работу схемы. TL494 генерирует прямоугольные импульсы, частота которых задается с помощью вот этого конденсатора и резистора:


Потом эти импульсы усиливаются драйвером и поступают на затворы транзисторов.


У каждого транзистора на затворе свой резистор. Это сделано с целью убрать звон при закрытии.

Так как это полевые транзисторы, то при параллельном включении им не нужны токоограничивающие резисторы, что повышает КПД схемы. Также на схеме можем видеть 2 входных напряжения.

Это сделано с целью расширения пределов работы самого шим-регулятора. Если входное напряжение находится в районе 13-30В, то можно установить перемычку и питать схему одним напряжением.

Также нужно сказать пару слов про транзисторы.

IRFZ44N рассчитан на напряжение 50В.

Если вам нужно управлять более высоким напряжением, то необходимо заменить транзисторы под ваши параметры. К примеру, IRF540 рассчитаны уже на напряжение 100В.

Со схемой закончили, рассмотрим печатную плату.

Тут в глаза бросаются силовые дорожки. Они не очень большие, но все компенсируется после сборки устройства. Их придется пропаять медным проводом для повышения токопроводимости. Это будет лучшим решением, так как делать саму дорожку еще больше нету смысла, она имеет маленькое сечение и не сможет провести большой ток.

С платой тоже разобрались. Давайте ее соберем. Это не составит трудностей, деталей немного и сложность минимальная.
э


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


При установке можно не использовать изолирующие подложки, так как транзисторы включены параллельно.

С таким радиатором можно коммутировать токи до 20А. При б0льших токах требуется б0льший радиатор.

Ну и в конце можно производить тесты. Подаем напряжение на схему (в данном случае оно составляет 28В) и производим включение.

Для начала подключаем 2 лампы накаливания мощностью 100Вт, рассчитанные на напряжение 36В.


Но это такое, детский сад, схема справляется на раз-два. Теперь можно взять нагрузку помощнее, к примеру, вот такую нихромовую спираль.

Как видим ток идет довольно таки большой, но схема держится молодцом. Саму плату автор собирал одному человеку для мощного двигателя постоянного тока. Пока жалоб не было, поэтому можно советовать ее к повторению. Ну а на этом все. Благодарю за внимание. До новых встреч!

Видео:


Источник Доставка новых самоделок на почту

Получайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!

*Заполняя форму вы соглашаетесь на обработку персональных данных

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

usamodelkina.ru

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *