数字电路里算出来的都是0和1,可要驱动喇叭、调电机转速、给传感器提供基准,输出的必须是连续变化的模拟量。中间这个桥梁就是数模转换器,也就是DAC。
最直观的方案是权电阻网络。每一位对应一个电阻,阻值按2的幂次排开,开关一合就把对应的电流加到求和点上。原理好懂,但位数一高,最大电阻和最小电阻能差出几千倍,芯片上根本做不准,所以现在很少单独用。
主流的是R-2R梯形网络。整个网络只用R和2R两种阻值,靠串并联关系自然产生二进制权重,容易集成,成本也低。绝大多数通用DAC芯片内部都是这个结构。它的软肋是电阻匹配精度,匹配不好线性度就上不去,所以高精度DAC在版图和校准上要下很大功夫。
转换过程可以概括成三步:基准电压进来,开关阵列按输入码字选择支路,求和放大器把电流变成电压。输出等于基准电压乘以码字再除以2的n次方,n是位数。基准电压的稳定性直接决定输出精度,基准一抖,输出全跟着抖。
挑DAC要看几个指标:分辨率决定最小步进,线性度看INL和DNL,建立时间决定能跑多快,输出噪声影响小信号表现。做音频的还看总谐波失真加噪声,做仪表的更关心温漂和长期稳定性。
还有个几乎不要钱的方案:PWM加RC滤波。单片机输出占空比可调的方波,经过两级RC平滑之后,平均电压就跟占空比成正比。缺点是纹波大、响应慢,但用来调光、调速、控加热丝完全够用,成本几乎为零。
调试时输出老是抖,先看基准电压干不干净,再看数字地和模拟地有没有分开走。高频DAC还要注意输出端的重构滤波器,省掉它的话示波器上能看到明显的阶梯毛刺。
下一篇:没有了