Как работает лестница R-2R
R-2R — это способ построить цифро-аналоговый преобразователь (ЦАП) из резисторов всего двух номиналов: R и вдвое большего 2R. Лестница устроена так, что каждый следующий разряд входного двоичного кода вносит в выход вклад ровно вдвое меньший, чем предыдущий. Старший бит (MSB) отвечает за половину шкалы, следующий — за четверть, и так далее до младшего (LSB). Сложив взвешенные вклады всех включённых битов, матрица выдаёт напряжение, пропорциональное числовому значению кода. Именно двоичное взвешивание отличает ЦАП от простого резистивного делителя напряжения, где положение отвода фиксировано.
Uвых = Uref · D / 2^N LSB = Uref / 2^N
Здесь N — разрядность (число бит), Uref — опорное напряжение, D — входной код в десятичном виде (от 0 до 2N−1). Полная шкала содержит 2N уровней, а максимальный код 2N−1 даёт выход на один шаг LSB ниже опорного — до самого Uref ЦАП не доходит никогда. Выход часто снимают через буфер на операционном усилителе: он развязывает высокоомную матрицу от нагрузки и при инвертирующем включении задаёт масштаб и знак выходного напряжения.
Ключевая особенность лестницы — постоянное входное сопротивление. Из любой точки матрица «смотрится» одинаковым эквивалентом R, поэтому каждый разряд нагружает опорный источник одинаково, а токи в узлах делятся ровно пополам. Отсюда и двоичное взвешивание: ток младшего плеча вдвое меньше соседнего сверху. Каждый бит — это переключатель, который подключает своё плечо 2R либо к опорному напряжению (единица), либо к общему проводу (ноль). В токовом режиме матрица суммирует не напряжения, а токи, и тогда буферный усилитель работает преобразователем «ток—напряжение»; такое включение популярно в аудио и позволяет менять полярность и масштаб выхода без пересчёта самой лестницы.
Разрешение, LSB и число уровней
Разрешение ЦАП определяется разрядностью и опорным напряжением. Один младший разряд (LSB) — это наименьшее приращение выхода, шаг «сетки», по которой преобразователь может выставить напряжение: LSB = Uref / 2N. Добавление одного бита удваивает число уровней и вдвое уменьшает шаг. При Uref = 5 В переход с 8 на 12 бит уменьшает LSB с ≈19,5 мВ до ≈1,22 мВ — в шестнадцать раз мельче. Динамический диапазон, выраженный в децибелах, растёт примерно как 6,02·N дБ (децибелы — про это соотношение), поэтому в каталогах разрешение часто указывают именно в дБ. Обратную задачу — восстановление кода из измеренного напряжения — решает калькулятор ADC ↔ напряжение, ведь АЦП и ЦАП связывает одна и та же линейная шкала.
Точность: допуск резисторов и линейность
Реальная точность R-2R ограничена не формулой, а разбросом резисторов. Абсолютное значение R не критично (оно сокращается), но отношение R к 2R и согласованность соседних плеч должны выдерживаться тем строже, чем старше разряд. Ошибка номинала в цепи MSB весит как половина шкалы, а в LSB — как один шаг, поэтому старшие плечи набирают из согласованных пар. Чтобы уложиться в разрешение, относительный разброс должен быть примерно меньше ½ LSB: для 8 бит это порядка 0,2 %, для 12 бит — уже около 0,012 %, что дискретными резисторами практически недостижимо и требует интегральной матрицы с лазерной подгонкой. На практике 2R собирают из двух R, включённых последовательно, чтобы номиналы были из одного техпроцесса, а подбор пар удобно вести через подбор пары резисторов. Стандартные значения берут из рядов E. Нарушение согласования проявляется как нелинейность (INL/DNL), в аудио — как рост гармонических искажений; шумовую сторону разрешения разбирает калькулятор SNR / ENOB.
Второй важный фактор — температура. Отдельные резисторы имеют собственный температурный коэффициент (TCR), и если плечи лестницы нагреваются неравномерно, их отношение уплывает, а с ним и линейность. В интегральных матрицах резисторы делают из одного материала и располагают рядом, чтобы TCR взаимно сокращались, — дискретная сборка такого не гарантирует. Не менее важна стабильность самого опорного напряжения: выход прямо пропорционален Uref, поэтому дрейф или шум источника опоры переносится на весь диапазон один к одному. Наконец, скорость: паразитные ёмкости узлов вместе с сопротивлением плеч образуют постоянную времени, и на переключении старших разрядов выход устанавливается не мгновенно — при быстрой смене кода это ограничивает частоту обновления и добавляет переходные выбросы (глитчи), которые в аудио- и сигнальных ЦАП подавляют деглитчером или синхронной защёлкой.
Разрешение и шаг при Uref = 5 В
В таблице — сколько уровней даёт разрядность, какой при этом шаг LSB (для опорного 5 В) и во сколько децибел укладывается динамический диапазон.
| Разрядность N | Уровней 2N | LSB при 5 В | Диапазон ≈6,02·N дБ |
| 4 бита | 16 | 312,5 мВ | 24 дБ |
| 6 бит | 64 | 78,1 мВ | 36 дБ |
| 8 бит | 256 | 19,5 мВ | 48 дБ |
| 10 бит | 1024 | 4,88 мВ | 60 дБ |
| 12 бит | 4096 | 1,22 мВ | 72 дБ |
| 16 бит | 65 536 | 76,3 мкВ | 96 дБ |
Где применяют — и где не годится
R-2R удобен, когда ЦАП нужно собрать из доступных компонентов или вписать в кристалл: цифровые потенциометры, программируемые источники опорного напряжения, генерация ступенчатых и сигнальных форм, аудио-ЦАП «мультибитного» типа, задание уровней в измерительных приборах. Матрица пассивна и быстра, ей не нужен тактовый фильтр. Обратная сторона — жёсткие требования к согласованию резисторов и чувствительность выхода к нагрузке без буфера. Если разрядность невелика, а важнее простота и цена, конкурентом выступает ШИМ-ЦАП: там код задаёт скважность, а RC-фильтр сглаживает импульсы — дёшево, но медленно и с пульсациями. Для точной установки одного фиксированного напряжения без цифрового кода достаточно обычного делителя. Не стоит ждать от дискретной R-2R матрицы более 8–10 эффективных бит: выше начинает править не формула, а допуск резисторов и температурный дрейф.
Пример
Возьмём значения по умолчанию: N = 8 бит, Uref = 5 В, код D = 128. Полная шкала — 28 = 256 уровней, то есть код 128 соответствует ровно половине шкалы. Выход: Uвых = 5 · 128 / 256 = 2,5 В. Шаг преобразования: LSB = 5 / 256 ≈ 19,5 мВ. Доля шкалы считается от максимального кода 255: 128 / 255 · 100 ≈ 50,2 %, а сам код в двоичном виде — 10000000 (0x80). Изменение кода на единицу сдвинет выход ровно на один LSB, около 19,5 мВ.
См. также: ADC ↔ напряжение · ШИМ-ЦАП · делитель напряжения · ряды E · усиление ОУ · все калькуляторы
|