将数字信号转换为模拟信号的电路称为数模转换器
权电阻网络D/A转换器
鉴于二进制数都能写为
(Dn−1Dn−2⋯D1D0)2=Dn−12n−1+⋯+D121+D020
那么只需要将每一位二进制位都转换为模拟量,再把它们相加就好了

运放工作在线性区,有
vO=−Rf(i0+i1+i2+i3)
那么代入各个电流值,得到
vO=−24VREFi=0∑3(Di⋅2i)
不过这样精确的电阻很难实现
倒T形电阻网络D/A转换器
倒T形电阻网络中的电阻只有R与R/2,网络呈倒T形

运放是一个反向放大电路(见神里绫华的狗),因此vN=0,所以不论电阻上的开关接到什么地方,支路上的电流都不变。那么就能得到等效电路

如果递归地来看,不论是第几层,都等效于两个2R电阻的并联。因而总电流就是
I=RVREF
在每一个节点处,电路被分为相等的两份。由此就可以通过控制电阻上的开关得到不同的电压输出。n位倒T形电阻网络的输出模拟量与数字量的关系为
vO=−2nVREF⋅RRf(i=0∑n−1Di⋅2i)
权电流D/A转换器
为了进一步提高精度,可以使用恒流源代替电阻网络,就像这样

实际中使用运放和BJT结合电阻网络实现权电流源

n位的权电流D/A转换器的输出电压为
vO=2nVREF⋅R1Rf(i=0∑n−1Di⋅2i)
适用于分辨率高且带宽高的应用
电阻串联分压式D/A转换器
将阻值相等的电阻串联,各个节点的电压就是总电压的等分点,结合译码器就可以实现数模转换

缓冲器是运放构成的电压跟随器,输出阻抗高,几乎没有电流,从而保证精度
双极性D/A转换器
双极性D/A转换器能输出正负电压,而单极性只能输出正的。双极性D/A转换器需要用到偏移码。对于正负n位二进制数的范围
−2n∼2n−1
而言,以−2n为全0,依次+1将得到一组n+1位编码,就像这样

它实际上就是补码将首位的符号位取反。那么以偏移码作为单极性D/A转换器的输入,再将输出减去最高位对应的电流,就能得到实际的电压,就像这样

在运放端引入的偏移电流IB为总电流的一半
IB=21I
也可以使用反相加法器,如图

扣除一半的电压就能得到预期的电压
D/A转换器的技术指标
- 分辨率:定义为最小输出电压和最大输出电压的比值,n位D/A转换器的分辨率表示为
2n−11
- 转换精度:记LSB为最低有效位为1其他都为0时的输出电压/电流,FSR为输入全为1时的输出电压/电流。误差可以分为失调误差和增益误差,以及级差非线性误差
- 失调误差是输入为0时的零点误差,应该小于LSB的一半
- 增益误差是电压曲线斜率与理想不一样,误差来自于基准电压和运放闭环增益
- 级差非线性误差是D/A转换器输出步长的偏差。当数字量由k-1变为k时,模拟量增加了Δk,定义
DNLk=LSBΔk−1
定义DNL是∣DNLk∣的最大值,要求在LSB的一半以内