1) Использование матрицы R-2R в качестве параллельного ЦАП.
Рассмотрим матрицу, изображенную на рисунке слева.
Очевидно, что если все ключи находятся в положении "0", то выходное напряжение будет равно нулю.
Можно посчитать, что если ключ нулевого разряда установлен в положение "1", а все остальные в положение "0", то
Uвых=V*1/16,
если ключ первого разряда установлен в положение "1", а все остальные в положение "0", то
Uвых=V*1/8,
если ключи нулевого и первого разрядов установлены в положение "1", а все остальные в положение "0", то
Uвых=V*(1/16+1/8), и так далее…
В общем случае получим: Uвых=V*(А0*1/16+А1*1/8+А2*1/4+А3*1/2), где Аi=1, если соответствующий ключ (Кi) находится в положении "1" и Аi=0, если соответствующий ключ находится в положении "0".
То есть, замыкая различными способами ключи К0…К3 (или, по другому говоря, подавая на вход четырехбитное число A3A2A1A0) мы можем получить 24=16 различных значений выходного напряжения (от Uвых=0 до Uвых=V*(1-1/16) с шагом Δ=V*1/16).
Таким образом, данная схема представляет собой простейший параллельный четырехбитный цифро-аналоговый преобразователь.
Аналогично можно построить восьми, десяти, двенадцати и вообще n-битный ЦАП.
В общем случае, для n-битного ЦАП будем иметь: Uвых=V*∑(Ai*1/2n-i), где i — номер разряда (i=0, 1, 2 … n-1), Ai=1, если соответствующий ключ замкнут на шину питания и Ai=0, если соответствующий ключ замкнут на общий провод.
шаг в этом случае определяется по формуле: Δ=V/2n, где n — общее число разрядов
2)Реализация ЦАП по схеме R-2R на микроконтроллере.
Допустим у вас нет ЦАП, но есть обычный контроллер с достаточным количеством неиспользуемых ног. Можно ли, используя микроконтроллер, сделать ЦАП самостоятельно? Да, конечно же можно.
Возьмём, к примеру, контроллер PIC16F628A и посмотрим в документации, как устроены его выходы:
Как видим, — для организации выхода используются два полевика, когда на выходе "0" — верхний полевик (подключенный к шине питания) закрыт, нижний (подключенный к общему проводу) — открыт, когда на выходе "1" — наоборот, верхний открыт, нижний закрыт. Это как раз то, что нужно, — мы можем подтянуть выход или к земле, или к питанию. Тогда, задействовав восемь таких выводов и матрицу R-2R, — получим восьмибитный цифро-аналоговый преобразователь:
Замечания.
Когда мы рассматривали матрицу R-2R, мы считали ключи идеальными (сопротивление замкнутого ключа равно нулю), но в реальности сопротивление замкнутых ключей (открытых транзисторов) не равно нулю. Для того, чтобы влияние этих паразитных сопротивлений можно было не учитывать, рекомендуется выбирать сопротивление R в 2n (n — разрядность ЦАП) раз больше сопротивления замкнутого ключа.
Поскольку в рассмотренной схеме нет никаких интегрирующих цепочек, то быстродействие такого ЦАП определяется исключительно быстродействием контроллера.
Для обеспечения точности преобразований необходимо обеспечить достаточную для заданной точности стабильность питания.