Заголовок сообщения: R2R ЦАП: калибровка при использовании дешевых резисторов.
Добавлено: Пт мар 28, 2025 23:45:03
Родился
Зарегистрирован: Пт мар 08, 2024 01:30:56 Сообщений: 12
Рейтинг сообщения:0
Доброго времени суток! Пока не находил в инете описаний, в которых бы предлагалось выполнить калибровку для R2R ЦАПа. Поэтому выложил заметку про калибровку на pikabu. Основное соображение - делаем R2R ЦАП из самых обычных непрецензионных резисторов. Затем измеряем все возможные значения с помощью АЦП большей размерности, чем количество битов у ЦАПа. АЦП может быть медленный, главное чтобы бы было много бит.
Получаем набор всех возможных выходных значений для конкретного получившегося R2R ЦАПа. В теории для идеальной схемы выходные значения должны быть монотонны и линейны (прямо пропорциональны битовому значению). Но на практике выходные значения не будут полностью монотонны и не будут полностью пропорциональны. Вижу, что большей идеальности пытаются добиться за счет дорогих прецензионных резисторов. Но если после калибровки есть фактическая табличка значений, то главное, чтобы набор фактических значений более или менее равномерно распределялся по выходному диапазону. Тогда для любого выходного значения по табличке подбираем такую комбинацию бит, чтобы на выходе получилось бы наиболее близкое значение к требуемое. Соответственно фактическая битность ЦАПа будет определяться максимальным/средним скачком между двумя соседними выходными значениями. Фактическая битность будет чуть-чуть меньше, чем количество задействованных бит, но похоже что не сильно меньше (всего на 1 бит?).
Возможно данное соображение о калибровке ЦАПа будет полезным на практике.
Но ТКС у них довольно большой: от +350 до минус 2500 ppm/° ... в бытовой аппаратуре, которая в комнатных условиях работает
В комнатных условиях разброс температуры оценим от +15° до +35°, то есть +/- 10°. Возьмем "худшее" значение,
Код:
10° * 2500 ppm/° = 10*2.5*10^-3 = 0.025 = 2.5%
Значит на 10° сопротивление будет плавать на +/- 2.5%. Сильно ли это будет влиять на параметры схемы? Если все резисторы изменят свое сопротивление в k-раз одновременно, то параметры не изменятся (но это не точно), так как все соотношения сохранятся. Если же у разных резисторов (из одной сборки) будут ТКС разные, причем сильно разные, то наверное это окажет влияние. В принципе была идея положить платку в морозилку, а потом наоборот подуть на нее феном и посмотреть как изменится набор выходных значений. В конце концов датчик температуры ведь тоже стоит недорого? Но тут же речь не о научной работе .
Заголовок сообщения: Re: R2R ЦАП: калибровка при использовании дешевых резисторов
Добавлено: Сб мар 29, 2025 18:48:22
Опытный кот
Зарегистрирован: Вс мар 23, 2025 14:56:55 Сообщений: 700
Рейтинг сообщения:1
Я к тому, что прецизионные резисторы могут выбирать не столько из-за значений, поскольку можно просто из кучи выбрать одинаковые и среди обычных, а потому что у них ТКС в на порядок-два меньше.
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
...Единственное "но": микросхема ЦАП с той же битностью будет на пару порядков дешевле, чем эта самоделка, и заметно точнее...
Основной посыл не в том, что R2R ЦАП лучше и дешевле готовых микросхем. Хотя про два порядка - это что же есть микросхемы ЦАП за 1 рубль что-ли, где такие продаются? Кроме того, R2R и на 20 бит точно также делается (благо недорогие АЦП на 24 бита для калибровки есть), и на 32 бита (только не понятно как его калибровать). Да и кроме битности есть еще и частота. Это тоже иногда важный параметр.
Самое главное же в данном случае - было просто интересно поэксперементировать. Можно ли повысить точность R2R ЦАПа. Зачем? Скажите тогда, сначала, а зачем в принципе делают и продают R2R ЦАПы ?
Что касается прецензионных резисторов и зависимости по ТКС. Возможно. Но все ли так плохо с ТКС? Пишут весьма разное. И потом ну будет хорошая ТКС - это частично решит вопрос по температуре. А калибровка значит на резисторах с малой ТКС не повысит РЕАЛЬНУЮ битность? Подобрать одинаковые, ну тут похоже даже доли процента ломают монотонность и линейность. И складывается такое впечатление - это принципиальная неустойчивость схемы. А калибровка в свою очередь требования к идеальности номиналов снижает так раз на порядки. Но это так - впечатления профана. Если есть другие экспериментальные данные, то всегда любопытно узнать что-нибудь новое .
Заголовок сообщения: Re: R2R ЦАП: калибровка при использовании дешевых резисторов
Добавлено: Вс мар 30, 2025 00:22:22
Опытный кот
Зарегистрирован: Вс мар 23, 2025 14:56:55 Сообщений: 700
Рейтинг сообщения:1
Не получится простым способом откалибровать кучу дискретных резисторов. У каждого свой ТКС, каждый припаян индивидуально, плюс громадная площадь...
Что касается стоимости, то на резисторах действительно дороже. Во-первых, прецизионные стоят в розницу немного дороже обычных, во-вторых, нужно учитывать всё: стоимость точки пайки, площадь и т.д. Радиолюбители почему-то считают только чек на радиодетальки, а это неверно. Та же калибровка, опять затраты.
Почему их до сих пор делают? Ну, возможно, с хорошими резисторами и ОУ можно получить какой-то индивидуальный ЦАП под какую-то определённую задачу, под которую не подходят готовые. Ещё два варианта: образовательная цель и аудиофильская (противоположная образовательной, получается )
Заголовок сообщения: Re: R2R ЦАП: калибровка при использовании дешевых резисторов
Добавлено: Вс мар 30, 2025 01:36:08
Родился
Зарегистрирован: Пт мар 08, 2024 01:30:56 Сообщений: 12
Рейтинг сообщения:0
У меня цель была в основном скорее образовательная.
Также обращаю внимание - калибруется не резисторы по отдельности. А вся итоговая схема ЦЕЛИКОМ. И программно, т.е. автоматически и "мгновенно". Может слово калибровка вводит отчасти в заблуждение. Хотя есть же понятие калибровки измерительного прибора?
В общем собрали ЦАП. Далее как черный ящик измеряем. Подали битовое значение x1 -> измерили на выходе y1, занесли в табличку пару (x1,y1). И так для всех битовых значений. Для 10 бит - калибровка менее секунды в автоматическом режиме. С помощью программы. (Использовал только одну платку stm32f103c6t6, там и биты ставятся для R2R ЦАПа и встроенный 12-битный АЦП там же, при этом по uart передавал значения на комп.)
Далее. Хотим на выходе получить значение z - ищем в табличке самое близкое значение y_k, и подаем на вход тогда битовое значение x_k. Да, да, это все при фиксированной температуре. Нагрелось все на 10 градусов и нужна другая табличка или перекалибровка. Но это скорее образовательная задачка. При этом измерение ТКС никаких одиночных резисторов не выполняется!!! Если только всю схему целиком при новой температуре измерить.
В заметке на pikabu (ссылка в начале темы) у меня есть gnuplot-графки, когда просто перебираются битовые значения подряд, и когда для линейной функции подбираются наиболее подходящие битовые значения. Так вот на графиках - земля и небо. Если переупорядочить последовательность битовых значений, то можно добиться почти "идеальной" линейной функции. На втором графике линейная функция и дискретная 10-битная при полном масштабе сливаются в одну прямую. Сравните, что на первом графике. При этом графики составлены из фактических значений, полученных с помощью АЦП.
Затем перепроверил на осциллографе. И на качественном уровне гипотеза подтвердилась. Данные с графиков подтвердились (в заметке есть видео с показаниями осциллографа). Ну, да, Ваша правда, только при фиксированной температуре . Но цели-то образовательные. Однако, при фиксированной температуре после калибровки точность-то выросла ого-го !!! О чем и речь.
Пайка даже у такого профана как я заняла очень мало времени. Все равно лучше, чем короткие видео-ролики смотреть, так что время пайки в любом случае не в счет.
Добавлено after 21 minute 30 seconds: Re: R2R ЦАП: калибровка при использовании дешевых резисторов.
Добавлено after 3 minutes 50 seconds: Re: R2R ЦАП: калибровка при использовании дешевых резисторов. Первый график. Данные АЦП для выходе R2R-ЦАПа, когда битовые значения x идут подряд.
Второй график. Зеленым - линейная функция, фиолетовым - график данных АЦП, если битовые значения специально подбирать по табличке вместо использования прямой битовой последовательности, которая получается из теории при идеальных номиналах. Фиолетовый график под зеленым по сути не виден.
Третий график. Тоже самое, что и второй, только масштаб увеличен, чтобы иногда фиолетовый график вылезал из-под зеленого.
Добавлено after 21 minute 4 seconds: Re: R2R ЦАП: калибровка при использовании дешевых резисторов. Что касается первого графика. На экране осциллографа этот график сразу наблюдался. Только данные АЦП в gnuplot гораздо лучше демонстрируют фактические скачки R2R ЦАП, там где в теории при идеальных номиналах резисторов их быть не должно.
Заголовок сообщения: Re: R2R ЦАП: калибровка при использовании дешевых резисторов
Добавлено: Вс мар 30, 2025 09:01:31
Опытный кот
Зарегистрирован: Вс мар 23, 2025 14:56:55 Сообщений: 700
Рейтинг сообщения:0
Ну, любой метод повышения точности вызовет её повышение Можно ещё сложнее: запихнуть ЦАП в некий термос с подогревом до определённой температуры. Видел подобное в некоторых приборах, там так генератор кварцевый термостатировали.
Заголовок сообщения: Re: R2R ЦАП: калибровка при использовании дешевых резисторов
Добавлено: Вс мар 30, 2025 22:02:48
Держит паяльник хвостом
Карма: 16
Рейтинг сообщений: 196
Зарегистрирован: Вс дек 02, 2012 16:58:33 Сообщений: 915 Откуда: от туда
Рейтинг сообщения:0
При всём моём уважении к самостоятельно произведённым экспериментам, вы не учли вариант, когда данные вашего R-2R ЦАП будут не перекрываться, а идти с разрывами. То есть, когда погрешности резисторов будут иметь отклонения в другую сторону. Тогда вы просто не будете иметь возможности воспроизвести некоторые значения напряжения, и калибровка здесь не поможет. И ещё, одно соображение: при калибровке перекрывающихся значений вы получите меньшую разрядность выходного сигнала, чем разрядность АЦП. Это факт. Но вопрос поднят занятный. Всегда нужно думать нестандартно. Спасибо, мне было интересно.
И ещё, одно соображение: при калибровке перекрывающихся значений вы получите меньшую разрядность выходного сигнала, чем разрядность АЦП. Это факт. Но вопрос поднят занятный.
Спасибо!
На счет меньшей разрядности полностью согласен. Здесь сугубо эксперимент. Если грубо, то вместо 10 бит получим скажем 9 бит, значит нужно брать битность с небольшим запасом. Если же калибровки не делать и использовать "наивные" коды, вот тогда реальная битность похоже действительно падает значительно, если под реальной "битностью" понимать максимальное отклонение реального выходного значения от требуемого. Т.е. погрешность установки значения.
Есть такое впечатление, что фактические значения будут распределены более или менее равномерно (если только значение сопротивлений гуляет не на 10-20%, а всего лишь на 1-2%). И реальная достижимая битность после калибровки (без учета изменения ТЕМПЕРАТУРЫ ) возможно теряет не более 1 бита. Наверное, даже можно сделать модель в разных симуляторах, когда сопротивление каждого резистора вместо
Код:
R(k) = R0
будет равно
Код:
R(k) = R0 + epsilon_k
и как максимальное по модулю значение epsilon_k с одной стороны приводит к деградации битности R2R ЦАП при использовании "наивных" битовых кодов. А с другой стороны какая битность реально все-таки достижима, если использовать калибровку. Т.е. максимальная погрешность. Может быть даже аналитическую формулу можно вывести. Кстати, используя модель с epsilon_k, наверное, можно оценить влияние температуры, если в модель заложить ТКС резисторов. Но такое не умею . В лучшем случае нагреть/охладить R2R и заново провести калибровку сразу после нагрева/охлаждения.
В конце концов первый график намекает на четкую закономерность скачков - эти степени двоек, когда в битовом коде происходят переходы вида
Код:
011111b -> 100000b
т.е. когда много резисторов выключается и один старший включается. И чем больше выключается, тем сильнее скачок - самый большой по середине. И видимо это в принципе ахиллесова пята (если не считать ТЕМПЕРАТУРЫ ) для R2R ЦАПов.
Вот есть заметка от 2015 года (https://habr.com/ru/articles/260999/). Там точно также на экране осциллографа хорошо заметен скачок ровно по середине. Но там осциллограф похоже с люминофорным экраном. Думаю там есть и другие скачки - просто они уже на экране не так заметны. Кроме того скачки хорошо становятся видны именно после замеров на АЦП и построения графика, когда каждое выходное значение измеряется несколько раз и результаты измерений усредняются (иначе они просто размазываются).
То есть, когда погрешности резисторов будут иметь отклонения в другую сторону. Тогда вы просто не будете иметь возможности воспроизвести некоторые значения напряжения, и калибровка здесь не поможет.
Не сразу понял что имеются в виду. Наверное, речь о том, что при переходе
Код:
011111b -> 100000b
будет не снижение выходного напряжения, а наоборот - повышение. И тогда будет непреодолимый разрыв. Но тут какое дело. С одной стороны, на практике, наверное, все-таки (из свойств самой схемы R2R) как правило будет понижение выходного напряжения. А с другой стороны, подобрать два резистора так, чтобы у них номиналы совпали на 0.00001% тяжело, а вот подобрать их так, чтобы при примерном равенстве, сопротивление одного было совсем чуть-чуть, но больше сопротивления второго - несравненно более простая задача. А значит, на практике гарантировать скачок в нужную сторону п. н. всегда получится .
Добавлено after 4 minutes 32 seconds: Re: R2R ЦАП: калибровка при использовании дешевых резисторов. вот еще картинки (из той же заметки от 2015 года), на которых если присмотреться хорошо заметны скачки
Добавлено after 52 minutes 10 seconds: Re: R2R ЦАП: калибровка при использовании дешевых резисторов. Усе УКРАДЕНО до нас (
Похоже еще в 2016 году вот здесь меня "опередили" с калибровкой: https://www.eevblog.com/forum/projects/ ... you-think/ Только со своим знанием аглицкого языка не понял удалось ли автору темы ее провести. Но там тоже хорошо видны скачки вниз.
Добавлено after 1 minute 43 seconds: Re: R2R ЦАП: калибровка при использовании дешевых резисторов.
В общем и статьи в науных журналах похоже есть, и даже какие-то патенты в "недружественных" странах .
Если и городить R2R ЦАП... И не заморачиваться с калибровками, подбором одинаковых резисторов, термостатированием, и прочими удорожаниями, то вес младшего разряда не имеет смысла делать меньше допуска используемых компонентов. То есть, 4 бита при допуске 5%, 6-7 бит при допуске 1%
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения