Как преобразовать шим в постоянное напряжение
Перейти к содержимому

Как преобразовать шим в постоянное напряжение

  • автор:

Аналоговый вывод

Несмотря на большую универсальность, возможности аналогового вывода у микроконтроллеров семейства tiny/mega ограничены. В их составе отсутствует цифро-аналоговый преобразователь (ЦАП), который, однако, имеется в ряде моделей специализированного для этих целей семейства 90PWM. Преобразовать цифровой код в аналоговую величину в общем случае можно с помощью простой схемы приведенной на рис.1. Простой 8-разрядный ЦАП
Рис.1 Простой 8-разрядный ЦАП Делитель напряжения, состоящий из набора резисторов R1…R8, подключен к порту D микроконтроллера. Номиналов каждого последующего сопротивления должен быть в 2 раза больше предыдущего
RN = 2 N-1 *R,
где N – индекс, R – опорный номинал. Если, например, в качестве R выбрать значение 200Ом, то потребуется последовательность сопротивлений R1=200Ом, R2=400Ом, R3=400Ом,…, R6=6.4кОм, R6=12.8кОм, R6=25.6кОм. Выходное напряжение
UO = NPORTD*VCC/256,
где NPORTD – логическое значение регистра PORTD. Теоретически получим 2 8 шагов регулировки, что будет соответствовать 8-разрядному ЦАП. Но на практике перекрыть весь диапазон 0…V­СС никогда не удастся, и всегда будут иметься зоны “замирания” напряжения из-за сложности подбора номиналов R1…R8. Шаг установки VCC/256 по этой же причине также не будет постоянной величиной. Для большей точности работы ЦАП на рис.1 требуется высокоимпедансная нагрузка. Формирование ШИМ-сигнала на линии ОС2 при работе таймера-счетчика 2 в режиме Fast PWM
Рис.2 Формирование ШИМ-сигнала на линии ОС2 при работе таймера-счетчика 2 в режиме Fast PWM Другим более естественным для AVR способом формирования аналоговых сигналов является использование широтно-импульсной модуляции (ШИМ). Способность аппаратно генерировать импульсы переменной длительности и частоты имеется у большинства моделей tiny и у всех без исключения моделей старшего семейства. Преобразование ШИМ–сигнала в постоянное напряжение может быть легко произведено с помощью ФНЧ. На рис.2, например, показано, как в этих целях можно использовать вывод OC2 микроконтроллера ATmega8. В подобных случаях 8-разрядный таймер-счетчик 2, как правило, работает в режиме Fast PWM(Fast Pulse Wide Modulation). Счетный регистр TCNT2 при этом инкрементируется с каждым приходящим импульсом до тех пор, пока не достигнет значения 0xFF, после чего счет продолжается с нуля. Если функции вывода OC2 настроены должным образом, то каждый раз, когда содержимое TCNT2 сравнивается со значением, записанным в регистре OCR2, на выводе OC2 устанавливается высокий уровень напряжения, а при переполнении TCNT2 линия OC2 сбрасывается на нуль. Таким образом, на выводе получаем ШИМ-сигнал с частотой
FOC2 = Fclk/(256*N),
где Fclk – частота тактового генератора, N-коэффициент деления предделителя частоты таймера-счетчика 2. Коэффициент заполнения импульсов
αOC2 = τ/T = OCR2/256,
где τ – длительность импульса , T – период импульса. Постоянная составляющая напряжения после ФНЧ будет пропорциональна коэффициенту заполнения αOC2
UO = αOC2*VCC = OCR2*VCC/256,
где VCC – напряжение питания микроконтроллера. Изменяя значение OCR2, можно программным способом регулировать UO с 8-разрядной точностью. Еще больше возможностей можно получить, если в подобных целях использовать ШИМ–выводы OC1A, OC1B. Разрешающая способность в этом случае может быть доведена до 16 битов за счет использования 2-байтовых регистров совпадения OCR1AH:OCR1AL и OCR1BH:OCR1BL. Частота среза ФНЧ должна быть во много раз ниже FOC2. Поэтому саму частоту FOC2, если это возможно, желательно выбирать повыше для того, чтобы можно было уменьшить постоянную времени фильтра (увеличить скорость установления напряжения после фильтра). Управление с помощью ШИМ
Рис.3 Управление с помощью ШИМ
а — при регулировке напряжения
б — при регулировке тока На рис.3 приведено два примера, в которых управляющий ШИМ–сигнал используется для регулировки напряжения (рис.3а) и тока (рис.3б) с помощью мощных полевых транзисторов с изолированным затвором.
В первом случае напряжение на сопротивлении нагрузки UL будет:
UL = [R2/(R1+R2)] * [(R3+R4)/R4] * VCC. Если выбрать R1/R2 = R3/R4, то UL будет в точности следовать за средним значением напряжения сформированного на выводе OC2. Для надежного запирания p-канального транзистора VT1 усилитель DA1 должен обеспечивать размах напряжения на выходе такой же, как и у источника питания (rail-to-rail). При управлении током напряжение ошибки снимается с шунта R3 и подается на инвертирующий вход –IN усилителя. Влияние ООС приводит к равенству напряжений
U+IN = U–IN = IL*R3,
где U+IN, U-IN – напряжение на не инвертирующем и инвертирующем входе DA1 соответственно, IL — ток в нагрузке. Для схемы на рис.3б ток в нагрузке будет равен:
IL = U–IN/R3 = [R2/((R1+R2)*R3)] * VCC. C обозначенными на рис.3б номиналами R1…R3 и VCC=5 В, получим 2-амперный регулятор тока. Пример настройки ШИМ-вывода OC2:

.def temp = R16 ;регистр для промежуточных операций ldi temp,high(RAMEND) ;инициализация стека out SPH,temp ldi temp,low(RAMEND) out SPL,temp . ; Для использования альтернативной функции линии PB3, как ; источника формирующего ШИМ-сигнал OC2, прежде всего ее ; необходимо настроить на вывод. cbi PORTB,PB3 sbi DDRB,DDB3 ; Частота следования импульсов в режиме Fast PWM : FOC2= ; Fclk/(256*N). Режим работы таймера-счетчика задается битами ; WGM22:WGM20(при WGM13:WGM10 = 011 – режем Fast PWM), значение ; N - битами CS22:CS20 в регистре TCCR2. При Fclk=1 МГц и N=8 ; (CS22:CS20 = 010–коэффициент деления предделителя частоты ; N=8): FOC2= 125 кГц. В момент совпадения TCNT2 и OCR2 ; происходит установка флага OC2F, а при переполнении TCNT2 ; установка флага TOV2 в регистре флагов TIFR. Биты COM21:COM20 ; в регистре TCCR2 определяют поведение вывода OC2 в моменты ; установки флагов OCF2 и TOV2. При COM21:COM20 = 01 – состояние ; OC2 меняется на противоположное. ldi temp,0xF0 out TCNT2,temp ldi temp,0x20 out OCR2,temp ldi temp,(1 

Перейти к следующей части: Отладка приложений - Пошаговый режим отладки

Теги:

Котов Игорь Юрьевич Опубликована: 2012 г. 0 1

Вознаградить Я собрал 0 0

Как преобразовать шим в постоянное напряжение

подскажите как преобразовать шим в напряжение

  • Автор темы kazactz
  • Дата начала 22 Мар 2019

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

kazactz

13 Янв 2019 106 29

Доброго дня, может кто подсказать схемку чтоб преобразовать шим сигнал в напряжение 0-5в, или как это реализовать скажем на ардуино.

Изменено: 22 Мар 2019

Wan-Derer

Команда форума
31 Июл 2018 1,980 405 Москва wan-derer.ru

Fleshdeck

19 Янв 2019 349 174 Киев
Есть модуль у китайцев, но преобразовует шим в 0-10В
https://m.aliexpress.ru/item/32834921874.html
Поделиться:

О сайте

  • Официальное сообщество YouTube-канала AlexGyver. Здесь обсуждаются проекты автора и остальных участников форума, а также рождаются новые крутые идеи. У нас можно получить ответы на вопросы по техническим темам в разделе помощи, найти себе исполнителя или заказчика на разработку электроники и совместно заказать плату для проекта. Приятного общения!

Новые темы

  • Автор: gamedata
  • Вчера в 21:45
  • Ответы: 2
  • Автор: MrEgonik
  • Вчера в 19:26
  • Ответы: 2

Статистика форума

Темы 5,924 Сообщения 111,562 Пользователи 61,525 Новый пользователь qwedy

  • Обратная связь
  • Условия и правила
  • Политика конфиденциальности
  • Помощь
  • RSS

Локализация от XenForo.Info
XenPorta 2 PRO © Jason Axelrod of 8WAYRUN

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

Как из шима получить постоянное напряжение.

Как получить из шима постоянное напряжение, знает каждый начинающий электронщик. Всё просто, надо пропустить шим через фильтр низких частот(в простейшем случае RC цепочка) и на выходе фильтра получим постоянное напряжение, не так ли?

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

Как подобрать номиналы элементов фильтра?

Сгладиться ли шим полностью или останутся пульсации?

И как вообще это работает, ведь конденсатор заряжается и разряжается через один и тот же резистор и по идее если коэффециент заполнения будет меньше половины, напряжение на конденсаторе вообще будет равно нулю. Например, у нас коэффециент заполнения равен 30%, тогда 30% периода конденсатор будет заряжаться, а 70% разряжаться, через тот же резистор и в итоге на нём ничего не останется, по крайне мере можно так подумать.

Давайте проверим это на практике, для этого соберём схему, изображённую ниже и подключимся щупами осциллографа в точки 1 и 2, надо отметить что период шима на порядок больше постоянной времени данной цепочки.

Как из шима получить постоянное напряжение.

Как из шима получить постоянное напряжение.

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

Единственная идея, которая напрашивается — это изменить номиналы RC фильтра, давайте на порядок увеличим значение резистора, тем самым увеличив постоянную RC цепи(теперь она будет равна периоду шима) или уменьшив частоту среза фильтра.

Как из шима получить постоянное напряжение.

Как из шима получить постоянное напряжение.

Ух ты, что-то начинает проясняться, у нас появилась постоянная составляющая. То есть в наши рассуждения закралась ошибка и заключается она в том, что конденсатор заряжается от 0 до 63% за время равное R*C(T), а разряжается он от 63% до 5% за время больше чем 2T , ниже графики, поясняющие это.

Как из шима получить постоянное напряжение.

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

Теперь, когда мы нашли ошибку в наших размышлениях давайте, проанализируем что происходило, в первом эксперименте. Известно, что полная зарядка или разрядка конденсатора происходит за время равное 5T, а зарядка до 95% и разрядка до 5% примерно за 3T. Так как постоянная времени RC цепочки(которую мы использовали как ФНЧ) была мала, то за один период шима конденсатор успевал, почти полностью зарядиться и разрядиться.

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

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

Теперь примерно, понимая как вообще получают из шима постоянное напряжение, давайте перейдём к реальной задаче.
Необходимо на одном из входов ОУ формировать опорное напряжение с помощью шима и ФНЧ, логическая единица у шима составляет 3 вольта, частота шима 10KHz, допустимый уровень пульсаций 30 милливольт. Считаем, что входы ОУ ток не потребляют, в качестве ФНЧ возьмём фильтр первого порядка, реализованный на RC цепочке.

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

Как из шима получить постоянное напряжение.

Итак для расчёта по-честному, давайте посчитаем во сколько раз надо ослабить сигнал, 3000/30 = 100 и переведём в децибелы, получается -40дб.

Как из шима получить постоянное напряжение.

Известно, что крутизна спада у фильтра первого порядка составляет 20дб/декаду и ослабление сигнала на 40дб, соответствует увеличению частоты на две декады. (20дб/декаду - уменьшение амплитуды в 10 раз(20дб), при увеличении частоты в 10 раз(декада).

Как из шима получить постоянное напряжение.

Зная, что частота среза фильтра должна быть на две декады(в 100 раз) меньше частоты шимы, можно её рассчитать 10KHz/100 = 100Hz.

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

Как из шима получить постоянное напряжение.

Сопротивление возьмем равным 16K, а конденсатор 100nF.
Давайте проверим, что получится на практике, соберём схему, изображённую ниже и подключимся к точкам один и два.

Как из шима получить постоянное напряжение.

Как из шима получить постоянное напряжение.

И нарисуем ЛAЧХ нашей схемы.

Как из шима получить постоянное напряжение.

У данного генератора импульсная система питания, которая сильно шумит, это можно видеть во втором канале, но если присмотреться, то видно, что амплитуда пульсаций на осциллограмме примерно 40 милливольт, то есть немного отличается от расчётной, но это нормально так, как шим содержит высшие гармоники, которые вносят свой вклад и спад не везде равен 20дб/декаду, это видно на ЛАЧХ. Несмотря на
некоторые допущения, мне этот расчёт показался очень простым и понятным, ведь мы с помощью простых логических размышлений и школьных формул, решили такую интересную задачу. При решении данной задачи важно понять именно физический смысл, что мы по сути на АЧХ абстрактного фильтра находим точку, которая соответствует нужному подавлению сигнала, вторая координата точки - это частота, она должна быть равна частоте шима. Таким образом мы находим одну из точек АЧХ фильтра, пользуясь этой точкой находим частоту среза, а зная её мы находим номиналы фильтра, вот и всё.

Точный и быстрый преобразователь цифрового сигнала ШИМ в аналоговое напряжение

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Широтно-импульсная модуляция (ШИМ) является распространенным методом формирования аналоговых напряжений с помощью цифровых устройств, таких, например, как микроконтроллеры или ПЛИС. В большинстве микроконтроллеров имеются специализированные периферийные блоки, предназначенные для формирования ШИМ, а для генерации сигналов ШИМ средствами ПЛИС достаточно написать лишь несколько строк RTL-кода. Эта технология исключительно проста и практична в случаях, когда требования к параметрам аналоговых сигналов не слишком строги, поскольку для ее реализации требуется всего один выход микросхемы, а количество необходимых строк программного кода, несоизмеримо меньше того, что потребовалось бы в случае использования цифро-аналогового преобразователя (ЦАП) с интерфейсом SPI или I 2 C. На Рисунке 1 приведен типичный пример приложения с цифровым выводом, выходной сигнал которого превращается в аналоговое напряжение с помощью фильтра.

Рисунок 1. Простейший преобразователь ШИМ-аналог.

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

Этот преобразователь ШИМ-аналог лучше?

Рисунок 2 иллюстрирует попытку исправить эти недостатки. Благодаря выходному буферу появилась возможность использования в фильтре высокоомных резисторов при сохранении низкого импеданса аналогового выхода. За счет использования внешнего КМОП буфера, получающего питание от прецизионного опорного источника, повысилась точность коэффициента передачи, так как границами изменения сигнала ШИМ теперь стали земля и точное положительное напряжение. Эта схема, безусловно, работоспособна, однако требует большого количества компонентов, не позволяет сделать время установления лучше, чем 1.1 с, и не содержит никаких механизмов, с помощью которых было бы возможно «удерживать» аналоговое напряжение при отключенном сигнале ШИМ.

Рисунок 2. Усовершенствованный преобразователь ШИМ-аналог.

Усовершенствованный преобразователь ШИМ-аналог

Микросхемы LTC2644 и LTC2645 представляют собой сдвоенный и счетверенный преобразователи ШИМ-напряжение на основе ЦАП, содержащие внутренний источник опорного напряжения со стабильностью 10 ppm/°C и обеспечивающие 8-, 10- или 12-разрядную точность преобразования сигналов ШИМ. LTC2644 и LTC2645 снимают все перечисленные проблемы прямым измерением коэффициента заполнения входного сигнала ШИМ и отправкой соответствующего 8-, 10- или 12-разрядного кода на высокоточный ЦАП по каждому нарастающему фронту (Рисунок 3).

Рисунок 3. 4-канальный преобразователь ШИМ-аналог.

Внутренний источник опорного напряжения 1.25 В определяет полную шкалу выходных напряжений 2.5 В. Иное значение напряжения полной шкалы можно получить, используя внешний источник опорного напряжения. Для установки уровня входного цифрового сигнала используется отдельный вывод IOVCC, позволяющий напрямую подключать к микросхемам как ПЛИС с напряжением питания 1.8 В, так и 5-вольтовые микроконтроллеры, а также устройства с любым другим напряжением питания, лежащим внутри этого диапазона. В техническом описании гарантируются отличные точностные характеристики:

  • напряжение смещения 5 мВ,
  • максимальная ошибка усиления 0.8%,
  • максимальная интегральная нелинейность 2.5 единицы младшего разряда (12 бит).

Время установления, отсчитанное от переднего фронта входного сигнала ШИМ до момента, когда уровень выходного напряжения достигает точности 0.024% (веса единицы младшего разряда 12-битного ЦАП), составляет 8 мкс. Для 12-битных версий микросхем диапазон частот входных сигналов ШИМ составляет 30 Гц … 6.25 кГц.

Многообразие режимов выхода

На Рисунке 4 показано типичное приложение с подстройкой питания, основанное на использовании еще одной уникальной функции LTC2644. Подключение вывода IDLSEL к напряжению высокого уровня устанавливает режим выборки/хранения, в котором выходы при включении схемы будут находиться в высокоимпедансном состоянии (без подстройки), а непрерывный входной сигнал высокого уровня переведет его в режим постоянного удержания, в то время как непрерывный сигнал низкого уровня установит состояние высокого импеданса. Таким образом, при включении схемы можно выполнить однократную подстройку напряжения питания, подав на вход напряжение высокого уровня после однократного импульса ШИМ. Низким уровнем на входе ШИМ схему можно аккуратно вывести из режима подстройки. Соединением выводов IDLSEL и GND задается «прозрачный режим», в котором продолжительное удержание высокого уровня на входе устанавливает на выходе полную шкалу напряжений, а удержание низкого уровня – нулевую шкалу.

Рисунок 4. Приложение с подстройкой питания.

Заключение

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

Материалы по теме

  1. Datasheet Linear Technology LTC2644.
  2. Datasheet Linear Technology LTC2645.
  3. Datasheet Linear Technology LTC3850.

Перевод: AlexAAN по заказу РадиоЛоцман

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

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