Широтно-импульсная модуляция (шим)
Содержание:
- Широтно-импульсное регулирование ШИР
- Понятие шима
- Широтно-импульсное регулирование ШИР
- Схема ШИМ-регулятора яркости светодиодов для сборки своими руками
- Arduino и ШИМ
- (Low-)Power implications
- pwm_mode_t
- pwm_channels()
- pwm_init()
- pwm_poweroff()
- pwm_poweron()
- Detailed Description
- Роль шима — контроллера в работе импульсного блока
- Принцип импульсного регулирования
- Контакты ШИМ в микроконтроллере AVR ATmega16
- Подведём итог ремонта
Широтно-импульсное регулирование ШИР
В западной литературе практически не различают понятия широтно-импульсного регулирования ШИР и широтно-импульсной модуляции ШИМ. Однако у нас различие между ними все же существует.
Сейчас во многих микросхемах, особенно применяемых в DC-DC преобразователях, реализован принцип ШИР. Но при этом их называют ШИМ контроллерами. Поэтому теперь различие в названии между этими двумя способами практически отсутствует.
В любом случае для формирования определенной длительности импульса, подаваемого на базу транзистора и открывающего последний, применяют источники опорного и задающего напряжения, а также компаратор. Рассмотрим упрощенную схему, в которой аккумуляторная батарея GB питает потребитель Rн импульсным способом посредством транзистора VT. Сразу скажу, что в данной схеме я специально не использовал такие элементы, необходимые для работы схемы: конденсатор, дроссель и диод. Это сделано с целью упрощения понимания работы ШИМ, а не всего преобразователя.
Упрощенно, компаратор имеет три вывода: два входа и один выход. Компаратор работает следующим образом. Если величина напряжения на входном выводе «+» (неинвертирующий вход) выше, чем на входе «-» (инвертирующий вход), то на выходе компаратора будет сигнал высокого уровня. В противном случае – низкого уровня.
В нашем случае, именно сигнал высокого уровня открывает транзистор VT. Рассмотрим, как формируется необходимая длительность времени импульса tи. Для этого воспользуемся следующим графиком.
При ШИР на одни вход компаратора подается сигнал пилообразной формы заданной частоты. Его еще называют опорным. На второй вход подается задающее напряжение, которое сравнивается с опорным. В результате сравнения на выходе компаратора формируется импульс соответствующей длительности.
Если на неинверитирующем входе компаратора опорный сигнал, то сначала будет идти пауза, а затем импульс. Если на неинвертирующий вход подать задающий сигнал, то сначала будет импульс, затем пауза.
Таким образом, изменяя значение задаваемого сигнала, можно изменять коэффициент заполнения, а соответственно и среднее напряжение на нагрузке.
Частоту опорного сигнала стремятся сделать максимальной, чтобы снизить параметры дросселей и конденсаторов (на схеме не показаны). Последнее приводит к снижению массы и габаритов импульсного блока питания.
Понятие шима
Прежде чем дать определение упомянутому словосочетанию, следует узнать или кому-то просто напомнить себе принцип нагревания силовых компонентов радиосхемы. Их сущность заключается в действии нескольких переключательных режимах. Все электросиловые компоненты в подобных радиосхемах всегда пребывают в двух состояниях. Первое — это открытое, а второе раскрытое. В чём разница между этими двумя состояниями? В первом случае компонент обладает нулевым током. Во втором же у компонента нулевое значение напряжения. Конечным результатом взаимодействия электросиловых компонентов с необходимой напряжённостью можно считать получения сигнала той формы, которая нужна согласно установленным правилам.
Шимом же называют специальный модулятор, предназначенный для контролирования времени открытия силового ключа. Время для открытия ключа устанавливается с учётом получаемого напряжения. Получить идеальный вариант сигнала возможно лишь в том случае, если перед преобразованием сигнал без затруднений прошёл все необходимые этапы. Какие это этапы из чего состоит формирование такого сигнала.
Особенности шим — контроллера
Сам процесс создания шим — сигналов очень непростой. Чтобы облегчить этот процесс, были придуманные специальные микросхемы. Именно микросхемы, участвующие в формировании шим — сигналов называют шим — контролёрами. Их существование в большинстве случаев помогает полностью решить проблему с формированием широко — импульсных сигналов. Чтобы легче понять миссию и значимость шим — контролёра, необходимо познакомиться с особенностями его строения. На сегодняшний день известно, что любой шим — контролёр, активно использующийся в электронике, обладает следующими составляющими:
Вывод питания. Несёт большую ответственность за электрическое питание всех существующих схем. Нередко вывод питания путают с выводом контроля питания
Важно знать, что несмотря на похожие слова в названии, эти два понятия имеют совершенно разную характеристику. Это ещё раз наглядно докажет знакомство с выводом контроля питания.
Вывод контроля питания
Эта составляющая часть микросхемы следит за состоянием показателей напряжения прямо на выводе микросхемы. Главная задача вывода контроля питания — это не допустить превышение расчётной отметки. Существует одна серьёзная опасность, а именно снижения напряжения на выходе. Если напряжения снижено, транзисторы начинают открываться наполовину. Из-за неполного открытия они быстро нагреваются и в конечном счёте могут быстро выйти из строя. Поэтому умеренное напряжение — это залог долгой работы транзисторов микросхемы шим — контроллеров.
общий выход. Третий главный элемент схемы имеет форму ножки. Эта ножка, в свою очередь, подключена к общему проводу схемы, которые отвечает за питания всей системы.
Все три составляющих очень важны. Если хотя бы один из элементов по какой-то причине выходит из строя, работа всей микросхемы заметно ухудшается или совершенно прекращается.
Широтно-импульсное регулирование ШИР
В западной литературе практически не различают понятия широтно-импульсного регулирования ШИР и широтно-импульсной модуляции ШИМ. Однако у нас различие между ними все же существует.
Сейчас во многих микросхемах, особенно применяемых в DC-DC преобразователях, реализован принцип ШИР. Но при этом их называют ШИМ контроллерами. Поэтому теперь различие в названии между этими двумя способами практически отсутствует.
В любом случае для формирования определенной длительности импульса, подаваемого на базу транзистора и открывающего последний, применяют источники опорного и задающего напряжения, а также компаратор.Рассмотрим упрощенную схему, в которой аккумуляторная батарея GB питает потребитель Rн импульсным способом посредством транзистора VT. Сразу скажу, что в данной схеме я специально не использовал такие элементы, необходимые для работы схемы: конденсатор, дроссель и диод. Это сделано с целью упрощения понимания работы ШИМ, а не всего преобразователя.
Упрощенно, компаратор имеет три вывода: два входа и один выход. Компаратор работает следующим образом. Если величина напряжения на входном выводе «+» (неинвертирующий вход) выше, чем на входе «-» (инвертирующий вход), то на выходе компаратора будет сигнал высокого уровня. В противном случае – низкого уровня.
В нашем случае, именно сигнал высокого уровня открывает транзистор VT. Рассмотрим, как формируется необходимая длительность времени импульса tи. Для этого воспользуемся следующим графиком.
При ШИР на одни вход компаратора подается сигнал пилообразной формы заданной частоты. Его еще называют опорным. На второй вход подается задающее напряжение, которое сравнивается с опорным. В результате сравнения на выходе компаратора формируется импульс соответствующей длительности.
Если на неинверитирующем входе компаратора опорный сигнал, то сначала будет идти пауза, а затем импульс. Если на неинвертирующий вход подать задающий сигнал, то сначала будет импульс, затем пауза.
Таким образом, изменяя значение задаваемого сигнала, можно изменять коэффициент заполнения, а соответственно и среднее напряжение на нагрузке.
Частоту опорного сигнала стремятся сделать максимальной, чтобы снизить параметры дросселей и конденсаторов (на схеме не показаны). Последнее приводит к снижению массы и габаритов импульсного блока питания.
Схема ШИМ-регулятора яркости светодиодов для сборки своими руками
С микросхемой NE555 (аналог КР1006) знаком каждый радиолюбитель. Её универсальность позволяет конструировать самые разнообразные самоделки: от простого одновибратора импульсов с двумя элементами в обвязке до многокомпонентного модулятора. В данной статье будет рассмотрена схема включения таймера в режиме генератора прямоугольных импульсов с широтно-импульсной регулировкой.
С развитием мощных светодиодов NE555 снова вышла на арену в роли регулятора яркости (диммера), напомнив о своих неоспоримых преимуществах. Устройства на её основе не требуют глубоких знаний электроники, собираются быстро и работают надёжно.
Принцип действия электронного регулятора яркости заключается в следующем. В момент подачи напряжения питания начинает заряжаться конденсатор по цепи: +Uпит – R2 – VD1 –R1 –C1 – -Uпит.
Как только напряжение на нём достигнет уровня 2/3Uпит откроется внутренний транзистор таймера и начнется процесс разрядки. Разряд начинается с верхней обкладки C1 и далее по цепи: R1 – VD2 –7 вывод ИМС – -Uпит.
Достигнув отметки 1/3Uпит транзистор таймера закроется и C1 вновь начнет набирать ёмкость. В дальнейшем процесс повторяется циклически, формируя на выводе 3 прямоугольные импульсы.
Изменение сопротивления подстроечного резистора приводит к уменьшению (увеличению) времени импульса на выходе таймера (вывод 3), и как следствие, уменьшается (увеличивается) среднее значение выходного сигнала.
Сформированная последовательность импульсов через токоограничивающий резистор R3 поступает на затвор VT1, который включен по схеме с общим истоком.
Нагрузка в виде светодиодной ленты или последовательно включенных мощных светодиодов включается в разрыв цепи стока VT1.
Блокирующий конденсатор C2 исключает влияние помех, которые могут возникать по цепи питания в моменты переключения таймера. Величина его ёмкости может быть любой в пределах 0,01-0,1 мкФ.
Плата и детали сборки регулятора яркости
Плата в файле Sprint Layout 6.0: reguljator-jarkosti.lay6
После сборки схема ШИМ-регулятора яркости не требует наладки, а печатная плата легка в изготовке своими руками. В плате, кроме подстроечного резистора, используются SMD элементы.
- DA1 – ИМС NE555;
- VT1 – полевой транзистор IRF7413;
- VD1,VD2 – 1N4007;
- R1 – 50 кОм, подстроечный;
- R2, R3 – 1 кОм;
- C1 – 0,1 мкФ;
- C2 – 0,01 мкФ.
Заказать готовую сборку от автора можно здесь.
Практические советы
Транзистор VT1 должен подбираться в зависимости от мощности нагрузки. Например, для изменения яркости одноваттного светодиода достаточно будет биполярного транзистора с максимально допустимым током коллектора 500 мА.
Управление яркостью светодиодной ленты должно осуществляться от источника напряжения +12 В и совпадать с её напряжением питания. В идеале регулятор должен питаться от стабилизированного блока питания, специально предназначенного для ленты.
Нагрузка в виде отдельных мощных светодиодов запитывается иначе. В этом случае источником питания диммера служит стабилизатор тока (его еще называют драйвер для светодиода). Его номинальный выходной ток должен соответствовать току последовательно включенных светодиодов.
Arduino и ШИМ
В уроке про функции времени я рассказывал, что у микроконтроллера есть так называемые счётчики, которые считают “пинки” от тактового генератора (кварца). Данные счётчики как раз и генерируют ШИМ сигнал, т.е. само вычислительное ядро микроконтроллера в этом не участвует. Помимо расчётов, даже вывод сигнала с ноги МК ложится на плечи счётчика
Это очень важно понимать, потому что ШИМ сигнал не тормозит выполнение кода, так как его генерацией занимается буквально “другая железка”
На платах UNO/Nano/Pro Mini у нас есть три таймера-счётчика, у каждого таймера есть по два выхода на пины МК, то есть у нас есть 2*3=6 пинов, способных генерировать ШИМ сигнал. Для генерации ШИМ у нас есть готовая функция analogWrite(pin, duty)
- pin – пин, являющийся выводом таймера. Для Нано/Уно это пины D3, D5, D6, D9, D10, D11. На некоторых платах они помечены * звёздочкой
- duty – заполнение ШИМ сигнала. По умолчанию все “выходы” ШИМ у нас 8-битные, то есть duty может принимать значение с “разрешением” 8 бит, а это 0-255
Совместим эти знания с прошлым уроком и попробуем менять яркость светодиода, подключенного через резистор к пину D3. Потенциометр подключен к пину A0
void setup() { pinMode(3, OUTPUT); // D3 как выход } void loop() { // ШИМ на 3 пин, 1023/4 = 255 — перевели диапазон analogWrite(3, analogRead(0) / 4); delay(10); }
Рассмотренный пример меняет яркость светодиода в зависимости от положения рукоятки потенциометра.
Пару слов о “стандартном” ШИМ сигнале – мы получаем его с такими настройками, какие нам даёт библиотека Arduino.h, а настройки эти сильно занижены по сравнению с возможностями Arduino. Про “улучшение” ШИМ мы поговорим позже, а сейчас давайте глянем на характеристики ШИМ “из коробки”:
Таймер | Пины | Частота | Разрешение |
Timer 0 | D5 и D6 | 976 Гц | 8 бит (0-255) |
Timer 1 | D9 и D10 | 488 Гц | 8 бит (0-255) |
Timer 2 | D3 и D11 | 488 Гц | 8 бит (0-255) |
Это весьма плачевные цифры, особенно по частоте. Все таймеры приведены под одну гребёнку, чтобы пользователь не думал не гадал и лишнюю документацию не изучал. К изменению частоты и разрядности ШИМ мы вернёмся в отдельном уроке, а пока что можете посмотреть данный урок в видео варианте.
(Low-)Power implications
After initialization, the a PWM peripheral should be powered on and active. When manually stopped using the function, the PWM generation should be stopped for all channels and the PWM peripheral should be fully power off (e.g. through peripheral clock gating). Once being re-enabled by calling the function, the PWM peripheral should transparently continue its previously configured operation, including the last active duty cycle values.
While a PWM device is active, some implementations might need to block certain power modes.
file | pwm.h |
Low-level PWM peripheral driver interface definitions. | |
#define |
(x) (x) |
Default PWM access macro. | |
#define |
(UINT_MAX) |
Default PWM undefined value. | |
typedef unsigned int |
|
Default PWM type definition. | |
enum |
{ = (TPM_CnSC_MSB_MASK | TPM_CnSC_ELSB_MASK), PWM_RIGHT, } |
Default PWM mode definition. | |
uint32_t | ( dev, mode, uint32_t freq, uint16_t res) |
Initialize a PWM device. | |
uint8_t | ( dev) |
Get the number of available channels. | |
void | ( dev, uint8_t channel, uint16_t value) |
Set the duty-cycle for a given channel of the given PWM device. | |
void | ( dev) |
Resume PWM generation on the given device. | |
void | ( dev) |
Stop PWM generation on the given device. | |
pwm_mode_t
enum |
Default PWM mode definition.
Enumerator | |
---|---|
PWM_LEFT |
left aligned PWM |
PWM_RIGHT |
right aligned PWM |
PWM_CENTER |
not supported |
PWM_CENTER_INV |
not supported |
PWM_LEFT |
left aligned |
PWM_RIGHT |
right aligned |
PWM_CENTER |
center aligned |
Definition at line of file pwm.h.
pwm_channels()
uint8_t pwm_channels | ( | dev | ) |
Get the number of available channels.
- Parameters
-
dev PWM device
- Returns
- Number of channels available for the given device
pwm_init()
uint32_t pwm_init | ( | dev, | |
mode, | |||
uint32_t | freq, | ||
uint16_t | res | ||
) |
Initialize a PWM device.
The PWM module is based on virtual PWM devices, which can have one or more channels. The PWM devices can be configured to run with a given frequency and resolution, which are always identical for the complete device, hence for every channel on a device.
The desired frequency and resolution may not be possible on a given device when chosen too large. In this case the PWM driver will always keep the resolution and decrease the frequency if needed. To verify the correct settings compare the returned value which is the actually set frequency.
- Parameters
-
dev PWM device to initialize mode PWM mode, left, right or center aligned freq PWM frequency in Hz res PWM resolution
- Returns
- actual PWM frequency on success
- 0 on error
pwm_poweroff()
void pwm_poweroff | ( | dev | ) |
Stop PWM generation on the given device.
This function stops the PWM generation on all configured channels for the given device and powers down the given PWM peripheral.
- Parameters
-
dev device to stop
pwm_poweron()
void pwm_poweron | ( | dev | ) |
Resume PWM generation on the given device.
When this function is called, the given PWM device is powered on and continues its previously configured operation. The duty cycle of each channel will be the value that was last set.
This function must not be called before the PWM device was initialized.
- Parameters
-
dev device to start
Detailed Description
Low-level PWM peripheral driver.
This interface enables access to CPU peripherals generating PWM signals. On most platforms, this interface will be implemented based on hardware timers, though some CPUs provide dedicated PWM peripherals.
The characteristics of a PWM signal can be defined by three basic parameters, namely the frequency, the duty cycle, and the operational mode. This interface supports basic PWM generation in left-aligned, right-aligned, and center mode. Additionally the interface supports the definition of the used resolution, defining the granularity with which one can specify the duty cycle. This brings more flexibility to the configuration of the frequency, especially on systems with low system clocks.
Typically, a single PWM device (e.g. hardware timer) supports PWM signal generation on multiple pins in parallel. While the duty cycle is selectable for each channel individually, the frequency and resolution are shared for all channels.
The mapping/configuration of PWM devices (timers) and the used pins has to be done in the board configuration (the board’s `periph_conf.h).
When using the PWM interface, first thing you have to do is initialize the PWM device with the targeted mode, frequency, and resolution settings. Once the device is initialized, it will start the generation of PWM signals on all configured pins immediately, with an initial duty cycle of . Use the function to change the duty cycle for a given channel. If you want to disable the PWM generation again, simply call .
Роль шима — контроллера в работе импульсного блока
Шим — контроллеры играют важную роль в импульсном блоке. Он отвечает за процессы, связанные с широтно — импульсной модуляцией. Шим — контролёр способствует выработке импульсов, у которых одинаковая частота, но в то же время разная длительность включения. Все подаваемые импульсы соответствуют определённой логической единице. У импульсов одинаковая не только частота, но и одинаковая величина амплитуды. Продолжительность функционирования логической единицы может меняться в процессе её работы. Такие перемены помогают наилучшим образом управлять работой электронной системы.
Таким образом, шим — контролёр — одна из важных цепочек, участвующих в работе импульсного блока. В некоторых видах помимо шим — контролёра благополучное функционирование блока питания обеспечивает импульсный трансформатор и специальный каскад силовых ключей.
А в каких сферах используются импульсные блоки питания? В первую очередь, в электронике. Об этом речь пойдёт далее.
Особенности работы микросхемы или как может работать ноутбук
Компьютерный блок питания и роль шим — контролёра в нём Все современные компьютеры, в том числе и ноутбуки, оснащены импульсными блоками питания. Установленные в ноутбуке или в обычном компьютере блоки содержат индивидуальную микросхему шим — контролёра. Стандартной микросхемой считают микросхему TL494CN.
Прежде всего стоит сказать о главной задаче микросхемы TL494CN. Итак, главной задачей схемы является широтно — импульсная модуляция. Другими словами микросхема вырабатывает импульсы напряжения. Одни импульсы регулируемы, другие нет. В микросхеме предусмотренно примерно 6 способов выводов сигналов. Упомянем некоторые интересные подробности каждого вывода микросхемы ноутбука.
Первый вывод. Считается положительным входом усилителя сигнала ошибки. Уровень напряжения на первом выводе оказывает значительное влияние на функционирование последующих выводов. При низком напряжении при втором выводе у выхода усилителя ошибки будут низкие показатели. И напротив, при повышенном напряжении показатели усилителя ошибки повысятся.
Второй вывод. Второй же вывод является напротив отрицательным выходом для усилителя. Здесь показатели напряжения немного по-иному оказывают своё влияние на усилитель. Так, при высоком напряжении (выше чем на первом выводе) у выхода усилителя низкие показатели. В случае низкого напряжения усилитель обладает высокими данными.
Третий вывод. Служит неким контактным звеном. Перемены в уровне напряжения зависят от двух диодов, которыми наделен внутренний усилитель. Во время изменения уровня сигнала хотя бы на одном диоде меняется уровень напряжения всего усилителя. В некоторых случаях третий вывод обеспечивает скорость изменения ширины импульсов.
Четвёртый вывод
Способен управлять диапазон скважности всех выходных импульсов. Уровень поступаемого напряжения в четвёртом выводе влияет на ширину импульсов в микросхеме шим — контролёра
Пятый вывод. Перед пятым выводом стоит немного другая задача. Он присоединяет врямязадующий конденсатор к заданной микросхеме. Ёмкость присоединённого конденсата оказывает значительное влияние на частоту выходных импульсов шим — контролёра.
Шестой вывод. Служит для подключения времязадающего регистра, который также влияет на частоту.
Все эти шесть выводов способствуют выполнению главной задачи, которая поставлена перед микросхемой шим — контролёра — выход импульсов с широкой модуляцией. А это действие, в свою очередь, влияет на работу импульсного блока, а значит и на работу ноутбука.
Принцип импульсного регулирования
Основными элементами любого типа импульсного регулятора мощности являются полупроводниковые ключи – транзисторы или тиристоры. В простейшем виде схема импульсного источника питания имеет следующий вид. Источника постоянного напряжения Uип ключом K подсоединяется к нагрузке Н. Ключ К переключается с определенной частотой и остается во включенном состоянии определенную длительность времени. С целью упрощения схемы я на ней не изображаю другие обязательные элементы. В данном контексте нас интересует только работа ключа К.
Чтобы понять принцип ШИМ воспользуемся следующим графиком. Разобьем ось времени на равные промежутки, называемые периодом T. Теперь, например половину периода мы будем замыкать ключ K. Когда ключ замкнут, к нагрузке Н подается напряжение от источника питания Uип. Вторую часть полупериода ключа находится в закрытом состоянии. А потребитель останется без питания.
Время, в течение которого ключ замкнут, называется временем импульса tи. А время длительности разомкнутого ключа называют временем паузы tп. Если измерить напряжение на нагрузке, то оно будет равно половине Uип.
Среднее значение напряжения на нагрузке можно выразить следующей зависимостью:
Uср.н = Uип tи/T.
Отношение времени импульса tи к периоду T называют коэффициентом заполнения D
А величина, обратная ему называется скважностью:. S = 1/D = T/tи
S = 1/D = T/tи.
На практике удобнее пользоваться коэффициентом заполнения, который зачастую выражают в процентах. Когда транзистор полностью открыт на протяжении всего времени, то коэффициент заполнения D равен единице или 100 %.
Если D = 50 %, то это означает, что половину времени за период транзистор находится в открытом состоянии, а половину в закрытом. В таком случае форма сигнала называется меандр.Следовательно, изменяя коэффициент D от 0 до единицы или до 100 % можно изменять величину Uср.н от 0 до Uип:
Uср.н = Uип∙D.
А соответственно регулировать и величину подводимой мощности:
Pср.н = Pип∙D.
Контакты ШИМ в микроконтроллере AVR ATmega16
Микроконтроллер Atmega16 имеет 4 контакта для использования ШИМ модуляции — PB3(OC0), PD4(OC1B), PD5(OC1A), PD7(OC2). Более наглядно они представлены на следующем рисунке.
Также ATmega16 имеет два 8-битных (Timer0 и Timer2) и один 16-битный таймер (Timer1). Для понимания принципов формирования ШИМ мы должны понимать основы работы с этими таймерами. Как известно, частота представляет собой количество циклов в секунду поэтому она однозначно связано зависимостью с временем. То есть чем более высокая частота нам нужна, тем более быстрый таймер мы должны использовать. Чем выше частота ШИМ, тем более точно мы можем управлять ее параметрами.
В данной статье для управления ШИМ в микроконтроллере ATmega16 мы будем использовать его Timer2. С его помощью можно выбрать коэффициент заполнения (duty cycle) ШИМ в широких пределах. Кратко рассмотрим основы этого процесса.
Подведём итог ремонта
По нынешним меркам кризиса и роста цен, кто-нибудь, житель крупных городов, имеющий высокую по российским меркам зарплату, может скажет что сэкономлена не бог весть какая сумма, больше времени своего потрачено было. Но если вернуться к тому, что сейчас на дворе очередной кризис, экономия данной суммы для большинства людей умеющих держать в руках паяльник, проводить диагностику приборов и умеющих считать деньги, вряд ли была бы лишней, пусть даже для сборки своего личного системного блока. А раз так — то люди, имеющие опыт и практические знания в области электроники, уже имеют плюс по сравнению с людьми, которые этих знаний не имеют, а соответственно не имеют и данной возможности. Всем удачных ремонтов, автор статьи AKV.