Pwm сигнал: ШИМ (PWM) сигнал — широтно импульсная модуляция, принцип работы, что это такое

Содержание

Анализ сигналов широтно-импульсной модуляции | Rohde & Schwarz

Решение компании Rohde & Schwarz

Быстрый и простой способ получить общую картину ШИМ-сигнала — использовать функцию послесвечения осциллографа. Использование послесвечения может дать представление о типе присутствующих в сигнале импульсов. Кроме того, цветовая градация показывает области наибольшей активности сигнала.
Тем не менее, послесвечение и цветовая градация не обеспечивают детального анализа. Модулируется ли помимо длительности период? С какой частотой повторяется цикл модуляции? Сколько длительностей каждого значения встречается? Эти сведения необходимы при разработке различных электронных модулей, таких, например, как понижающие преобразователи, которые используются в источниках питания, схемах питания процессоров или зарядных устройствах.
Чтобы получить эту информацию, необходимо использовать методы более глубокого анализа.
Функция отслеживания осциллографов R&S®RTM3000 и R&S®RTA4000 способна демодулировать ШИМ-сигнал и извлекать основной сигнал модуляции в виде осциллограммы трека. Осциллограмма трека формируется из измеренных значений, расположенных в порядке времени их регистрации при захвате данных. Данный инструмент анализа отображает результаты любого заданного значения в зависимости от времени, обеспечивая четкое представление об изменении параметров ШИМ при измерении в течение относительно длительного интервала времени. В результате появляется возможность оценить правильность отслеживания и степень линейности в ШИМ-регуляторах/контроллерах.

Образец в функции отслеживания осциллографов R&S®RTM3000 и R&S®RTA4000, интегрированный в блок матопераций, позволяет задавать верхний (однополярный сигнал) и нижний (биполярный сигнал) пороговые уровни для демодулируемого сигнала.

Блок матопераций содержит следующие стандартные функции анализа трека:

  • Трек: период (одно- и биполярный)
  • Трек: частота (одно- и биполярный)
  • Трек: длительность импульса (одно- и биполярный)
  • Трек: коэффициент заполнения (одно- и биполярный)

ШИМ (PWM) сигнал — широтно импульсная модуляция, принцип работы, что это такое


Управление по напряжению (Voltage Mode)

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

При гистерезисном управлении, если напряжение на выходе ниже нормы – идет «накачка» источника. Если напряжение на выходе больше порога – компаратор блокирует управление силовым ключом, идет разряд выходной накопительной емкости. В англоязычной литературе такой режим называют «hiccup-mode» – «режим с икотой».

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

Рис. 5а. Первая схема – с фиксированным выходным напряжением, вторая – с регулировкой выходного напряжения.

Рис. 5б. Диаграммы выхода ШИМ и выхода компаратора.

Рис. 6. Пример выходного каскада повышающего импульсного источника питания, подключенного к ШИМ контроллеру (см.рис.5).

Конфигурируемые логические ячейки (CLC) на рис .5 можно включить как элемент И. Для предотвращения высокочастотной генерации от компаратора его выход целесообразно пропустить через еще одну CLC – D-триггер с синхронизацией от сигнала ШИМ. В этом случае получим два «бонуса» — отсутствие возникновения высокочастотной генерации и неизменность скважности управляющего ШИМ (см. пояснения на рис. 7). Подробнее о конфигурируемых логических ячейках см. в статье «Конфигурируемые логические ячейки в PIC микроконтроллерах» [2].

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

Рис. 7.б. Синхронизация сигналов позволяет предотвратить укорочение ШИМ импульсов

Рис. 8. Синхронизация сигналов для предотвращения генерации и укорочения ШИМ.

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

Сигнал, промодулированный по ширине импульса, формируется двумя способами:

  • аналоговым;
  • цифровым.

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

В качестве примера приведена модуляция по ширине импульса треугольного сигнала линейно-возрастающим. Длительность выходных импульсов пропорциональна уровню выходного сигнала.

Аналоговые ШИМ-контроллеры выпускаются и в виде готовых микросхем, внутри которых установлен компаратор и схема генерации несущей. Имеются входы для подключения внешних частотозадающих элементов и подачи информационного сигнала. С выхода снимается сигнал, управляющий мощными внешними ключами. Также имеются входы для обратной связи – они нужны для поддержания установленных параметров регулирования. Такова, например, микросхема TL494. Для случаев, когда мощность потребителя относительно невелика, выпускаются ШИМ-контроллеры со встроенными ключами. На ток до 3 ампер рассчитан внутренний ключ микросхемы LM2596.

Цифровой способ осуществляется применением специализированных микросхем или микропроцессоров. Длина импульса регулируется внутренней программой. Во многих микроконтроллерах, включая популярные PIC и AVR, «на борту» имеется встроенный модуль для аппаратной реализации ШИМ, для получения PWM-сигнала надо активировать модуль и задать параметры его работы. Если такой модуль отсутствует, то ШИМ можно организовать чисто программным методом, это несложно. Этот способ дает более широкие возможности и предоставляет больше свободы за счёт гибкого использования выходов, но задействует большее количество ресурсов контроллера.

Контакты ШИМ в микроконтроллере AVR ATmega16

Микроконтроллер Atmega16 имеет 4 контакта для использования ШИМ модуляции — PB3(OC0), PD4(OC1B), PD5(OC1A), PD7(OC2). Более наглядно они представлены на следующем рисунке.

Также ATmega16 имеет два 8-битных (Timer0 и Timer2) и один 16-битный таймер (Timer1). Для понимания принципов формирования ШИМ мы должны понимать основы работы с этими таймерами. Как известно, частота представляет собой количество циклов в секунду поэтому она однозначно связано зависимостью с временем. То есть чем более высокая частота нам нужна, тем более быстрый таймер мы должны использовать. Чем выше частота ШИМ, тем более точно мы можем управлять ее параметрами.

В данной статье для управления ШИМ в микроконтроллере ATmega16 мы будем использовать его Timer2. С его помощью можно выбрать коэффициент заполнения/скважность (duty cycle) ШИМ в широких пределах. Кратко рассмотрим основы этого процесса.

ШИМ — широтно-импульсная модуляция | 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.

PWM — ШИМ — широтно-импульсная модуляция. Как работает и где применяется?

PWM (Pulse-width modulation, широтно-импульсная модуляция) – способ подачи питания устройству с определёнными временными рамками, такими как пауза между сигналом и время подачи сигнала.

Применяется во всех сферах, но в компьютерной сфере наиболее востребована в электромоторах вентиляторов и помп, подсветке мониторов.

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

 

Широтно-импульсная модуляция позволяет плавно регулировать скорость вращения вала двигателя, при наличии датчика скорости вращения.

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

3-pin и 4-pin разъёмами, но 4-х пиновый коннектор, позволяет регулировать обороты намного плавнее, за счёт отдельного проводка управления ШИМ. В 3-х пиновом вентиляторе, регуляция оборотов происходит непосредственно подаваемым напряжением.

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

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

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

Raspberry Pi. PWM. Генерация ШИМ-сигнала.

Рассмотрев работу с портами ввода-вывода GPIO в качестве обычных входов и выходов, нельзя не затронуть и вопрос использования Raspberry Pi для генерации ШИМ (PWM).

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

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

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

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

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

ШИМ-сигналы характеризуют параметром, который называется — коэффициент заполнения (duty cycle). Он вычисляется по формуле:

D = \frac{\tau}{T}\medspace * \medspace 100\%

Здесь \tau — длительность импульса, а T — период сигнала.

Вернемся к рассмотренным выше сигналам — для первого случая длительность импульса составляет \frac{4}{10} периода сигнала, а значит D = 40\%. Аналогично, для второго случая D = 80\%.

На этом заканчиваем лирическое отступление на тему ШИМ и переходим к практической реализации на Raspberry Pi.

Вспоминаем таблицу распределения функций портов GPIO. Я сейчас пользуюсь Raspberry Pi 4, для любой другой модификации можно найти аналогичную информацию в документации. Итак, для генерации ШИМ могут использоваться следующие выводы:

Задействуем два порта в нашем примере — GPIO12 и GPIO13. При этом пусть коэффициент заполнения будет одинаковым, а частота второго сигнала (GPIO13) — в 2 раза больше.

Для работы с PWM на Python используем все тот же модуль RPi.GPIO, установить который в случае отсутствия можно командой:

sudo apt-get install python-rpi.gpio

Создаем файл pwm_test.py:

import RPi.GPIO as GPIO
import time

GPIO_PWM_0 = 12
GPIO_PWM_1 = 13
WORK_TIME = 10
DUTY_CYCLE = 50
FREQUENCY = 100

GPIO.setmode(GPIO.BCM)

GPIO.setup(GPIO_PWM_0, GPIO.OUT)
GPIO.setup(GPIO_PWM_1, GPIO.OUT)

pwmOutput_0 = GPIO.PWM(GPIO_PWM_0, FREQUENCY)
pwmOutput_1 = GPIO.PWM(GPIO_PWM_1, 2 * FREQUENCY)

pwmOutput_0.start(DUTY_CYCLE)
pwmOutput_1.start(DUTY_CYCLE)

time.sleep(WORK_TIME)

pwmOutput_0.stop()
pwmOutput_1.stop()
GPIO.cleanup()

Разбираем написанное. Первым делом подключаем модули и объявляем переменные:

import RPi.GPIO as GPIO
import time

GPIO_PWM_0 = 12
GPIO_PWM_1 = 13
WORK_TIME = 10
DUTY_CYCLE = 50
FREQUENCY = 100
  • GPIO_PWM_0 и GPIO_PWM_1 — номера выводов GPIO, которые мы используем для генерации ШИМ
  • WORK_TIME — время выполнения программы. В этом примере не будем анализировать действия пользователя для определения момента выхода из программы. Просто включаем ШИМ и по истечении времени WORK_TIME (10 секунд) заканчиваем работу.
  • DUTY_CYCLE — коэффициент заполнения, одинаковый для обоих каналов и составляющий 50%.
  • FREQUENCY — частота сигнала (100 Гц) первого канала. На втором установим в 2 раза больше, как и планировали.

Далее настроим режим нумерации портов, чтобы номера соответствовали названию сигнала (например, GPIO12, GPIO13), а не порядковому номеру на разъеме, а также настроим нужные нам порты:

GPIO.setmode(GPIO.BCM)

GPIO.setup(GPIO_PWM_0, GPIO.OUT)
GPIO.setup(GPIO_PWM_1, GPIO.OUT)

Создаем объекты pwmOutput_0 и pwmOutput_1 для работы с каналами PWM. В качестве аргументов указываем последовательно — номер порта GPIO и частоту следования импульсов:

pwmOutput_0 = GPIO.PWM(GPIO_PWM_0, FREQUENCY)
pwmOutput_1 = GPIO.PWM(GPIO_PWM_1, 2 * FREQUENCY)

Запускаем генерацию функцией start() — аргументом является требуемая величина коэффициента заполнения (duty cycle):

pwmOutput_0.start(DUTY_CYCLE)
pwmOutput_1.start(DUTY_CYCLE)

Ожидаем 10 секунд и останавливаем процесс:

time.sleep(WORK_TIME)

pwmOutput_0.stop()
pwmOutput_1.stop()
GPIO.cleanup()

На этом базовый пример закончен, запускаем его на выполнение:

python pwm_test.py

В результате получаем сигналы ШИМ:

Коэффициент заполнения одинаковый (50% — длительность импульса равна половине периода), а частота во втором случае в 2 раза выше, собственно, как и должно быть 👍

Давайте реализуем еще один небольшой пример — будем менять коэффициент заполнения, а, соответственно, и длительность импульса в цикле программы. При этом период импульсов будет оставаться постоянным. Создаем файл pwm_test_dynamic.py и пишем код:

import RPi.GPIO as GPIO
import time

GPIO_PWM_0 = 12
FREQUENCY = 100
DELAY_TIME = 0.02

GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_PWM_0, GPIO.OUT)

pwmOutput_0 = GPIO.PWM(GPIO_PWM_0, FREQUENCY)
pwmOutput_0.start(0)

try:
    while True:
        for dutyCycle in range(0, 101, 1):
            pwmOutput_0.ChangeDutyCycle(dutyCycle) 
            sleep(DELAY_TIME)
except KeyboardInterrupt:
    pwmOutput_0.stop()
    GPIO.cleanup()
    print('exiting')

Аналогичным образом настраиваем GPIO12 и запускаем PWM с коэффициентом заполнения 0 и частотой 100 Гц:

GPIO_PWM_0 = 12
FREQUENCY = 100
DELAY_TIME = 0.02

GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_PWM_0, GPIO.OUT)

pwmOutput_0 = GPIO.PWM(GPIO_PWM_0, FREQUENCY)
pwmOutput_0.start(0)

В основном цикле программы while True каждые 0.02 с (DELAY_TIME) изменяем duty cycle в диапазоне от 0 до 100:

while True:
	for dutyCycle in range(0, 101, 1):
		pwmOutput_0.ChangeDutyCycle(dutyCycle) 
		sleep(DELAY_TIME)

При нажатии пользователем Ctrl + C завершаем выполнение программы:

pwmOutput_0.stop()
GPIO.cleanup()
print('exiting')

Запускаем:

python pwm_test_dynamic.py

И получаем:

Генерация работает как положено, так что на этом заканчиваем разбор ШИМ на Raspberry Pi, до новых статей!

25 простых аналоговых и цифровых функций по 25 центов каждая. Функции ШИМ

28 февраля 2019

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

Контроллер трехцветного светодиода


(UART Software Controlled RGB LED Color Mixing With MSP430™ MCUs)

Трехцветные светодиоды (RGB LED), содержащие в одном корпусе кристаллы с излучением красного, зеленого и синего цветов, используются для индикации и подсветки во многих приложениях, например, для создания пользовательских интерфейсов или устройств освещения, ведь путем смешения основных цветов можно получить результирующее излучение практически любого цвета и интенсивности. На практике это осуществляется путем индивидуальной регулировки токов каждого светодиода, а это, в свою очередь, наиболее просто реализовать путем подачи на каждый светодиод импульсного напряжения с постоянной частотой и регулируемой длительностью импульсов (широтно-импульсной модуляции, ШИМ). При этом, чтобы исключить появление видимых человеческим глазом мерцаний, частота напряжения, подаваемого на светодиоды, должна быть не менее 60 Гц. В базовом варианте проекта, исходные файлы которого можно загрузить с официального сайта Texas Instruments, представлен пример контроллера трехцветного светодиода, позволяющего через интерфейс UART установить 12 вариантов его излучения. Особенностью предлагаемого программного обеспечения является минимум требуемых аппаратных ресурсов – всего лишь один таймер (Timer B0) с тремя регистрами сравнения/захвата (Capture Compare Registers, CCR). Кроме этого, размер прошивки не превышает 512 байт, что позволяет реализовать его на микроконтроллере MSP430FR2000 с наименьшим среди семейства MSP430™ объемом памяти программ.

Реализация

В базовом варианте проекта внешний трехцветный светодиод подключается к микроконтроллеру MSP430™ с помощью трех P-канальных MOSFET, а токи светодиодов основных цветов ограничиваются с помощью трех внешних резисторов (рисунок 11). Такая схема включения позволяет микроконтроллеру управлять светодиодами повышенной яркости, токи которых превосходят максимально допустимые значения для портов ввода-вывода микроконтроллеров данного семейства. Аппаратная часть проекта содержит два модуля: оценочную плату MSP-TS430PW20 на основе микроконтроллера MSP430FR2000, и содержащий трехцветный светодиод модуль расширения LED BoosterPack™, принципиальную схему которого вместе с остальной технической документацией можно получить, скачав исходные файлы опорного проекта TIDM-G2XXSWRGBLED. Платы соединяются между собой проводами так, как показано на рисунке 11. Для связи с компьютером через интерфейс UART может использоваться обратный канал программатора-отладчика MSP-FET или эмулятор eZ-FET из набора для разработки MSP430™ LaunchPad™. Ввод команд для установки цвета светодиода осуществляется с помощью терминальной программы, работающей на персональном компьютере.

Рис. 11. Схема контроллера трехцветного светодиода

Принцип формирования нужного излучения с помощью ШИМ подробно рассмотрен в разделах «Принцип смешения цветов» и «Управление светодиодами» «Руководства по созданию программного обеспечения для управления светодиодами» (Software RGB LED Control Design Guide). Однако в данном проекте из-за специфики используемых микроконтроллеров использован несколько иной способ формирования ШИМ-сигналов. В первоначальном варианте таймер работает в режиме инкрементирующего счета (Up Mode), а информация о длительностях импульсов хранится в регистрах TB0CCR0 (синий), TB0CCR1 (красный) и TB0CCR2 (зеленый) модуля Timer B0, хотя обычно при формировании ШИМ-сигналов регистр TB0CCR0 используется для установки длительности периода импульсов. Отказ от «классического» метода формирования ШИМ связан с тем, в некоторых моделях микроконтроллеров MSP430™, в том числе и MSP430FR2000, таймер имеет только три регистра CCR, а это значит, что используя «классический» метод, с его помощью можно сформировать всего два ШИМ-сигнала, что явно недостаточно для управления трехцветным светодиодом. Более подробно о принципах формирования нескольких ШИМ-сигналов с помощью единственного таймера и механизма прерываний можно ознакомиться, прочитав «Руководство по формированию сигналов с фиксированными временными параметрами с использованием единственного таймера микроконтроллеров MSP430» (Multiple Time Bases on a Single MSP430 Timer Module).

Для исключения видимых мерцаний частота импульсов, подаваемых на светодиоды, должна быть приблизительно равна 60 Гц. При такой незначительной частоте ШИМ-сигналов частоту тактового генератора можно оставить равной частоте, устанавливаемой по умолчанию (1,048 МГц), поскольку она намного выше минимально необходимого значения, определенного в руководстве “Multiple Time Bases on a Single MSP430 Timer Module”. ШИМ-сигналы управления светодиодами формируются путем деления вспомогательной тактовой частоты (Auxiliary Clock, ACLK) 32768 Гц, получаемой от низкочастотного опорного генератора (Low-Frequency Reference Oscillator, REFO), на 4. Таким образом, опорная частота импульсов, подаваемая на таймер Timer B0, равна 8192 Гц. Это сделано для того, чтобы максимальное значение регистров TB0CCRx не превышало 255 (0хFF) и для хранения значений было достаточно одного байта, что дополнительно экономит ресурсы микроконтроллеров с ограниченными объемами ОЗУ и памяти программ. В данном проекте для частоты 60 Гц максимальное значение регистров TB0CCRx не превышает 135. Следует также отметить, что сигналы управления светодиодами являются инверсными, и светодиоды включаются при малом значении выходного сигнала микроконтроллера, поэтому значения массива colorsLow[] фактически содержат информацию о длительности включенного состояния светодиода, а массива colorsHigh[] – о выключенном.

Результаты тестирования

Для запуска проекта необходимо соединить платы согласно принципиальной схеме, прошить микроконтроллер и подключить к нему программатор-отладчик. Отладочная палата MSP-TS430PW20 по умолчанию конфигурируется для использования UART, однако все равно необходимо проверить, что перемычки JP14 и JP15 установлены, а JP13 удалена. Во время инициализации микроконтроллера светодиод будет светиться белым, поскольку P-канальные MOSFET открываются при низком уровне управляющего сигнала, после чего его цвет свечения изменится на красный. Для установки цвета светодиода необходимо запустить на персональном компьютере программу для терминальных соединений, подключив ее к порту UART, созданному обратным каналом программатора-отладчика MSP-FET или эмулятором eZ-FET. По умолчанию модуль UART в микроконтроллере настроен на скорость обмена 9600 бод с одним стоповым битом и без использования бита четности. Для установки одного из 12 допустимых цветов через интерфейс UART необходимо передать один байт в диапазоне 0х00…0х0B. Если передать число, находящееся за пределами данного диапазона, то цвет свечения светодиода изменится на красный (рисунок 12).

Рис. 12. Цвет свечения светодиода при передаче неправильного значения через интерфейс UART

Базовая версия проекта поддерживает всего 12 фиксированных цветов светодиода, однако если использовать более мощный микроконтроллер из линейки MSP430™, то увеличение количества предустановленных цветов не вызовет никаких технических проблем. Кроме этого, базовая версия проекта ориентирована на использование платы BoosterPack, трехцветный светодиод которой имеет меньшую интенсивность излучения красного светодиода по сравнению с зеленым и синим. Это различие учтено в значениях массива colorsLow[] и colorsHigh[], оптимально подобранных для получения заданных цветов. При необходимости для более точного определения цвета излучения следует использовать рассеиватель, уменьшающий влияние пространственного разнесения оптических центров излучения светодиодов внутри корпуса прибора. Данный проект является хорошим примером управления светодиодной подсветкой с минимальным количеством внешних компонентов и жесткими требованиями к размеру программного кода, в том числе и для микроконтроллеров с максимальным объемом памяти программ, не превышающей 0,5 кбайт.

Контроллер сервопривода


(Servo Motor Controller Using MSP430™ MCUs)

Сервоприводы нашли широкое применение в большом количестве приложений, требующих точного позиционирования в пространстве каких-либо элементов, например, в устройствах автоматики, промышленной технике, роботах и многих других приложениях. Основная задача сервопривода – поддержание углового или линейного положения подвижного элемента (ротора), хотя существуют и модели, предназначенные для стабилизации его скорости вращения. Сервопривод является законченным устройством, в корпусе которого интегрированы двигатель, драйвер двигателя, датчик положения/скорости и вся необходимая дополнительная электроника. А вот управление сервоприводами осуществляется с помощью ШИМ-сигнала определенной частоты, длительность импульса которого и определяет положение подвижной части. Чаще всего для управления сервоприводами используют  ШИМ-сигналы с периодом 20 мс (частотой 50 Гц) и длительностью импульсов, находящейся в диапазоне от 1 мс (5%) до 2 мс (10%), которым соответствует угол установки ротора 0° и 180° (рисунок 13). Однако параметры ШИМ-сигнала управления и углы установки ротора зависят от модели, поэтому перед использованием конкретной модели сервопривода следует внимательно изучить его техническую документацию.

Рис. 13. Параметры ШИМ-сигнала управления сервоприводом

Базовый вариант проекта, исходные коды которого можно скачать с официального сайта Texas Instruments, позволяет управлять сервоприводом по интерфейсу UART. Этот проект является хорошим примером экономичного решения данной задачи, поскольку он реализован на микроконтроллере MSP430FR2000 с объемом памяти программ всего лишь 512 байт.

Реализация

Максимальное напряжение питания для микроконтроллеров MSP430™, а следовательно, и напряжение на выходах портов GPIO не превышает 3,6 В, в то время как амплитуда импульсов сигнала управления для большинства сервоприводов должна быть 5 В. Для согласования уровней в схеме использован N-канальный MOSFET CSD18537NKCS, включенный по схеме с общим истоком (рисунок 14), однако эту же задачу можно решить и с помощью стандартных преобразователей уровней сигналов, например, из семейства SN74LV1Txx.

Рис. 14. Схема подключения сервопривода

ШИМ-сигналы для управления сервоприводами чаше всего генерируются с помощью таймеров, в данном случае – с помощью таймера Timer_B0. По умолчанию тактовой частотой для модуля таймера, настроенного на режим инкрементирующего счета (Up Mode), является вспомогательная тактовая частота (Auxiliary Clock, ACLK) равная приблизительно 32 кГц, которая генерируется внутренним опорным генератором (Low-Frequency Reference Oscillator, REFO). В проекте используются два регистра таймера: TB0CCR0, определяющий длительность периода (20 мс), и TB0CCR1, содержащий информацию о длительности импульса ШИМ-сигнала. Выходной сигнал формируется на выводе P2.0, подключенном к выходу регистра совпадения/захвата CCR1 микроконтроллера MCP430FR2000. Для корректного управления сервоприводом длительность импульса ШИМ-сигнала управления должна находиться в диапазоне 1…2 мс.

С помощью компьютерной терминальной программы можно установить положение ротора сервопривода в одно из 16 предустановленных значений. Для связи с компьютером используется модуль асинхронного приемопередатчика микроконтроллера eUSCI_A0, конфигурируемый для работы в режиме UART. Информация с компьютера поступает в последовательном коде через вывод P1.6 и сохраняется в регистре UCA0RXD. В базовом варианте проекта используется отладочная плата MSP-TS430PW20 и программатор-отладчик MSP-FET. Информация по UART передается со скоростью 4800 бод с одним стоповым битом и без использования бита четности. Для установки положения ротора микроконтроллеру по интерфейсу UART необходимо передать число в диапазоне 0x00…0x0F, после чего длительность импульса сигнала управления, а следовательно – и положение ротора станут равными некоторым значениям, приведенным в таблице 9.

Таблица 9. Соответствие длительности импульса данным, полученным по UART

Значение принятого байта Значение регистра TB0CCR1 Длительность импульса сигнала управления
0x00 33 1,00 мс (5,0%)
0x01 36 1,10 мс (5,5%)
0x02 38 1,16 мс (5,8%)
0x03 40 1,22 мс (6,1%)
0x04 42 1,28 мс (6,4%)
0x05 44 1,34 мс (6,7%)
0x06 46 1,41 мс (7,1%)
0x07 48 1,46 мс (7,3%)
0x08 50 1,53 мс (7,7%)
0x09 52 1,59 мс (8,0%)
0x0A 54 1,65 мс (8,3%)
0x0B 56 1,71 мс (8,6%)
0x0C 58 1,77 мс (8,9%)
0x0D 60 1,83 мс (9,2%)
0x0E 62 1,89 мс (9,5%)
0x0F 65 1,98 мс (9,9%)

Результаты тестирования

На рисунке 15 показаны три примера сигналов управления сервоприводом, генерируемых микроконтроллером при передаче по интерфейсу UART значений, указанных красным шрифтом. Как видно из рисунка, минимальное и максимальное значения длительности импульса управления находятся в диапазоне 1…2 мс, чему соответствует установка ротора сервопривода в крайние левое (0°) и правое (180°) положения. При длительности импульса 1,5 мс ротор будет установлен приблизительно в середине диапазона вращения (около 90°).

Рис. 15. Сигнал управления сервоприводом

После компиляции исходного кода первоначальной версии проекта размер прошивки равен приблизительно 200 байт. Это означает, что в памяти программ остается еще достаточно места для реализации пользовательских приложений. Так, например, задействовав регистр TB0CCR2, можно реализовать управление двумя сервоприводами, подключив его к выводу P2.1. Если же нужно обеспечить более широкую функциональность, тогда необходимо использовать микроконтроллеры семейства MSP430™ с большим объемом памяти. Если управлять сервоприводом по интерфейсу UART нет необходимости, тогда модуль eUSCI можно отключить, что позволит получать ШИМ-сигналы также и на выводах P1.6 и P1.7.

Поскольку значение регистров CCR1 хранится в энергонезависимой памяти FRAM, то после сброса микроконтроллера, например, путем установки низкого уровня на выводе RST или в результате сбоя в цепи питания микроконтроллера, положение ротора сервопривода останется прежним. Если же необходимо, чтобы после сброса ротор сервопривода всегда устанавливался в некоторое исходное (начальное) положение, то исходный код базового проекта необходимо модифицировать.

RC-генератор REFO работает на частоте ACLK, равной 32 кГц, которая является, в том числе, и опорной частотой для приемопередатчика UART. Однако для повышения стабильности тактовой частоты во всем диапазоне рабочих температур рекомендуется использовать внешний кварцевый резонатор. Кроме этого, за счет использования во время простоя энергосберегающего режима LPM3 величина потребляемого тока составляет около 17 мкА при тактировании узлов от REFO, а при использовании генератора с внешним кварцевым резонатором (LFXT) ток потребления микроконтроллера можно уменьшить до 1 мкА.

Контроллер шагового двигателя


(Stepper Motor Control Using MSP430™ MCUs)

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

Для подключения шаговых двигателей к микроконтроллеру используют специальные микросхемы – драйверы, выполняющие функции не только усилителей мощности, но и преобразователей алгоритмов. Так, например, микросхема DRV8825, задействованная в данном проекте, уже содержит узлы, формирующие необходимую последовательность подачи напряжений на обмотки двигателя, в результате чего для управления шаговым двигателем необходимо сформировать всего два простых сигнала, отвечающих за направление вращения и количество шагов перемещения подвижной части привода. В базовом варианте проекта, исходные коды которого можно загрузить с официального сайта Texas Instruments, сигналы управления драйвером DRV8825 формируются микроконтроллером семейства MSP430™, при этом ШИМ-сигнал, определяющий количество шагов, формируется с помощью таймера, а сигнал направления вращения – обычным портом ввода/вывода общего назначения. Благодаря простоте формируемых сигналов размер прошивки не превышает 512 байт, что позволяет использовать в данном проекте микроконтроллеры MSP430FR2000, обладающие наименьшим объемом памяти программ.

Реализация

В микросхеме DRV8825 уже реализованы все защитные функции, необходимые для безопасной работы шагового двигателя, поэтому микроконтроллеру для начала работы необходимо сгенерировать всего лишь два сигнала: направление вращения и количество шагов. Выводы RESET и SLEEP драйвера не используются, поэтому напряжения на них имеют уровень логической единицы. Кроме этого, высокий логический уровень присутствует также и на выводе M2, поскольку в данном проекте режим микрошага (1/16 шага) также не реализован. Необходимо помнить, что диапазон рабочих напряжений питания, максимальное значение токов, требования к синхронизации, допустимые режимы работы и многие другие технические параметры зависят от конкретной модели шагового двигателя, поэтому перед подключением шагового двигателя, отличающегося от модели, используемой в базовой версии проекта, необходимо внимательно изучить его техническую документацию. В оригинальной версии проекта шаговый двигатель подключается к микроконтроллеру с помощью популярной платы на основе драйвера DRV8825, хотя сейчас уже существуют более современные микросхемы, например, DRV8886AT, содержащая кроме обновленных и улучшенных базовых функций возможность автоматической настройки и интегрированные узлы для измерения токов обмоток (рисунок 16).

Рис. 16. Схема подключения шагового двигателя

Для генерации ШИМ-сигнала, подаваемого через вывод P2.0 на контакт STEP драйвера DRV8825, используется таймер Timer_B0. Тактовый генератор микроконтроллера инициализируется на частоте 16 МГц, которая затем для исключения необходимости добавления задержек при доступе к сегнетоэлектрической памяти FRAM делится на 2. Результирующая частота MCLK, равная 8 МГц, с помощью подсистемы распределения тактовой частоты SMCLK подается ко всем периферийным устройствам микроконтроллера, в том числе к таймеру Timer_B0, работающему в режиме инкрементирующего счета. Значение регистра TB0CCR0 определяет частоту ШИМ-сигнала, а следовательно – и частоту вращения двигателя, в то время как информация в регистре TB0CCR1 рассчитывается таким образом, чтобы коэффициент заполнения импульсов управления был максимально близким к 50%, что необходимо для нормальной работы драйвера DRV8825.

Для связи с компьютером используется модуль асинхронного приемопередатчика eUSCI_A0, который конфигурируется для работы в режиме UART, при этом информация с компьютера, полученная в последовательном коде через вывод P1.6, сохраняется в регистре UCA0RXD. В базовом варианте проекта используется отладочная плата MSP-TS430PW20 на основе микроконтроллера MSP430FR2000 и программатор-отладчик MSP-FET. По умолчанию информация по UART передается со скоростью 9600 бод с одним стоповым битом и без использования бита четности, однако эти параметры могут быть легко изменены в зависимости от требований конкретного приложения. Для изменения параметров вращения шагового двигателя микроконтроллеру по интерфейсу UART необходимо передать число в диапазоне 0x00…0x0A. Передача значения 0x00 приведет к остановке двигателя, а 0x0A – к инверсии сигнала на выводе P2.1, который подключен к входу DIR драйвера DRV8825 и определяет направление вращения двигателя. Передача значений в диапазоне 0x01…0x09 приведет к изменению скорости вращения двигателя, причем чем больше число, тем больше скорость вращения. Реальное значение скорости вращения во многом зависит от конкретных моделей драйвера и шагового двигателя. Параметры сигналов, используемых в базовом проекте, приведены в таблице 10.

Таблица 10. Соответствие длительности импульса данным, полученным по UART

Значение принятого байта Значение регистра TB0CCR1 Частота сигнала управления, кГц
0x00 0 0
0x01 8000 1
0x02 4000 2
0x03 2000 4
0x04 1000 8
0x05 500 16
0x06 250 32
0x07 125 64
0x08 64 125
0x09 32 250

Результаты тестирования

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

Рис. 17. Сигнал управления шаговым двигателем

После компиляции исходного кода базовой версии проекта размер прошивки равен приблизительно 250 байт. Это означает, что в памяти программ остается еще достаточно места для реализации пользовательских приложений. Так, например, задействовав регистр TB0CCR2, можно реализовать управление двумя шаговыми двигателями, подключив вход STEP второго драйвера к выводу P2.1 (в этом случае за направление вращения должен отвечать другой порт). Если же необходимо обеспечить более широкую функциональность, тогда нужно использовать микроконтроллеры из семейства MSP430™ с большим объемом памяти. Если необходимости управления по интерфейсу UART нет, то модуль eUSCI можно отключить, что позволит получать ШИМ-сигналы также и на выводах P1.6 и P1.7. Но поскольку таймер (Timer_B0) содержит всего два свободных регистра захвата/сравнения (CCR1 и CCR2), то количество одновременно генерируемых ШИМ-сигналов ограничено.

Поскольку источником опорного сигнала для таймера является подсистема распределения тактовой частоты (SMCLK), то при простое системы можно использовать только энергосберегающий режим LPM0, при котором среднее значение потребляемого тока будет равно приблизительно 300 мкА. Если же использовать частоту 8 кГц и менее, то тактирование периферийных модулей можно осуществить от вспомогательного тактового генератора (ACLK). Использование ACLK совместно с энергосберегающим режимом LPM3 позволит при использовании RC-генератора (REFO) уменьшить ток потребления системы до величины 17 мкА, а при использовании генератора с внешним кварцевым резонатором (LFXT) – 1 мкА.

Двухканальный цифро-аналоговый преобразователь


(Dual-Output 8-Bit PWM DAC Using Low-Memory MSP430™ MCUs)

Генерация аналоговых сигналов необходима во многих приложениях, начиная от детских игрушек и заканчивая музыкальными проигрывателями и различными генераторами. Обычно для этого используются специализированные цифро-аналоговые преобразователи (ЦАП), которые не всегда входят в комплект периферийных устройств недорогих микроконтроллеров. Однако при добавлении всего нескольких пассивных компонентов сформировать сигналы небольшой частоты можно с помощью обычных таймеров, поддерживающих режим широтно-импульсной модуляции (ШИМ). Это наглядно продемонстрировано в данном проекте, исходные коды которого можно загрузить с официального сайта Texas Instruments, на примере генерации сигналов постоянного и переменного токов. Данный метод можно также использовать для формирования самых различных сигналов, в том числе и произвольной формы. Перед началом работы с проектом также рекомендуется изучить руководство «Использование таймера в качестве цифро-аналогового преобразователя» (“Using PWM Timer_B as a DAC Microcontrollers”).

В этом проекте показан пример реализации двухканального восьмиразрядного ЦАП, один канал которого генерирует синусоидальное напряжение с частотой 250 Гц, а второй – постоянное напряжение. Синусоидальное напряжение формируется на основании табличных значений отсчетов значений синуса, обновляемых каждый раз после завершения периода ШИМ-сигнала, частота которого в 16 раз больше, чем требуется для сигнала с такими параметрами. Для устранения высокочастотных пульсаций сгенерированного напряжения, неизбежных при таком методе формирования, к выходам микроконтроллера подключены RC-фильтры нижних частот, поэтому повышенная частота ШИМ-сигнала также способствует лучшей фильтрации выходного напряжения.

В базовом варианте проекта ЦАП реализован на основе микроконтроллера MSP430FR2000, имеющего в семействе MSP430™ наименьшую стоимость и объем памяти программ – всего 512 байт. Однако при необходимости формирования более сложных сигналов или реализации ЦАП с расширенным функционалом можно использовать и более мощные микроконтроллеры семейства MSP430™.

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

Рис. 18. Диаграммы работы ЦАП

Реализация

Разрешающая способность ЦАП определяется разрядностью счетчика таймера. При использовании 8-разрядных данных это значение равно 256 (28 = 256). Необходимую частоту дискретизации, равную частоте выходного ШИМ-сигнала, можно определить по формуле 1, задавшись максимальным количеством отсчетов, используемым для формирования сигналов. Для синусоидального сигнала с частотой 250 Гц, генерируемого на основе таблицы из 32 отсчетов, частота ШИМ-сигнала будет равна 8 кГц:

$$32\:отчета\times 250\:(Гц)=8\:кГц\qquad{\mathrm{(}}{1}{\mathrm{)}}$$

Для понимания сути происходящих процессов необходимо просто вспомнить, что выходной RC-фильтр фактически выделяет среднее значение периодического напряжения прямоугольной формы. Таким образом, частота дискретизации является ничем иным как количеством циклов ШИМ-сигнала, необходимых для генерации периодического напряжения с частотой 250 Гц по 32-м отсчетам.

Необходимое значение опорной частоты таймера получается путем умножения частоты дискретизации на разрешающую способность таймера (формула 2):

$$f_{CLOCK}=f_{PWM}\times 2^N=8\times 2^8=2.048\:МГц,\qquad{\mathrm{(}}{2}{\mathrm{)}}$$

где N = 8 – разрешающая способность ЦАП.

В приведенном примере для получения сигнала с частотой fCLOCK был использован внутренний генератор с цифровым управлением (DCO), выходная частота которого была выбрана равной 16 МГц. После этого с помощью делителя с коэффициентом деления 4 была получена системная тактовая частота (MCLK), которая в свою очередь была поделена на 2 подсистемой распределения тактовых импульсов (SMCLK). В результате частота импульсов на выходе SMCLK, являющаяся опорной для таймера Timer_B, равна 16: 4 : 2 = 2 МГц. Теперь для получения необходимой длительности периода осталось только единожды установить значение регистра CCR0 равным 255.

При генерации синусоидального сигнала обновление значения регистра CCR1, определяющего коэффициент заполнения ШИМ-сигнала, происходит в обработчике прерывания, генерируемого каждый раз при совпадении значений основного регистра таймера и CCR0. Каждый раз при возникновении данного прерывания происходит увеличение на единицу индекса активного элемента таблицы из 32 записей до тех пор, пока его значение не выйдет за ее границы и не будет обнулено. Поскольку второй канал ЦАП формирует постоянное напряжение, то значение регистра CCR2 в прерывании не изменяется.

Микроконтроллер настроен таким образом, что регистры CCR1 и CCR2 подключены непосредственно к выводам микроконтроллера P1.6/TB0.1 и P1.7/TB0.2 соответственно, хотя в качестве альтернативы для этих целей можно использовать также выводы P2.0 и P2.1. Выходы регистров CCR1 и CCR2 настроены для работы в триггерном режиме: при достижении таймером значения, записанного в регистре CCR0, происходит установка выходов CCR1 и CCR2 в состояние логической единицы, а при достижении значений, записанных в регистрах CCR1 (CCR2) – в состояние логического нуля. Такой метод формирования выходного сигнала обеспечивает положительную полярность импульсов ШИМ-сигнала без инверсии.

Для фильтрации высокочастотной составляющей ШИМ-сигнала в канале, формирующем синусоидальное напряжение, применен двухзвенный RC-фильтр второго порядка, значения R и C которого можно определить по формуле 3:

$$f_{C}=\frac{1}{2\pi \sqrt{RC}},\qquad{\mathrm{(}}{3}{\mathrm{)}}$$

где R⋅C = R1⋅C1 = R2⋅C2.

Частота среза fC данного фильтра (в данном случае – 795 Гц) выбирается таким образом, чтобы она находилась достаточно далеко от верхней границы полосы пропускания, что уменьшает ослабление полезного сигнала, но была ниже, чем частота ШИМ, ведь его высокочастотную составляющую необходимо подавить. Для лучшего отклика на переходные процессы рекомендуется выполнение условия R2 >> R1. Схема пассивного фильтра второго порядка была выбрана в первую очередь из-за ее простоты, хоть она и требует более высокой частоты дискретизации, чем при использовании фильтров нижних частот более высоких порядков.

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

Итоговая схема ЦАП показана на рисунке 19. В проекте была использована отладочная плата MSP-TS430PW20 с микроконтроллером MSP430FR2000, а два RC-фильтра низких частот были реализованы с помощью внешних компонентов.N,\qquad{\mathrm{(}}{4}{\mathrm{)}}$$

где N – порядок фильтра.

Альтернативным способом уменьшения уровня пульсаций является увеличение частоты среза, например, путем увеличения емкости конденсатора C2 до 420 пФ (рисунок 19). Однако в этом случае формула 3 для расчета частоты среза уже становится некорректной (поскольку R1C1 ≠ R2C2), и необходимо использовать формулу 5:

$$f_{C}=\frac{1}{2\pi \sqrt{R_{1}C_{1}R_{2}C_{2}}}\qquad{\mathrm{(}}{5}{\mathrm{)}}$$

В данном случае fС = 549 Гц.

Кроме того, выходной уровень канала постоянного напряжения можно регулировать путем изменения коэффициента заполнения ШИМ-сигнала (рисунки 19 и 21). Без учета ослабления в фильтре нижних частот выходное напряжение канала постоянного тока VDC определяется по формуле 6:

$$V_{DC}=D\times V_{CC},\qquad{\mathrm{(}}{6}{\mathrm{)}}$$

где VCC – напряжение питания микроконтроллера, D – коэффициент заполнения импульсов ШИМ-сигнала.

Рис. 21. Диаграммы работы ЦАП при C2 = 420 пФ и 100% ШИМ при Uвых канала постоянного тока = 3,32 В

Возможности предложенного ЦАП не ограничиваются только формированием простых сигналов. Так, например, сигналы постоянного и переменного токов могут суммироваться с помощью специализированного усилителя, что позволит формировать сложные пульсирующие сигналы с регулируемым смещением по постоянному току. Для генерации линейно изменяющихся сигналов, в том числе и треугольной формы, вместо хранения таблицы отсчетов можно использовать вычисление коэффициента заполнения «на лету» – в прерывании, например, с помощью следующего кода:



/**
* Обработчик прерывания таймера TimerB0 *
**/
#pragma vector=TIMER0_B0_VECTOR
__interrupt void TIMER0_B0_ISR( void)
{
 //Увеличение коэффициента заполнения на 8
 //Для изменения частоты сигнала измените величину приращения
 dutyCycle+=8;
 //Установка значения регистра CCR1 с ограничением максимального значения на уровне 255
 TB0CCR1 = dutyCycle & 0x0FF;
}

Результат выполнения приведенного кода показан на рисунке 22. Более детально эти вопросы рассмотрены в руководстве «Использование таймера в качестве цифро-аналогового преобразователя».

Также можно заметить, что теоретически табличный метод формирования сигналов позволяет генерировать сигналы любой сложности и длительности, естественно, при наличии таблицы с правильно рассчитанными значениями отсчетов. А если размер таблицы превышает 500 байт, то всегда можно взять микроконтроллер семейства MSP430™ с большим объемом памяти.

Рис. 22. Результат формирования пилообразного напряжения. Верхние диаграммы приведены в более мелких масштабах

Преобразователь «напряжение-частота»


(Analog Input to PWM Output Using the MSP430™ MCU Enhanced Comparator)

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

В этом проекте, исходные коды которого можно скачать с официального сайта Texas Instruments, показан пример реализации шестиразрядного АЦП на основе модуля компаратора с расширенными возможностями (eCOMP), содержащего программируемый источник опорного напряжения. Особенностью данного проекта является ультрамалый размер прошивки, что позволяет реализовать его на основе микроконтроллера MSP430FR2000, имеющего наименьший в семействе MSP430™ объем памяти программ – всего 512 байт.

Реализация

Логическое значение выходного сигнала модуля компаратора eCOMP зависит от разницы напряжений на неинвертирующем (V+) и инвертирующем (V–) входах. В данном проекте неинвертирующий вход компаратора подключен к выводу микроконтроллера, и на него подается подлежащий оцифровке аналоговый сигнал Vinput, а инвертирующий – к выходу встроенного программируемого шестиразрядного источника опорного напряжения, фактически являющегося цифро-аналоговым преобразователем (ЦАП).

Кроме модуля eCOMP, в проекте задействован также порт ввода/вывода общего назначения (GPIO) P1.3 (рисунок 23), к которому подключена кнопка. Нажатие на нее запускает процесс оцифровки. Для устранения возможных наводок и помех между выводом P1.3 и общим проводом включен конденсатор. Базовый вариант проекта реализован на отладочной плате MSP-TS430PW20 с микроконтроллером MSP430FR2000. Все соединения платы с источником аналогового сигнала, кнопкой и выходным устройством осуществляется с помощью проводов.

Рис. 23. Структурная схема преобразователя

Источником опорного напряжения для ЦАП является интегрированный стабилизатор с выходным напряжением 1,5 B. Оцифровка входного сигнала начинается с установки выходного напряжения ЦАП, равного половине опорного напряжения (0,75 В). Для этого в регистр CPDACDATA модуля eCOMP записывается значение 0x20, и его значение устанавливается на 32-м из 64 возможных уровней. После этого, в зависимости от состояния компаратора, содержимое регистра CPDACDATA изменяется до тех пор, пока методом деления отрезка пополам выходное напряжение ЦАП не будет установлено максимально близко к измеряемому напряжению. Поиск осуществляется по следующему алгоритму: если выходной бит компаратора находится в состоянии логического нуля (опорное напряжение больше измеряемого напряжения), то от содержимого регистра CPDACDATA отнимается половина его текущего значения, в противном случае, когда опорное напряжение меньше измеряемого напряжения, половина текущего значения CPDACDATA будет добавлена к его текущему содержимому. Несмотря на простоту и достаточно малую скорость подобного итеративного процесса, его вполне можно использовать в большом количестве приложений, не требующих высокой точности управления. После оцифровки, содержимое регистра CPDACDATA используется для расчета параметров выходного ШИМ-сигнала, которое генерируется таймером Timer_B0, подключенным к выводу P2.0 микроконтроллера. В общем случае информацию из CPDACDATA можно использовать для установки значения регистра TB0CCR0, отвечающего за длительность периода (частоту), или TB0CCR1, содержащего информацию о длительности импульсов выходного ШИМ-сигнала.

Для запуска базовой версии проекта подключите оборудование в соответствии с принципиальной схемой и запрограммируйте микроконтроллер с помощью программатора-отладчика MSP-FET. После включения питания измените управляющее напряжение на входе Vinput и запустите процесс преобразования, нажав на кнопку.

Максимальное количество уровней шестиразрядного ЦАП и, соответственно, количество состояний выходного сигнала, равно 64. В данном примере частоту выходного сигнала при заданном напряжении на входе и частоте тактирования таймера fCLK можно определить по формуле 7:

$$f_{PWM}=\frac{f_{CLK}}{(Значение\;регистра\:CPDACDATA)\times 128}\qquad{\mathrm{(}}{7}{\mathrm{)}}$$

Коэффициент заполнения импульсов ШИМ-сигнала в базовой версии этого проекта фиксирован и составляет 50%. Частота выходного сигнала для некоторых значений входного напряжения Vinput при тактовой частоте fCLK = 1,048 МГц приведена в таблице 11. При необходимости закон изменения частоты и длительности импульсов выходного ШИМ-сигнала можно легко изменить в соответствии с требованиями конкретного приложения.

Таблица 11. Значения частоты выходного сигнала при различных значениях Vinput

Vinput, В Значение регистра CPDACDATA Выходная частота, кГц
0 1 8000
0,5 23 340
1 43 181
1,5 63 124

Результаты тестирования

На рисунке 24 показан пример работы преобразователя. Согласно результатам измерений, время оцифровки входного напряжения составляет приблизительно 5,95 мс. При этом, благодаря постоянному количеству итераций алгоритма оцифровки, это время не зависит от уровня входного напряжения. В приведенном примере вход преобразователя был подключен к источнику питания с напряжением 1,09 В. После завершения работы алгоритма оцифровки значение регистра, отвечающего за выходное напряжение ЦАП, стало равно 47. Минимальное разрешение полученного АЦП равно 1,5 В/64 = 0,023 В, поэтому при таком значении регистра выходное напряжение ЦАП будет равно (1,5 В * 47)/64 = 1,10 В. Таким образом, величина погрешности оцифровки равна 1,10 В – 1,09 В = 0,01 В, что меньше минимального разрешения.

Рис. 24. Результаты работы преобразователя

После компиляции размер прошивки преобразователя равен приблизительно 380 байт, что позволяет использовать оставшееся место для реализации дополнительных функций, например, обработки состояния порта GPIO или таблицы значений параметров ШИМ. Дальнейшее увеличение функционала, скорее всего, потребует увеличения необходимого объема памяти программ и перехода на более мощные контроллеры из семейства MSP430™. Поскольку источником опорного сигнала для таймера является подсистема распределения тактовой частоты (SMCLK), то при простое системы можно использовать только энергосберегающий режим LPM0. При необходимости дальнейшего уменьшения потребляемой мощности, что возможно, например, при использовании энергосберегающего режима LPM3, необходимо тактировать таймер от другого системного источника.

Список ранее опубликованных глав

•••

Наши информационные каналы

Формирование ШИМ с повышенным разрешением

Микроконтроллер C167 имеет дополнительно 4 независимых выхода ШИМ (PWM) с разрешением 50 нсек. Диапазон частот выходных сигналов PWM, выравненных по фронту, может быть от 4.8 Гц до 10 МГц, для PWM сигналов, выравненных по центру — от 2.4 Гц до 5 МГц.

Блок генерации PWM сигналов с повышенным разрешением состоит из 4-х независимых каналов. Каждый канал содержит 16-разрядный реверсивный счётчик PTx, 16-разрядный регистр периода с теневым «регистром-защёлкой», 16-разрядный регистр ШИМ с теневым «регистром-защёлкой», 2 модулятора и необходимую управляющую логику.

Режимы работы

Модуль ШИМ имеет четыре режима работы:

  • Режим генерации стандартного ШИМ-сигнала (синхронизация ШИМ по фронту), для 4-х каналов
  • Режим генерации симметричного ШИМ-сигнала (синхронизация ШИМ по центру), для 4-х каналов
  • Режим генерации пакетов импульсов (Burst mode), объединяет каналы 0 и 1
  • Режим одновибратора (Single Shot Mode), только для каналов 2 и 3

Режим генерации стандартного ШИМ-сигнала (синхронизация ШИМ по фронту)

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

Сигнал переключается обратно в состояние лог.0, когда соответствующий таймер сбрасывается в состояние 0000h, т.е. его значение меньше значения теневого регистра ширины импульса.

Период результирующего сигнала ШИМ определяется по формуле:T1pwm = [PPx] + 1

Коэффициент заполнения выходного ШИМ-сигнала управляется значением соответствующего теневого регистра ширины импульса и может изменяться в пределах от 0% до 100%.

Режим генерации симметричного ШИМ-сигнала (синхронизация ШИМ по центру)

В режиме генерации симметричного ШИМ-сигнала таймер PTx соответствующего канала ШИМ наращивает своё значение до тех пор, пока не достигнет значения соответствующего теневого регистра периода. Во время прихода следующего импульса направление счета изменяется, и таймер начинает считать вниз, пока не достигнет значения 0000h. Следующий импульс снова изменяет направление счета, повторяя цикл генерации симметричного ШИМ-сигнала.

Значение периода в этом режиме вычисляется по формуле:T2pwm =2 * ([PPx] + 1)

Режим генерации пакетов импульсов (Burst mode)

В этом режиме объединяются сигналы каналов 0 и 1 (логическое И) и подаются на вывод порта 0-го канала.

Каждый из двух каналов может работать как в режиме 0, так и в режиме 1.

Замечание: Выходной cигнал поступает на выход порта синхронно с сигналом внутреннего тактового генератора, что гарантирует отсутствие ложных импульсов.

Режим одновибратора (Single shot mode)

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

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

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

Для генерации следующего импульса таймер запускается программно, установкой бита PTRx.

После запуска таймера (т.е. PTRx=»1″) выходной сигнал можно изменять программно. При записи в таймер PTx изменяется фронт и/или спад выходного сигнала, в зависимости от того, начался импульс (т.е. выход в лог.1) или нет (т.е. выход все еще в лог.0).

При правильной установке значения периода (PPx), начального значения таймера (PTx) и значения регистра ширины импульса (PWx) ширина выходного импульса (tw) и задержка импульса (td) могут изменяться в широком диапазоне.

Введение в ШИМ — типы широтно-импульсной модуляции

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

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

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

 Период времени = время включения + время выключения 

Частота ШИМ

Частота равна 1 за период, что дает вам количество циклов в единице времени.Например, если период таймера сигнала составляет 20 мс, его частота будет равна 50 Гц, где Гц — единица измерения частоты. Читается за герц.

 Частота = 1 / период таймера 

На рисунке ниже показаны амплитуда и период таймера формы волны.

Что такое рабочий цикл?

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

Таким образом, формула для рабочего цикла представлена ​​в следующем выражении:

  Рабочий цикл = (время включения сигнала / общий период сигнала таймера)  

Как рассчитать выходное напряжение сигнала ШИМ?

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

 Рабочий цикл = 6 мс / 10 мс = 0,6 

Решая это, мы получаем рабочий цикл 0,6, что является безразмерной величиной. Мы всегда измеряем рабочий цикл в процентах. Максимальный рабочий цикл может быть 1 или 100%, когда время включения или время высокого уровня сигнала равно общему периоду времени сигнала.Точно так же минимальный рабочий цикл будет 0 или 0%, когда сигнал отключен в течение всего периода таймера. Вы можете увидеть изображение ниже сигналов с различными рабочими циклами.

Амплитуда ШИМ

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

 Амплитуда = Vmax - Vmin 

В случае цифровых сигналов минимальное напряжение обычно равно нулю.Таким образом, амплитуда — это пиковое напряжение сигнала. давайте представим сигнал ШИМ, который колеблется между 0 и 5 вольтами. скажем, этот сигнал имеет рабочий цикл 50%. Что-то интересное произойдет с выходным напряжением вместо ожидаемых 5 вольт. Теперь будет просто 2,5 вольта.

Когда вы примените эту прямоугольную волну с рабочим циклом 50% к светодиоду, вы получите напряжение 2,5 на светоизлучающем диоде . Потому что, когда вы применяете прямоугольную волну с рабочим циклом 50% в качестве источника входного напряжения, формула выходного напряжения определяется как:

 Vout = D x Vmax 

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

 Максимальное выходное напряжение будет равно = Vmax    при коэффициенте заполнения = 100 % или 1

Максимальное выходное напряжение будет равно = 0   , когда рабочий цикл = 0 

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

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

Методы генерации широтно-импульсной модуляции

Для генерации ШИМ используются два метода:

  1. Генерация ШИМ с использованием цифровых схем, таких как микроконтроллер.
  2. Генерация ШИМ с использованием аналоговых схем, таких как операционные усилители и схемы компараторов.

Генерация широтно-импульсной модуляции с использованием микроконтроллера

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

Генерация широтно-импульсной модуляции с использованием аналоговых схем

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

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

Другой метод генерации ШИМ

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

Применение широтно-импульсной модуляции

Я упомянул несколько приложений в начале этой статьи. Но вы можете посмотреть мой проект, в котором я использовал ШИМ для различных приложений, таких как инверторы, трехфазный инвертор и силовая электроника.

Что такое широтно-импульсная модуляция (ШИМ)? Определение, основы, схема генерации и обнаружения и применение широтно-импульсной модуляции

Определение : Метод модуляции, при котором ширина импульсов несущей волны изменяется в соответствии с модулирующим сигналом, известен как широтно-импульсная модуляция (ШИМ). ) . Он также известен как Длительно-импульсная модуляция (PDM) .

Основы широтно-импульсной модуляции

Это тип метода импульсно-временной модуляции (PTM) , в котором синхронизация импульса несущей изменяется в соответствии с модулирующим сигналом.

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

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

Генерация ШИМ-сигнала Представление формы волны

На рисунке ниже показан процесс широтно-импульсной модуляции. Он широко известен как непрямой метод генерации ШИМ.

Сигнал сообщения и форма несущей подается на модулятор, который генерирует сигнал PAM.Этот амплитудно-модулированный сигнал подается на неинвертирующий вывод компаратора.

Линейный сигнал, генерируемый генератором пилообразной формы, подается на инвертирующий вывод компаратора.

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

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

Ширина ШИМ-сигнала пропорциональна пропущенной части пилообразного сигнала по уровню компаратора.

Рисунок ниже поможет вам лучше понять, как компаратор генерирует ШИМ-сигнал:

Здесь первое изображение, т. е. (а), показывает форму волны синусоидального модулирующего сигнала, а второе (б) показывает импульсную несущую. После модуляции генерируется сигнал PAM, показанный на (c). Этот сигнал PAM при добавлении к линейному сигналу, показанному на (d), сравнивается с опорным напряжением компаратора, показанным на рисунке (e).

Наконец, на рисунке (f) показан ШИМ-сигнал.

Мы уже упоминали, что ширина импульса напрямую зависит от части формы волны, лежащей выше уровня компаратора.

Так генерируется сигнал с широтно-импульсной модуляцией.

Обнаружение ШИМ-сигнала

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

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

Этот регенерированный импульс ШИМ затем подается на генератор эталонных импульсов, который генерирует импульсы постоянной амплитуды и постоянной ширины.

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

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

Затем этот сигнал PAM передается LPF для генерации исходного сигнала сообщения из модулированного.

На приведенном ниже рисунке представлена ​​форма сигнала процесса обнаружения ШИМ.

Первое изображение (i) показывает искаженную волну ШИМ, а следующее (ii) показывает регенерированный импульс ШИМ.

Работа генератора рампы показана на (iii), а (iv) показывает выходной сигнал генератора опорных импульсов. Операция суммирования и отсечения сигнала показаны на (v).

Окончательное изображение на приведенном выше рисунке (vi) представляет импульсы PAM, из которых восстанавливается исходный сигнал сообщения.

Частотный спектр сигнала ШИМ

Спектр сигнала ШИМ показан ниже

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

Влияние шума на двухимпульсную модуляцию

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

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

Преимущества широтно-импульсной модуляции

  1. Он более устойчив к шуму, создаваемому каналом, чем PAM.
  2. Поскольку к амплитуде добавляется шум, восстановление ШИМ-сигнала из искаженного ШИМ-сигнала несколько упрощается.
  3. Нет необходимости синхронизировать передачу и прием.

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

  1. Из-за изменения ширины импульсов также наблюдается изменение мощности передачи.
  2. Требуемая пропускная способность в случае PWM несколько больше, чем в случае PAM.

Применение широтно-импульсной модуляции

Используется в телекоммуникациях, управлении яркостью света или скорости вращения вентиляторов и т. д.

FB_CTRL_PWM_OUT

  1. TF4100 TC3 Контроллер инструментария
  2. PLC API
  3. Ссылка
  4. ФУНЦИАЛЬНЫЕ БЛОКИ
  5. Выходной для контрольного оборудования
  6. FB_CTRLE_PWM_OUT
  7. .

    Описание выходного поведения

    Этот функциональный блок создает сигнал ШИМ на выходах с отношением меток к пробелам, соответствующим входу fPwmInput . Отношение меток к пробелам задается на входе в %; доступен диапазон от -100% до 100%. Если задано положительное значение, сигнал с широтно-импульсной модуляцией доступен на выходе bPwmOutBitPos . Если указанное отношение метки к пробелу отрицательное, сигнал выводится по адресу bPwmOutBitNeg .Таким образом, эти два сигнала позволяют управлять двумя разными приводами в зависимости от арифметического знака.

    Если для параметра bInstantPWMUpdate установлено значение TRUE, можно мгновенно принять новое входное значение. Другими словами, новое входное значение действует даже в текущем цикле ШИМ. Если этот параметр равен FALSE, то новое входное значение принимается только в начале нового цикла ШИМ.

    VAR_INPUT

      VAR_INPUT 
        fPwmInput  : FLOAT;
        eMode      : E_CTRL_MODE;
    END_VAR

    VAR_OUTPUT

      VAR_OUTPUT 
        bPwmOutBitPos  : BOOL;
        bPwmOutBitNeg  : BOOL;
        eState         : E_CTRL_STATE;
        bError         : BOOL;
        eErrorId       : E_CTRL_ERRORCODES;
    END_VAR

    VAR_IN_OUT

      VAR_IN_OUT 
        stParams    : ST_CTRL_PWM_OUT_PARAMS;
    END_VAR

    STParams состоит из следующих элементов:

      Тип ST_CTRL_PWM_OUT_PARAMS: 
    СТРУКТА
    TTASKCLECTITE
        bInstantPWMUpdate  : BOOL;
    END_STRUCT
    END_TYPE

    © Beckhoff Automation, 2021 г.

    Это простой в использовании преобразователь напряжения в ШИМ.Проект занимает очень мало места. Схема построена на универсальном кремниевом таймере LT6992-1 . Широтно-импульсная модуляция (ШИМ), управляемая простым 0–1 В Аналоговый вход, многооборотный подстроечный потенциометр для регулировки рабочего цикла 0–100 % . Схема также позволяет установить частоту 2,65 кГц, 7,8 кГц, 10,7 кГц или 15,7 кГц с помощью перемычки J1 и J2. Схема работает с питанием 5В. D1 — это индикатор питания, все подключения выполняются легко с помощью 3-контактного штекерного разъема CN1.Это очень полезный инструмент в качестве тестового механизма или для управления различными цепями, требующими ШИМ-сигнала. Выходная частота очень точна и стабильна. 1,7% Максимальная погрешность частоты. Драйвер вывода CMOS Источники/приемники 20 мА

    Настройка частоты (перемычки J1 и J2)

    • J1-разомкнут, J2 разомкнут = 2,65 кГц
    • J1-замкнут, J2-открыт = 10,4 кГц
    • J1-замкнут, J2-замкнут=15,7 кГц
    • J1-разомкнут, J2 замкнут = 7,8 кГц

    Рабочий цикл: Рабочий цикл регулируется от 0 до 100 % с помощью многооборотного подстроечного потенциометра PR1.Рабочий цикл также можно контролировать с помощью внешнего аналогового напряжения, удалите PR1 и используйте контакт GND и средний контакт потенциометра триммера, чтобы подать от 0 до 1 В на выход ШИМ от 0 до 100%.

    Потребляемая мощность: Схема работает от источника питания 5 В постоянного тока и потребляет ток 10 мА

    Применение

    • Сервоконтуры ШИМ
    • Управление нагревателем
    • Регулятор скорости двигателя постоянного тока
    • Управление диммированием светодиодов
    • Высокая вибрация, среда с высоким ускорением
    • Портативное оборудование и оборудование с батарейным питанием

    Схема

    Список деталей

    КОЛ-ВО. ПОЗ. ИСХ. ПРОИЗВОДИТЕЛЬ ПОСТАВЩИК ПОСТАВЩИК НОМЕР ДЕТАЛИ
    1 1 БС1 3 штырьковый ЗАГОЛОВОК PITHC 2,54 ВЮРТ Digikey 732-5316-ND
    2 1 C1 0,1 мкФ/50 В SMD РАЗМЕР 0805 MURATA/YAGEO DIGIKEY
    3 1 C2 10 мкФ/16 В SMD РАЗМЕР 1206 MURATA/YAGEO DIGIKEY
    4 1 D1 КРАСНЫЙ СВЕТОДИОД SMD РАЗМЕР 0805 LITE ON INC DIGIKEY 160-1427
    5 2 J1,J2 2-ШТЫРЬКОВАЯ ВТУЛКА ШАГ 2.54MM WURTH DIGIKEY 732-5315-ND
    6 1 PR1 5K TRIMMER POT BOURNS INC DIGIKEY 3299W-5039-ND
    7 1 R1 РАЗМЕР 20K 1% SMD 0805 MURATA/YAGEO DIGIKEY
    8 1 R2 1M 1% SMD РАЗМЕР 0805 MURATA/YAGEO DIGIKEY
    9 1 R3 РАЗМЕР 1K 1% SMD 0805 MURATA/YAGEO DIGIKEY
    10 1 R4 100K 1% SMD SIZE 0805 MURATA/YAGEO DIGIKEY
    11 1 R6 300K 1% SMD SIZE 0805 MURATA/YAGEO DIGIKEY
    12 1 R7 280K 1% SMD SIZE 0805 MURATA/YAGEO DIGIKEY
    13 1 U1 LTC6992-1 АНАЛОГОВЫЙ DIGIKEY 161-NDT3B09-169-LTC6992IS6
    14 2 J1,J2 ШУНТ РАЗЪЕМ SULLINS DIGIKEY S9001-ND
    15 1 R5 Размер 150K 1% SMD 0805 MURATA/YAGEO DIGIKEY

    Соединения

    Гербер Вью

    Фото

    Видео

    LT6992-1 Лист данных

    LTC6992-1-6992-2-6992-3-6992-4

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

    Хорошее определение широтно-импульсной модуляции (ШИМ) содержится в самом названии.Это означает модуляцию/изменение ширины импульса (не частоты). Чтобы лучше понять, что такое ШИМ, давайте сначала рассмотрим некоторые основные термины.

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

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

    Например,
    При напряжении питания 50 В и если нагрузке требуется 40 В, хорошим способом получения 40 В из 50 В является использование понижающего прерывателя (подробнее о прерывателях).Прерывателю требуется сигнал запуска, который должен быть ШИМ-сигналом для включения и выключения тиристора. Этот ШИМ-сигнал может быть легко сгенерирован микроконтроллером, имеющим таймеры. Требования к сигналу ШИМ для генерации 40 В с использованием тиристора от источника питания 50 В: время включения = 400 мс, время выключения = 100 мс (учитывая, что период сигнала ШИМ составляет 500 мс). Проще говоря, это можно легко объяснить следующим образом: в основном тиристор работает как переключатель. В понижающем прерывателе нагрузка получает ток от источника через тиристор.Когда тиристор находится в состоянии ВЫКЛ, нагрузка не подключена к источнику, а когда тиристор находится в состоянии ВКЛ, нагрузка подключена к источнику. Эта работа по включению и выключению тиристора выполняется сигналом ШИМ. Процент периода времени, в течение которого сигнал ШИМ находится на высоком уровне / включен, называется рабочим циклом сигнала. Если рабочий цикл равен 100%, то волна становится постоянным постоянным током. Итак, рабочий цикл можно рассчитать по следующей формуле:

    Используя приведенную выше формулу, мы можем рассчитать tON для желаемого напряжения из общего напряжения источника.Умножая рабочий цикл на 100, мы можем представить его в процентах. Таким образом, процент рабочего цикла прямо пропорционален величине напряжения, взятого из источника. В приведенном выше примере, если мы хотим получить 40 вольт от источника 50 вольт, это может быть достигнуто с помощью понижающего прерывателя с рабочим циклом 80%. Так как 80% от 50 равно 40.

    Пример проблемы:

    На частоте 50 Гц спроектируйте волну ШИМ с рабочим циклом 60%.



    Результирующая волна ШИМ будет:

    Одним из лучших примеров применения широтно-импульсной модуляции является использование ШИМ для управления скоростью двигателя.

    Этот метод изменения ширины импульса для получения желаемого коэффициента заполнения называется «широтно-импульсной модуляцией».

    Ошибка 404 — Страница не найдена

    Страна COUNTRYAfghanistanÅland IslandsAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntigua и BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBoliviaBosnia и HerzegovinaBotswanaBouvet IslandBrazilBritish Индийский океан TerritoryBruneiBulgariaBurkina FasoBurundiCambodiaCameroonCanadaCape VerdeCaribbean NetherlandsCayman IslandsChadChileChinaChristmas IslandCocos IslandsColombiaComorosCongo, Демократическая RepublicCook IslandsCosta RicaCroatiaCubaCuraçaoCyprusCzech RepublicDenmarkDjiboutiDominicaDominican RepublicEast TimorEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFalkland IslandsFaroe IslandsFijiFinlandFranceFrench GuianaFrench PolynesiaFrench Южный TerritoriesGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuernseyGuineaGuinea-BissauGuyanaHaitiHondurasHong KongHungaryIcelandIndiaIndonesiaIranIraqIrelandIsle из ManIsraelItalyIvory CoastJamaicaJapanJerseyJordan KazakhstanKenyaKiribatiKosovoKuwaitKyrgyzstanLaosLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacaoMacedoniaMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMicronesiaMoldovaMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfork IslandNorwayOmanPakistanPalauPalestinian TerritoryPanamaPapua Новый GuineaParaguayPeruPhilippinesPitcairn IslandPolandPortugalPuerto RicoQatarRepublic из CongoReunionRomaniaRussiaRwandaSaint HelenaSaint Киттс и NevisSaint LuciaSaint Пьер и MiquelonSaint Винсент и GrenadinesSamoaSan MarinoSao Томе и PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra LeoneSingaporeSint MaartenSlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth Грузии и Южные Сандвичевы IslandsSouth KoreaSouth SudanSpainSri LankaSudanSurinameSvalbard и Ян MayenSwazilandSwedenSwitzerlandSyriaTaiwanTajikistanTanzaniaThaila ндТогоТокелауТонгаТринидад и ТобагоТунисТурцияТуркменистанОстрова Теркс и КайкосТувалуУгандаУкраинаОбъединенные Арабские ЭмиратыВеликобританияСоединенные ШтатыОтдаленные малые острова СШАУругвайУзбекистанВануатуВатиканВенесуэлаВьетнамВиргинские острова, Британские Виргинские острова, СШАЗападная СахараЙеменЗамбияЗимбабве

    Устранение неполадок сигнала ШИМ

    — Tyto Robotics

    11 сентября 2020 г.

    ​1.​ Применимые продукты

    • Упорный стенд RCbenchmark Series 1520
    • Упорный стенд RCbenchmark серии 1580 и динамометр
    • Упорный стенд RCbenchmark серии 1585 и динамометр
    • Упорный стенд RCbenchmark серии 1780 и динамометр

    2. Что описывает вашу проблему?

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


    3.Устранение неполадок по конкретным проблемам

    3.1​ Какова выходная частота порта ШИМ на упорном стенде?

    Выходной сигнал ESC и сервопривода со всех портов PWM использует частоту 50 Гц.

    3.2 Что означает 1000 в системе управления ESC/Servo?

    1000 в ESC или сервоуправлении означает 1000 мкс. 1000 мкс — это время «ВКЛ», сравниваемое или пропорциональное регулярному интервалу или «периоду» времени 2000 мкс (50 Гц). Мы используем термин рабочий цикл для описания доли «включено» и периода времени, например, при 1000 мкс рабочий цикл составляет 5%.Более высокий рабочий цикл соответствует более высокой мощности.

    3.3 Какое выходное напряжение порта ШИМ?

    Все порты ШИМ на устройствах серии 1520/1580/1585/1780 выводят 5 В.

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

    4. Проблема не устранена?

    Мы поддерживаем все вопросы, связанные с самими инструментами измерения, и мы можем предоставить ограниченную поддержку в отношении настройки вашего теста и выбора силовой передачи.Если вам нужна расширенная поддержка для конкретных испытаний, производственного предприятия или БПЛА, свяжитесь с нами по адресу [email protected] Мы предлагаем контракты на расширенную поддержку, включая телефонные и видеоконференции по доступным ценам.

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

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

Ваш адрес email не будет опубликован.