第1章 核心器件-数模转换器(DAC):从原理到实战选型

各位工程师朋友,咱们直接进入正题。DAC这东西,说白了就是把数字信号变成模拟信号。你想想看,我们MCU、FPGA算出来的都是0和1,但现实世界需要的是电压、电流,对吧?DAC就是干这个的。

1.1 DAC工作原理——别被框图吓到

我刚开始接触DAC时,看到内部框图就头大。什么R-2R梯形网络、电流舵结构...其实核心就一句话:把二进制权重转换成模拟量

拿最常见的R-2R梯形网络来说,它用两种电阻值(R和2R)组成一个分压网络。每个数字位控制一个开关,高位对应大电流,低位对应小电流。最后在输出端叠加,就得到了模拟电压。

核心公式(记这个就够了):

Vout = Vref × (D / 2^N)

其中D是数字输入值,N是分辨率位数,Vref是参考电压。

举个例子:一个8位DAC,参考电压5V,输入数字128(二进制10000000),输出就是5V × (128/256) = 2.5V。简单吧?

我在项目中遇到过一种特殊情况——有些DAC内部有输出放大器,能直接驱动负载。但有些只是电流输出,需要外接运放转成电压。选型时一定要看数据手册的输出类型,别搞混了。

1.2 关键指标——这三个必须吃透

DAC的指标很多,但真正决定系统性能的,我总结下来就三个:建立时间、精度、动态范围。

1.2.1 建立时间(Settling Time)

说白了就是:你给DAC一个新数字,它要多久才能稳定到目标电压?

这个指标对高速系统特别重要。比如你要做波形发生器,输出1MHz的正弦波,每个周期需要20个采样点,那DAC的建立时间必须小于1/(1MHz×20) = 50ns。

我的经验:选型时别只看典型值,要看最大值。有些DAC数据手册写的建立时间1μs,但那是到0.1%精度。如果你要求0.01%精度,实际可能要3μs。我吃过这个亏,后来都直接看满量程建立时间那一栏。

1.2.2 精度(Accuracy)

精度包括几个方面:

  • 分辨率:12位、16位、24位...位数越高,最小能分辨的电压变化越小。16位DAC在5V参考下,LSB = 5V/65536 ≈ 76μV。
  • 微分非线性(DNL):相邻两个数字码对应的模拟量差值是否均匀。DNL超过1LSB就可能出现失码——某些数字值输出了错误的电压。
  • 积分非线性(INL):实际传输曲线偏离理想直线的程度。这个影响整体精度。

我记得有一次做精密电源,用了某款16位DAC,结果输出总差那么几毫伏。查了半天,发现是INL指标太差,在中间码段偏差达到4LSB。后来换了INL在±1LSB以内的型号,问题就解决了。

注意:精度≠分辨率!24位DAC不一定比16位DAC精度高。分辨率只是位数,精度要看DNL、INL、温漂、噪声等综合表现。我见过有人花大价钱买24位DAC,结果电源噪声比LSB还大,白花钱。

1.2.3 动态范围(Dynamic Range)

动态范围指的是DAC能输出的最大信号与最小信号之比,通常用dB表示。对于音频DAC,这个指标就是信噪比(SNR)

公式很简单:SNR ≈ 6.02N + 1.76 dB(N是位数)。16位DAC理论SNR约98dB,实际能做到90dB就算不错了。

为什么实际达不到理论值?因为还有总谐波失真(THD)无杂散动态范围(SFDR)这些指标在拖后腿。SFDR特别重要——它告诉你除了基波信号外,最大的杂散分量有多高。

我做过一个射频信号源项目,要求SFDR大于80dBc。选了好几款DAC,最后发现电流输出型DAC的SFDR普遍比电压输出型好。因为电流输出型可以直接驱动混频器,少了一级运放,就少了一级失真源。

1.3 选型注意事项——避开这些坑

选DAC就像找对象,没有最好的,只有最合适的。我列几个关键点:

  1. 接口类型:SPI、I2C、并行、LVDS...看你的主控能提供什么接口。FPGA一般用并行或LVDS,MCU常用SPI。注意SPI速率,有些DAC的SPI最高只能到50MHz,别指望它跑100MHz。
  2. 参考电压:内部参考还是外部参考?内部参考方便但温漂大,外部参考精度高但要多颗芯片。我习惯用外部参考,尤其是精密应用。
  3. 输出驱动能力:DAC输出能直接带多大负载?有些只能带10kΩ以上,有些能直接驱动耳机。看数据手册的输出阻抗短路电流
  4. 电源抑制比(PSRR):这个容易被忽略。电源纹波会耦合到输出端,PSRR低的DAC对电源要求极高。我遇到过一款DAC,PSRR只有40dB,结果电源稍微有点纹波,输出就跟着抖。
  5. 温度范围:工业级(-40~85℃)还是商业级(0~70℃)?别为了省钱选商业级,结果夏天一热就飘了。

选型清单(我每次必查):

参数 我的要求 备注
分辨率 ≥16位 精密应用至少16位
建立时间 ≤1μs 高速应用看ns级
INL ≤±2LSB 最好±1LSB以内
DNL ≤±0.5LSB 保证单调性
SFDR ≥70dBc 射频应用≥80dBc
接口 SPI/并行 看主控匹配

1.4 实战案例——一个DAC选型翻车现场

讲个真实案例。去年我做一款任意波形发生器,要求输出20MHz正弦波,16位精度。我选了某款标称建立时间20ns的DAC,心想肯定够用。

结果一测试,输出波形在20MHz时严重失真。查了半天,发现数据手册里写的20ns建立时间是到0.1%精度,而16位精度要求到0.0015%(1/65536)。实际建立时间需要150ns!

后来换了另一款DAC,建立时间标称50ns(到0.001%),实测完全满足要求。所以啊,看数据手册一定要看小字,尤其是那个「到多少精度」的注释。

我的习惯:选型时把DAC的建立时间除以3,作为实际可用值。比如标称30ns,我按100ns算。这样留出余量,不会翻车。

1.5 小结

DAC选型,说白了就是平衡分辨率、速度、精度和成本。没有万能芯片,只有最适合你系统的方案。

最后送大家一句话:数据手册是最好的老师,但别全信。有条件的话,拿几款候选芯片搭个测试板,实际跑一跑。我每次选型都会做这个步骤,虽然多花两天时间,但能避免后面几个月的返工。

下一章咱们聊ADC,那个坑更多,到时候我给大家讲讲我当年被ADC「坑」得最惨的一次经历。