Полная версия этой страницы:
ЦАП на основе ШИМ
IXFN50N80Q2
May 12 2009, 22:37
Мучал когда то интересный вопрос. Можно ли сделать ЦАП на основе ШИМ и RC.
Сразу видны подводные камни разброса емкости RC фильтра.
А NPO большой еще не изобрели.
Да и к тому же, заряд емкости нелинеен от скважности, все подчиняется Фурье.
Единственный вариант создания обратной связи- аппроксимация функции(u(pwm)/pwm)- задание в процессоре,
а затем ввод дополнительной корректирующей функции множителя K=K*(необходимое напряжение/ фактическое).
И взаимный учет функций u(pwm)/pwm и множителя K.
Обычно скотство проявляется на второй(и т.д.) гармониках, которые повыше частоты среза.
(Но тут спасает функция нелинейности напряжения от ШИМ).
При высокой частоте среза, невыносимая пилка мешает.
Интересно, кто небудь занимался подобного рода преобразованием ШИМ в напряжение,
и есть ли литература, написанная умными людьми про такого рода преобразования ?
barabek
May 13 2009, 03:43
Цитата(IXFN50N80Q2 @ May 13 2009, 08:37)

Мучал когда то интересный вопрос. Можно ли сделать ЦАП на основе ШИМ и RC.
Можно и делают. Посмотрите, например, усилители класса D.
Цитата
Да и к тому же, заряд емкости нелинеен от скважности, все подчиняется Фурье.
Непонял, что Вы под этим подразумеваете.
В общем, принцип я понимаю так. Имеем полезный низкочастотный синусоидальный сигнал. Этим сигналом модулируется ширина импульсов высокочастотной несущей. В спектре выходного сигнала имеем пики на частотах НЧ сигнала, несущей, а далее на гармониках. Причем величина пика на несущей значительно меньше пика на НЧ. Гармоники еще меньше. Соответственно, чем больше отличаются частоты несущей и НЧ, тем проще сделать фильтр с требуемым ослаблением гармоник несущей. Нелинейностей там никаких нет, так как среднее значение напряжения на входе фильтра пропорционально коэффициенту заполнения.
PS Извините за сумбурное изложение - вчера отдыхал :-)
IXFN50N80Q2
May 13 2009, 04:33
Всетаки она есть. Хотя, может я ошибаюсь. Файл PWM.mcd (http://rapidshare.com/files/232342289/PWM.mcd.html)
Там разложение ШИМ произвольной скважности в ряд Фурье.
PWM=0.5(меняем на нужную скважность).
Ну а далее видим 2 функции разложения. На 100 гармоник(на шим похоже) и на 3 гармоники.
А внизу отношение интегралов данных функций. Оно равно единице при 50% скважности, а далее чуть чуть отличается.
Предположим что свыше 3 гармоники (Тау=RC/3) очень большое ослабление и его можно не учитывать.
Хм. Может есть вариант делать интегратор на ОУ ?
А про усилители класса D обязательно почитаю.
Microwatt
May 13 2009, 08:36
Цитата(IXFN50N80Q2 @ May 13 2009, 01:37)

Мучал когда то интересный вопрос. Можно ли сделать ЦАП на основе ШИМ и RC.
Сразу видны подводные камни разброса емкости RC фильтра.
А NPO большой еще не изобрели.
Да и к тому же, заряд емкости нелинеен от скважности, все подчиняется Фурье.
Интересно, кто небудь занимался подобного рода преобразованием ШИМ в напряжение,
и есть ли литература, написанная умными людьми про такого рода преобразования ?
Да, делают. При хорошем качестве ключей у такого ЦАП высокая точность при копеечных затратах.
Стабильность RC-цепи тут вообще может быть никакая. Скажем, +- 20-30%. Непонятно почему это Вас настораживает?
Снимать сигнал нужно на ОУ-повторитель с высоким входным сопротивлением. Отношение R ко входному сопротивлению - погрешность в чистом виде. Правда, она статическая и ее легко учесть.
Нелинейность заряда? При небольших амплитудах она не сказывается. Если RC- фильтр имеет постоянную времени на два порядка выше периода ШИМ, можно этим пернебречь. Можно на выходе ШИМ поставить не просто ключи, а генераторы тока. Но это уже "лихачество".
Единственный минус такой схемы -сравнительно низкое быстродействие (десятки - сотни периодов ШИМ).
IXFN50N80Q2
May 13 2009, 09:31
Microwatt конечно, может я ошибаюсь, но ТауRC=2периода ШИМ это частота среза будет в 2 раза ниже частоты ШИМ.

И согласно данному графику, все гармоники, начиная со второй будут очень сильно погибать.
Если я не прав, пожалуйста поправьте. Может ТауRC меньшее ТауШИМ в 2 раза. Но тогда вопрос- пила будет не хилая.
Microwatt
May 13 2009, 13:11
Цитата(IXFN50N80Q2 @ May 13 2009, 12:31)

... но ТауRC=2периода ШИМ это частота среза будет в 2 раза ниже частоты ШИМ.
И согласно данному графику, все гармоники, начиная со второй будут очень сильно погибать.
Если я не прав, пожалуйста поправьте. Может ТауRC меньшее ТауШИМ в 2 раза. Но тогда вопрос- пила будет не хилая.
Ну, 1-2 тау для такой схемы "несолидно". Это же звено 1-го порядка и тут всего 6дБ на октаву затухание. Конечно же, пила на выходе будет - будь здоров! Тут вторая гармоника в почти чистом виде пролезет. Будет не постоянное напряжение, а прямоугольник с подваленными на 30-50% фронтами.
Речь, обычно, идет о RC 20-200 тау ШИМ. Понятно, что скорость будет черепашья, но точность будет. И дешево.
Можно, конечно, посмотреть активные фильтры, многозвенные фильтры. Но это усложнение и нужно подумать: стоит ли? Добавим деталей, добавим фазовых запаздываний...
А тут - стабильный источник питания ШИМ и стабильное сопротивление ключей (их отношение) - все погрешности.
IXFN50N80Q2
May 13 2009, 14:29
Впринципе хороший метод для организации опорного напряжения(Для всяких программаторов датчиков, процессоров). 200 тау, подбор ШИМа по единичке, растяжка операционником. Если на устаканивание процесса есть около 10 секунд, впринципе, неплохой вариант.
Эх, жаль что медленный и против физики не попреш.
SSerge
May 13 2009, 19:02
Цитата(IXFN50N80Q2 @ May 13 2009, 21:29)

Если на устаканивание процесса есть около 10 секунд, ...
Делать ШИМ точнее 10-12 двоичных разрядов на обычном микроконтроллерном таймере мало кому нужно.
А при достаточно высокой тактовой получается не так уж плохо, фильтр не сложно сделать второго или даже четвёртого порядка и за счёт этого поднять частоту среза фильтра, сохранив подавление несущей ШИМ. Несколько миллисекунд получить можно.
Если хочется ещё быстрее - можно побороться с фазовыми искажениями фильтра вводя в модулирующий сигнал предискажения.
Microwatt
May 13 2009, 23:58
Цитата(IXFN50N80Q2 @ May 13 2009, 17:29)

Впринципе хороший метод для организации опорного напряжения(Для всяких программаторов датчиков, процессоров). 200 тау, подбор ШИМа по единичке, растяжка операционником. Если на устаканивание процесса есть около 10 секунд, впринципе, неплохой вариант.
Эх, жаль что медленный и против физики не попреш.
Это не совсем опорное? Это управляющий сигнал? Тогда стоит покопать. Думаю, и за 0.1-0.2 с устаканится. Смотря чем ШИМовать будем.
Фиксированое же опорное делается аппаратно с минимальными затратами на сегодня. Включая "растяжку".
Цитата
При высокой частоте среза, невыносимая пилка мешает.
Пропустите эту "пилку" через устройство выборки-хранения, синхронное с ШИМ'ом. Можно, например, стробировать ключ другим каналом того-же ШИМа (обычно, от одного таймера их в любом микроконтроллере достаточно). Сложность этого устройства выборки-хранения зависит от требуемых точностей и, если не сильно давать волю "хотелке", и вполне вменяема в отношении цена/качество (типа, ключик 74VHC1G66 и подходящий операционник).
Цитата(IXFN50N80Q2 @ May 13 2009, 16:29)

Впринципе хороший метод для организации опорного напряжения(Для всяких программаторов датчиков, процессоров). 200 тау, подбор ШИМа по единичке, растяжка операционником. Если на устаканивание процесса есть около 10 секунд, впринципе, неплохой вариант.
Эх, жаль что медленный и против физики не попреш.
Надо только не забывать, что стабильность и точность выходного напряжения зависит от качества питания ШИМа. Как и в любом другом ЦАПе - от качества опоры. Так что разрядность должна оставаться разумной.
IXFN50N80Q2
May 14 2009, 22:24
Ну это так. Мысли в слух. Я с ЦАП MAX5381 работал. Самая простая опора это его с повторителем подцепить.
Ну а ШИМ это заинтересовала задача такая, на серийное производство датчик один, с аналоговым выходом,
а на серии, сами понимаете, чем дешевле, тем лучше. Борьба за каждый транзистор.
Но там я плюнул, поставил ЦАП и не стал извращаться.
А опору на ШИМе сделать это так, для дома для семьи.
В одном изделии что то такое есть(отлаживал), правда обратное.
ШИМ проходит через Электромагнит, далее на шунт(дачик тока), далее операционник и RC.
+ Компенсация Функции нелинейности заряда от ШИМ (реальная аппроксимация). Устройство в количестве 4 штук вроде прошло полевые испытания.
Просто спрашивал такой вопрос, мало ли бывает в этом контексте более разумное решение.
Цитата(IXFN50N80Q2 @ May 13 2009, 13:31)

Microwatt конечно, может я ошибаюсь, но ТауRC=2периода ШИМ это частота среза будет в 2 раза ниже частоты ШИМ.

И согласно данному графику, все гармоники, начиная со второй будут очень сильно погибать.
Если я не прав, пожалуйста поправьте. Может ТауRC меньшее ТауШИМ в 2 раза. Но тогда вопрос- пила будет не хилая.
Если сделать дельта-сигма модулятор порядка второго или типа MASH - по сути тот же шим на выходе но с лучшей "сходимостью" (чем выше порядок - тем короче время усреднения, правда вместе с этим и порядок фильтра нужно увеличивать. Самые точные ЦАП сегодня по такому принципу работают )
hobgoblin
Aug 11 2009, 06:48
У MASH неоднобитный цифровой выход (зависит от порядка), который все равно надо будет при помощи малоразрядного ЦАП преобразовывать в аналоговый вид. В противном случае придется в аналоговом виде складывать и масштабировать выходные напряжения отдельных каскадов. ШИМ корректнее сравнивать с традиционным однобитным сигма-дельта преобразователем второго или более высокого порядка.
Burner
Aug 17 2009, 06:32
Я делал такую хрень на Меге8. Обходился <много>двухзвенным ФНЧ второго порядка. ШИМ 20к, выход герц 100. Вроде первое звено 1 кОм, 0,33 мкФ. Второе 2,4 к, 0,1 мк. Давило ШИМ в несколько сотен раз. Не помню. Микрокапом моделируется на раз. Смысл в том, что в таком фильтре в следующем звене сопротивление больше предыдущего, а емкость ниже в 3-5 раз. Чем больше это отношение, тем лучше работает каждое звено. Я ОУ не ставил, выход был высокоомный. А так после каждых 2-3 звеньев лучче ставить повторитель. Перве звено желательно с килоом, поскольку в меге разница сопротивлений плюсового и минусового ключей десятки ом.
st232bd
Dec 15 2009, 10:17
Пару лет назад ШИМ делал 16 - битный. Я его сделал как 8 битный - с 8 битным ''дрожанием". Типа частота Fтмр / 2^8, и группы по 256 импульсов, в зависимости от значения младшего байта часть периодов с родным значением Compare, остальные со значением на 1 большим. Наверняка существует что-то похожее стандартное, просто задача была за пару дней слепить что-то работающее на FPGA, особо не вникал. Результат понравился.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.