Модуль аналогового вывода 0-10В
- Войдите на сайт для отправки комментариев
Втр, 06/03/2018 - 14:09
Интересует готовый модуль аналогового вывода (или с минимальной обвязкой) для микроконтроллера
Вход I2C, SPI, UART
Выход 0-10В для управдения задвижкой
Цена 10-20$
Самодельные схемы с ШИМ не нужно из-за их сложной отладки, настроки и высокой нелинейности
А если MCP4725 (I2C) питать от 5В (она rail-to-rail), а выход умножить на 2 любым ОУ?
Практически тоже самое, но SPI - MCP4921
А если MCP4725 (I2C) питать от 5В (она rail-to-rail), а выход умножить на 2 любым ОУ?
Практически тоже самое, но SPI - MCP4921
Ага. Смотрел на них. Там еще на VCC нужно опроное 5В подавать, так как выдают они от 0 до VCC
Вот и думал, может что-то более готовое есть.
Хоть электронный потенциометр ставь и 10В ему. Правда 12 бит там и не пахнет (((
Задело ключевое слово нелинейность и сложность
Самодельные схемы с ШИМ не нужно из-за их сложной отладки, настроки и высокой нелинейности
Удивительно линейный выход и простота наладки
Если уж ОУ, так, может, на нем и следовало собрать ФНЧ второго порядка?
Если подскажете схему ФНЧ на ОУ.
А вот это вы напрасно. Я тоже так думал, пока сам не взялся попробовать. Линейность там вполне, если правильно схему составить и грамотно элементную базу подобрать (вот там я немного касался этого). Четырнадцатибитный PWM-DAC я изображал на ардуине (плюс небольшой обвес), и весь диапазон от рельсы до рельсы (5 вольт) с шагом в треть милливольта становится доступен из скетча.
Задело ключевое слово нелинейность и сложность
Ок. ШИМ хорошо
Частота ШИМ какая для этого фильтра?
И чтобы было 5В на входе, нужен стабилизатор, а лучше ИОТ ?
В зависимости от того чем управляют Ваши 0...10 V и определяются дополнительные элементы или номиналы указанных. Если это сервопривода кранов, воздушных клапанов, частотник вентиляции то хватит и этого обвяза. Если для сверхточного оборудования то усложняйте.
Выбор частот здесь ограничивается, по сути, единственным значением для соотв. разрядности: для 12 бит это будет 16мГц/2^12 = 3906Гц, для 13 бит -> 16мГц/2^13 = 1953Гц и для 14 бит -> 16мГц/2^14 = 976Гц.
Здесь упоминали параллельный ЦАП MCP4921 с внешним ИОН-ом, но у микрочипа есть то же самое и с опорой на борту:
• MCP4821: 12-Bit Voltage Output DAC
• Rail-to-Rail Output
• SPI Interface with 20 MHz Clock Support
• Simultaneous Latching of the DAC Output
with LDAC Pin
• Fast Settling Time of 4.5 μs
• Selectable Unity or 2x Gain Output
• 2.048V Internal Voltage Reference
• 50ppm/°C V REF Temperature Coefficient
• 2.7V to 5.5V Single-Supply Operation
• Extended Temperature Range: -40°C to +125°C
Китайцы этот чип почему-то не особо жалуют и на али мне его найти не удалось, но есть его сдвоенный вариант -- MCP4822, который хоть и обойдется немного дороже но зато китайцы им охотно торгуют.
Выше Евгений советовал топикстартеру MCP4725 - ИОН не требуется, вернее, питающее напряжение является референсным. Т.е. запитав от хорошего стаба на 4.096В, получим шаг в 1мВ, ровно. Плюс этот вариант распространённее и дешевле вышеперечисленных вариантов ЦАП.
Ну или ШИМить дуиной ранее предложенный каскад на ОУ, тем более, что можно и 16-битный ШИМ получить...
Хотя, учитывая, что всё это для "управления задвижкой", то получится из пушки по воробьям ))
"Хороший стаб" -- это, например, какой ?
Частотой 244 Герц ? Удовольствие его фильтровать, прямо скажем, сомнительное.
Интересует готовый модуль аналогового вывода (или с минимальной обвязкой) для микроконтроллера
Вход I2C, SPI, UART
Выход 0-10В для управдения задвижкой
Цена 10-20$
Самодельные схемы с ШИМ не нужно из-за их сложной отладки, настроки и высокой нелинейности
Например, ИОН-ы REF198 или AD1584, стаб LP2985 (5В), да мало ли их, всяких
Ну это да, низковата частота, что-то не подумал...
ИОН и "стаб" -- это несколько разные вещи. LP2985 откровенно слаб по части температурной стабильности. Открыли форточку и напряжение на выходе поплыло.
Ага, глянул, печально у 2985-го с этим +/-2.5%, а это дофига.
Глянул у себя, есть ещё такие недорогие (что-то около 30р) - MIC5205, 5 вольт, темп. нестабильность заявлена на уровне 40ppm.
40ppm для пятивольтовой опоры -- это смещение в 200мкв на градус. Изменилась температура на 5 градусов, получили 1мв ошибки. С учетом, что полный диапазон равняется 10 вольтам, получается 2мв ошибка. Тут только ТС может сказать, насколько его это устроит.
Точность и термостабильность - штука недешёвая, КМК, для управления задвижкой 2мВ ошибки - ничтожно малая величина ))
Я видно пропустил что-то. О какой задвижке идет речь? Насчет недешевой точности, REF5050 с 0.05% начальной и 3ррm на градус китайцы торгуют примерно по 220 руб за корпус. Там где оно действительно требуется, можно и разориться немного.
Пилотное сообщение темы.
В "Электронщике" можно за 147 разжиться.
Так что за задвижка, от чего она? Какая точность требуется для регулировки?
ТС молчит, не признаётся.
А мы тут прецизионный звездолёт строим )) Скорее всего, там штатного ШИМ преобразованного в напряжение - за глаза.
В зависимости от того чем управляют Ваши 0...10 V и определяются дополнительные элементы или номиналы указанных. Если это сервопривода кранов, воздушных клапанов, частотник вентиляции то хватит и этого обвяза. Если для сверхточного оборудования то усложняйте.
1. Вохдушная заслонка DA02N24PIS
2. Частотник ACS310 по аналоговому входу
По АЦП нужна практически однобитная - так что можно просто 0 и 10 в подавать
А вот частотником хотелось бы управлять с нормальной точностью
Проблему я вижу следующую. Что между промышленныеми модулями за $150 - $200 и дешманскими MCP4725 практически ничего не нашел. Есть много неплохим микросхемок ЦАП, но все они требуют довольно солидной схемотехники
Готовый модульза 10-30$ меня бы в данной задаче выручил бы. А если он еще на 4 канала будет - совсем хорршо
В зависимости от того чем управляют Ваши 0...10 V и определяются дополнительные элементы или номиналы указанных. Если это сервопривода кранов, воздушных клапанов, частотник вентиляции то хватит и этого обвяза. Если для сверхточного оборудования то усложняйте.
1. Вохдушная заслонка DA02N24PIS
2. Частотник ACS310 по аналоговому входу
По АЦП нужна практически однобитная - так что можно просто 0 и 10 в подавать
А вот частотником хотелось бы управлять с нормальной точностью
Проблему я вижу следующую. Что между промышленныеми модулями за $150 - $200 и дешманскими MCP4725 практически ничего не нашел. Есть много неплохим микросхемок ЦАП, но все они требуют довольно солидной схемотехники
и какая же точность установки частоты нужна для фекального насоса или чего-то подобного?
и более общий вопрос: какой смысл обсуждать схемотехнику при полном отсутствии намеков на требуемые характеристики? "с нормальной точностью" - это не ТЗ.
Разрешение по аналоговому входу там 0.1%, т.е. 1000 значений или чуть меньше 10 бит или 10мв на шаг. Требований по точности считай, что нет. Шим с ноги ардуины через интегрирующую цепь и операционник с КУ=2 можно подавать сразу на вход этого ACS310. Даже если выходной сигнал будет плавать в пределах 5-10 шагов, то заметить это без проведения измерений будет весьма затруднительно.
Подключая аналоговый сигнал управления к частотнику обезопасьте управляющее оборудование от возможных высокочастотных наводок щедро испускаемых некоторыми преобразователями частоты. Опторазвязка аналогового сигнала здесь
http://arduino.ru/forum/apparatnye-voprosy/zashchita-analogovogo-vkhoda-arduino-optoparoi-4n35-pc817-i-tp#comment-350190
На приводы задвижек опторазвязку можно не ставить если их питание не 220V AC, а 24V DC через изолированный блок питания.
Испытываю серьезный скепсис по поводу целесообразности применения подобной "защиты" в данном конкретном случае. На мой взгляд сие есть ничем не обоснованный оверинжиниринг и только.
А вот частотником хотелось бы управлять с нормальной точностью
ИМХО. собирайте схему из поста 3 и пробуйте, остальное допиливайте клеммами DI1-DI5 их тоже на контроллер и настройками ускорения замедления. Сильно сомневаюсь что вам требуется векторное управление без обратной связи с точностью не хуже 5%, а все, что лучше, без обратки (энкодера) не реально...
я наплевал на отсутствие нуля на управлении при установки скорости - просто командую "стоп"
UPD кто помнит r2r ЦАП ? если сверху дать цифровое управление, а в нижнее плечо ШИМ - увеличение разрядности, снижение пульсаций, высокие требования к самим сопротивлениям (термостабильность), питание МК на ИОН, нелинейность в области перехода (калибруется), выходное напряжение понижается на значение делителя (компенсируется ОС ОУ) . Может чего и забыл, поправьте... собирать собирал, но сильно не исследовал - мне хватило.
На EDN была статья в прошлом году на сей счет.
На EDN была статья в прошлом году на сей счет.
прикольно :))) даже не искал ничего подобного, сам делал... там интереснее, я в нижнее плечо подавал ШИМ, а они из него опору на интеграторе сделали. Спасибо, думаю не мне одному интересно будет.
А не проще будет реализовать управление по MODBUS шине? Тут вам и минимальные обвязки контроллера и масштабируемость.
А не проще будет реализовать управление по MODBUS шине? Тут вам и минимальные обвязки контроллера и масштабируемость.
Ну точно не проще. У каждого частотника свой протокол
Да и обвязка, как минимум микросхема MAX485
MAX 485 Вам потребуется только одна - на управляющую ардуинку, а протокол указан в даташите частотника. Проблема может быть только если Вы используете частотники разных производителей.
протокол RS485, интерфейс
библиотека
пример подключения
Забыл спросить, а частотник один? Если да, то можно взять на вооружение управление токовой петлей.
Забыл спросить, а частотник один? Если да, то можно взять на вооружение управление токовой петлей.
Частотника два, управляются не синхронно
С ModBUS конечно разберусь, но согласитесь, реализация любого протокола на порядок сложнее, чем выход дернуть в аналоговое значение.
К тому же нарисовались еще и задвижки, тоже управляемые 0-10В
Так что развожу сейчас Аналог PWM на 6 выходов
Согласен, просто шина импонирует масштабируемостью, дистанцией и помехозащищенностью. В Вашем же случае, при основной массе устройств, управляемых по напряжению, Ваш вариант будет лучше.
Согласен, просто шина импонирует масштабируемостью, дистанцией и помехозащищенностью. В Вашем же случае, при основной массе устройств, управляемых по напряжению, Ваш вариант будет лучше.
Ну и мой вариант без перепрошивки будет работать с большинством частотников.
А протоколы у каждого свои.
Если точность управления не устроит, то буду мудрить с 485
Это ж на каком контроллере?
Это ж на каком контроллере?
рискну предположить что это пост 29... вот только я больше 4х не использовал бы, особого смысла нет.
Это ж на каком контроллере?
ATMEGA8/168/328
У восьмой меги всего три канала. У x68 шесть, но четыре из них восьмибитные, т.е. 1000 шагов регулировки удастся изобразить только на двух.
У восьмой меги всего три канала. У x68 шесть, но четыре из них восьмибитные, т.е. 1000 шагов регулировки удастся изобразить только на двух.
У 328 шесть каналов
Я думал внешний контроллер PWM применить, но ценники у микросхем дороже чем у МК
У 328 меги шестнадцатибитных каналов тоже только два. На восьмибитных шим-каналах регулирование будет ограничиваться 256-ю шагами, что несколько меньше, чем тысяча по входу на частотнике. Если 256 достаточно, то и проблемы нет. Если не хватит, то нужно искать что-то поинтереснее.
Если бы вопрос касался меня, то я бы и думать не стал, а взял STM32F030F3P6 (двадцать пять руб за штучку на али, 50 руб в чипадипе), где десять шестнадцатибитных ШИМ-каналов имеются в виде "бери и пользуй":
С учетом, что МК хорошо поднимается по частоте, 64мгц тактовой для него вполне рабочее значение и в этом случае с выходов шим-каналов можно получить частоту около килогерца (976гц) в полноценном шестнадцатибитном разрешении. Если рассматривать это в разрезе PWM-DAC, то для шкалы 0-5в это дает разрешение (шаг) в 76,3 микровольта, а для 0-10в -- 152 микровольта. Такое разрешение, разумеется, для данного случая избыточно, но можно получить бонус в другом -- снизить разрешение, но повысить частоту, что позволит получить меньшие пульсации и/или меньшее время установления. Полюбас, по сравнению с мегой, решение более нарядное.
С учетом, что МК хорошо поднимается по частоте, 64мгц тактовой для него вполне рабочее значение и в этом случае с выходов шим-каналов можно получить частоту около килогерца (976гц) в полноценном шестнадцатибитном разрешении. Если рассматривать это в разрезе PWM-DAC, то для шкалы 0-5в это дает разрешение (шаг) в 76,3 микровольта, а для 0-10в -- 152 микровольта. Такое разрешение, разумеется, для данного случая избыточно, но можно получить бонус в другом -- снизить разрешение, но повысить частоту, что позволит получить меньшие пульсации и/или меньшее время установления. Полюбас, по сравнению с мегой, решение более нарядное.
Удивляют меня такие рассуждения.
Вообще-то 256 уровней теоретически дают возможность установить требуемое напряжение с погрешностью не более 0.2%. Обеспечивает ли такую точность/стабильность источник питания? Ведь если в АЦП используется тсточник опорного напряжения, который можно сделать довольно точным, то в случае ШИМ никакого источника опорного напряжения нет, и приходится пользоваьбся тем напряжением, которое обеспечивает БП. Можно ли здесь говорить о точности, которая хотя бы приближается к 0.2%? А падение напряжения на выходных ключах, включая зависимость от температуры и отдаваемого в нагрузку тока?
Идем дальше.
Вот есть у нас ШИМ на килогерц, которым якобы можно установить напряжение с точностью до 1/6 мВ. Вопрос - когда?
Думаю, говорить о величине шага можно лишь тогда, когда пульсации напряжения на выходе не превосходят этот шаг. А для этого постоянная времени интегрирования должна быть больше периода в те самые 65536 раз, т.е. получаем минуту с хвостиком. Но за это время выходное напряжение изменится лишь в е (2.71828...) раз, т.е. погрешность может превышать 3.5 вольта. Ну а чтобы достичь точности тех самых 1/6 мв, потребуется интервал в ln(65536)- 11.1 раза больший. А это почти двенадцать с половиной минут. Т.е. выставили на табло желаемое напряжение и ждем четверть часа, когда наша схема его обеспечит. Притом, только в теории (см. первый абзац).
Вы уверены, что обладаете достаточной компетенцией, чтобы быть объективным?
Уровней 255, а погрешность 0.4%, если уж быть совсем точным, но только здесь это ничего особо и не значит.
Это вам кто такое сказал? Есть там опорник или нет, зависит исключительно от того, кто схему составлял. У вас нет, а у меня есть:
Инвертор U2:A получает питание с выхода опорника REF02, что в общем случае обеспечивает требования по точности и стабильности.
Вместо REF02 может быть использован опорник с такой точностью, какая требуется. Берем REF5050 и получаем 0.05% и 3ppm/C, если REF02 вдруг не устраивает.
Рассчитывается строго по закону ома. Падение напряжения = ток * сопротивление канала в ключе. Сопротивление канала мосфетов выходного каскада даташит не приводит, но обычно речь идет где-то о долях ома. Фиг с ним, посчитаем, что как у 2n7002, сопротивление равно 5 ом. Это чтобы накрыть все мыслимые и немыслимые температурные флуктуации. Теперь про ток: если бы резистор R3 был воткнут прямо в землю, то ток в цепи составил бы 15мка и падение на ключах было бы 1,5E-5 * 5 = 75мкв, но резистор у нас подключен к операционнику и ток в цепи определяется исключительно таким параметром ОУ, как "Input Bias Current", который для того же LM358, скажем, равен 45 наноампер. Считаем: падение напряжение = 45 нА * 5 Ом = 225 нВ. Если эта величина придирчивому ардуинщику кажется слишком большой и неприемлемой, можно взять операционник с меньшим значением входного тока. Для CMOS-операционников характерны токи в единицы и доли пикоампера. "Падение напряжения на выходных ключах", о котором вы печалитесь, будет измеряться тогда в пиковольтах.
Угу. Дальше еще хуже.
Для простой интегрирующей цепи, состоящей, как на схеме выше, из резистора 330к и кондера 0.1мкф, Settling time 0%→90% будет равно 0.075 секунды или 75 миллисекунд. Полное время будет побольше и составит, где-то 0.3 секунды. Пульсации, однако, при коэффициенте заполнения 50% (худший случай) будут значительны и превысят 1/6 мв.
Для подавления пульсаций сглаженного шим-сигнала существуют разные техники, одну из которых я упоминал тут. Нехитрое решение с подмешиванием компенсирующего "продифференцированного" сигнала позволяет в сотни раз снизить пульсации и лишь незначительно повлиять на время установления.
Это, если в теориях совсем не разбираться.
Когда мне потребовалось отхарактеризовать кучку разных операционников, которые пришли с али, (типа, проверить на подобие оригиналу), я спаял на макетке двухканальный PWM-DAC на базе про-мини, с помощью которого получил два независимых источника образцового напряжения 0 - 5в с шагом регулировки 1мв.
Время установления точно не измерял, но по ощущениям, никак не больше секунды. "Двенадцать с половиной минут" пусть ждет тот, у кого с теорией никак и со схемотехникой все плохо.
Вот думаю, мож в проектах отдельную ветку сделать? Слишком уж часто по поводу PWM-DAC приходится слушать откровенные глупости.
Время установления точно не измерял, но по ощущениям, никак не больше секунды.
Если Ваши ощущения позволяют Вам надежно ощущать 150 мкВ, могу только позавидовать.
Ну и все остальное в том же стиле: "Не проверял, но уверен, что...".
Смахивает на нелепую отмазку вида "сказать нечего, но хочется".
Про "надежно ощущать 150мкв" вы глупость сморозили, т.к. в тексте по ссылке предельно конкретно написано, откуда эти микровольты взялись. Раз про "надежно ощущать" забредили, значит прочли совсем не вникая. Ваше право, безусловно, но с таким подходом лезть в технические спороы... Не понять мне, в общем.
Ну и насчет ваших "четверти часа" из предыдущего поста. Я видел, что это явная лажа, но мне лень считать было. Сейчас пересчитал. Подозрения в том, что вы несли ахинею подтвердились.
Разберем подробнее. Напряжение пульсаций для интегрирущей цепи считается по следующей формуле:
V_RIPPLE = V_REF * T_PWM / 4RC, где V_REF -- это опорное, T_PWM -- период таймера, R и С понятно. Берем значения R = 330к, С = 100мкф, период таймера = 1/(1,6E7 / 2^14) = 0,001024 сек и вычисляем искомое
V_RIPPLE = 5 * 0,001024 / (4 * 330000 * 0,0001) = 38,78 микровольт.
Это в четыре раза лучше ваших 1/6мв. Ну, чтобы у вас уж никаких возражений совсем не возникло.
Проверяем на уже упоминвшемся калькуляторе. Цифры сходятся.
Теперь посмотрим на график установления напряжения там же:
Ух ты! Время полного установления около 200 секунд. А где же обещанные вами "двенадцать с половиной минут"? Четверть часа? Присочинили для пущей убедительности?
А вот частотником хотелось бы управлять с нормальной точностью...
" Вот думаю, мож в проектах отдельную ветку сделать? Слишком уж часто по поводу PWM-DAC приходится слушать откровенные глупости. "
А почему нет? Если Время позволяет.
А почему нет? Если Время позволяет.
И хорошо бы выложить скриншоты шума выходного сигнала с реального осциллографа с широкой полосой пропускания. А то везде одни симуляции.
Время полного установления около 200 секунд.
Откуда это следует?
И что такое вообще "время полного установления"?