МАРСОХОД

Open Source Hardware Project

Цап R2R - нюансы

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


Такие ЦАП используются для преобразования цифрового кода разрядности "n" в напряжение от 0 до, практически,  напряжения питания, а точнее до (2^n-1)/(2^n)*VCC с шагом VCC/2^n.
Если, например, на такой ЦАП подать линейно возрастающий код, то на выходе (OUT), мы должны увидеть такой сигнал:
Выходной сигнал ЦАП R2R
Но это все в идеале, в реальной жизни все может выглядеть несколько иначе.
Нюанс первый - используемые в реальной схеме резисторы имеют какую-то конечную точность.

В качестве примера рассмотрим конкретный случай - восьмиразрядный (n=8)
ЦАП на резисторах 1ком/2ком. Для количественной оценки влияния точности
резисторов примем следующее допущение: все резисторы, кроме самого старшего (2R), подключенного к выходу Qn-1(MSB) идеальные, т.е. имеют абсолютно точные
значения своих номиналов.  В таком случае, если задаться максимальным отклонением выходного сигнала,скажем, не более половины одного бита (VCC/2^n/2), то отклонение номинала старшего резистора должно быть не более чем 2R/2^n.
В нашем случае - 2ком/256=7.8 ом. Далее, если предположить, что все остальные резисторы не идеальные, а имеют такую-же точность как и самый старщий, то это значение нужно еще разделить на 2. В итоге, для того, чтобы получить максимальное отклонение не более половины одного бита, точность резисторов должна быть не хуже 3.9/2000=0.2% (!)

На практике достичь такой точности довольно сложно. Обычно для решения этой
проблемы используют резисторы одного номинала ,например 1ком (для R) и два
резистора 1ком последовательно (для 2R) или наоборот, 2ком(для 2R) и два
резистора на 2ком паралельно(для R). В данном случае ставка делается не на
абсолютную точность, а на одинаковость номиналов в конкретной партии резисторов. Хорошо-бы эту одинаковость еще и проверить каким-нибудь подходящим приборчиком.

Нюанс второй - выходное сопротивление ключей (Rc), которое в данном случае
получается подключенным последовательно к резисторам 2R - не равно нулю. Кроме того, у разных микросхем, микроконтроллеров, ПЛИС , ТТЛ ИЛИ КМОП-логики его величина разная и может быть довольно большой.
В частности у EPM240 сопротивление канала 20ом. Есть два метода решения этой проблемы.

Первый - минимизировать его влияние, например включить несколько ключей паралельно, тем самым уменьшив его величину, или увеличить значение R, например поставить вместо 1ком/2ком - 10ком/20ком (при этом увеличится выходное сопротивление, оно = R).

Второй - попытаться измерить его величину и учесть ее в схеме,
включив дополнительные резисторы последовательно с R:
Схема включения резисторов в R2R ЦАП
Нюанс третий - значение напряжения на выходе ЦАПа напрямую зависит от напряжения VCC. Поэтому, для достижения все той-же точности в половину одного бита, величина всякого рода шумов и помех на VCC не должна превышать VCC/2^n.
Вобщем не стоит экономить на качественном стабилизаторчике и блокировочных конденсаторах.

Если подвести краткий итог вышесказанного, то на резиках с 5% точностью можно
с успехом делать 4х-битные цапики,  на 1%ных смело рассчитывать на 6 бит (и в глубине души надеяться на 7), а чтобы сделать хороший 8-битный, придется потрудится.

Комментарии  

0 #6 Алексей 24.11.2010 05:44
Юрий я собственно это спрашивал не забавы ради, хорошо помню что статья про измерение емкости заканчивалась мыслью что для дальнейших продвижений по теме измерений нужно учитывать что "марсоход" не обладает аналоговыми блоками АЦП либо ЦАП. Однако есть способы... Понял так что дальше будет статья о том как минимальными усилиями измерить на "марсоходе" аналоговую величину. Я честно говоря полагал что речь вскоре зайдет про ШИМ как способ с минимальным кол-вом элементов добиться желаемого результата частота- напряжение для эквивалента ЦАП на "марсоходе". Затем должен был быть как мне казалось шаг в сторону преобразователя напряжения-чато ста. Ну это мне как не профессионалу видеться, как радиолюбителю.
0 #5 maxx_ir 24.11.2010 04:47
Не надо пугать тут народ и наводить тень на плетень))
Если не заниматься высокоточными измерениями,
и прецизионным формированием сигнала
то точность R2R c резисторами 5% для
формирования 7-8 битного сигнала в РАДИОЛЮБИТЕЛСЬК ОЙ практике вполне достаточна - собирал далеко не одно устройство с использованием данной схемотехники. А то вы тут всех "цыплят" распугаете :lol:
0 #4 Ю р и й 23.11.2010 13:10
ШИМ и R2R это разные преобразователи.
R2R - преобразователь код > постоянное напряжение, а
ШИМ это переменное напряжение определенной частоты с
зависящим от кода действующим значением. Для того чтобы
иметь возможность их сравнивать, после ШИМ нужен еще фильтр.
По своему опыту скажу, что при разумной частоте CLK и не очень
сложном фильтре на ШИМ можно синтезировать вполне
приемлемую синусоиду с частотой до 1кгц.
0 #3 Алексей 23.11.2010 11:34
Это верно. Но на частотах от 2Гц до 20КГц какой из способов будет точней?
+1 #2 Ю р и й 23.11.2010 11:22
Существует много разных методов ЦАП, все они имеют
какие-то преимущества и недостатки и вопрос об их
применении нужно рассматривать в каждом конкретном случае.
В моей практике приходилось применять R2R в VGA адаптерах.
Слабо представляю себе ШИМ на частоте 150МГц.
0 #1 Алексей 23.11.2010 10:59
Использование ШИМ в качестве ЦАП не будет точней?

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



facebook  GitHub  YouTube  Twitter
Вы здесь: Начало Статьи о разном Цап R2R - нюансы