2、DAC输出特性:理想DAC vs 实际DAC,输出阻抗、驱动能力、建立时间

好,咱们接着聊DAC。上一章我们把DAC的基本架构和分类捋了一遍。这一章,我想重点聊聊DAC的“真实面目”。

你可能会想,DAC不就是把数字码转成模拟电压吗?有什么好说的?

嗯,教科书上的DAC确实很完美。但实际用起来,你会发现它像个“有脾气”的孩子。输出阻抗、驱动能力、建立时间,这三个参数,搞不定它们,你的电路很可能就翻车了。

2.1 理想DAC:教科书里的“乖孩子”

先说说理想情况,心里有个参照。

理想DAC长什么样?

  • 输出阻抗为零:不管后面接什么负载,电压纹丝不动。
  • 驱动能力无限大:要多少电流给多少电流,绝不掉电压。
  • 建立时间为零:数字码一变,输出电压瞬间到位,没有毛刺,没有过冲。

说白了,理想DAC就是一个完美的受控电压源。你给它数字,它立刻给你对应的电压,而且不带任何“拖泥带水”。

但现实呢?

2.2 实际DAC:那个“有脾气”的器件

实际DAC就复杂多了。我刚开始做项目时,就被它“坑”过一次。当时选了一款高精度DAC,手册上指标看着挺漂亮,结果一接上负载,输出电压直接掉了5%。查了半天,才发现是输出阻抗和负载不匹配的问题。

好,我们一个一个来看。

2.2.1 输出阻抗:不是零,也不是无穷大

实际DAC的输出阻抗,既不是零,也不是无穷大。它取决于DAC的内部结构。

  • 电压输出型DAC:内部通常有输出缓冲器(运放),输出阻抗很低,一般在0.1Ω到10Ω之间。但注意,这个阻抗是频率相关的,高频时会上升。
  • 电流输出型DAC:输出阻抗很高,可以达到几百kΩ甚至MΩ级别。它输出的是电流,需要外接I-V转换电路(比如运放)才能得到电压。

这里有个关键点:输出阻抗会直接影响你的负载调整率

举个例子,一个电压输出DAC,输出阻抗是1Ω。你接一个1kΩ的负载,分压损失只有0.1%,可以忽略。但如果你接一个100Ω的负载呢?分压损失就变成了1%。对于16位DAC来说,1%的误差已经相当于丢失了十几个LSB,精度大打折扣。

⚠️ 注意: 千万别只看直流输出阻抗。DAC的输出阻抗在交流下会变化。高频时,输出缓冲器的开环增益下降,输出阻抗会显著增大。如果你的信号频率较高,一定要参考手册上的“输出阻抗 vs 频率”曲线。

2.2.2 驱动能力:能带多重的“货”?

驱动能力,说白了就是DAC能输出多大的电流。

电压输出型DAC,内部缓冲器一般能输出几mA到几十mA的电流。比如常见的AD5660,输出电流典型值是±5mA。够用吗?

看情况。如果你直接驱动一个高阻抗的ADC输入端,5mA绰绰有余。但如果你想驱动一个50Ω的射频负载,或者一个需要大电流的模拟表头,那就不行了。

我曾经遇到过一个案例:用DAC输出控制一个压控振荡器(VCO)。VCO的调谐输入端有较大的电容(几十pF),而且需要一定的充电电流来快速建立电压。结果DAC的驱动能力不足,导致VCO的频率建立时间变得很长,整个锁相环的锁定时间超标。

解决办法?很简单,加一级缓冲器。用运放搭一个电压跟随器,或者用专用的缓冲芯片。

💡 我的习惯: 只要DAC后面接的负载阻抗小于10kΩ,或者负载电容大于100pF,我都会加一级缓冲。别省这个成本,省了后面调试更痛苦。

2.2.3 建立时间:到底要等多久?

建立时间,是DAC从数字码变化到输出稳定在最终值(通常允许一定误差,如±0.5LSB)所需的时间。

这个参数,直接决定了你的DAC能跑多快。

理想DAC是瞬间建立的,但实际DAC不行。原因有几个:

  • 内部开关的寄生电容和电阻:形成RC延迟。
  • 输出缓冲器的压摆率限制:运放不是无限快的,它需要时间来充电和放电。
  • 数字馈通和毛刺:数字码切换时,会通过寄生电容耦合到输出端,产生一个短暂的尖峰,然后才慢慢稳定下来。

建立时间通常分为两部分:

  1. 延迟时间:从数字码变化到输出开始变化的时间。主要是数字逻辑和开关的延迟。
  2. 转换时间:输出从开始变化到稳定在最终值的时间。主要受压摆率和RC常数影响。

手册上给的建立时间,通常是在特定条件下测的。比如“满量程阶跃,建立到±0.5LSB,负载为1kΩ || 100pF”。

这里有个坑:建立时间与阶跃幅度有关。小信号阶跃(比如只变化几个LSB)的建立时间,通常比满量程阶跃快得多。因为小信号下,压摆率不是限制因素,主要是RC延迟。

关键参数速查表:

参数 理想DAC 实际DAC(典型值) 对电路的影响
输出阻抗 0 Ω 0.1 Ω ~ 10 Ω (电压型)
> 100 kΩ (电流型)
负载调整率、精度
驱动能力 无限大 ±1 mA ~ ±50 mA 能否直接驱动负载
建立时间 0 s 1 μs ~ 10 μs (普通)
10 ns ~ 100 ns (高速)
系统带宽、更新速率

2.3 如何应对这些“不完美”?

知道了问题,咱们就得想办法解决。我个人总结了三条经验:

第一,输出阻抗问题,用缓冲器隔离。

这是最直接的办法。在DAC输出和负载之间,加一个高输入阻抗、低输出阻抗的运放缓冲器。这样,负载的变化就不会影响到DAC的输出精度。

// 典型缓冲器电路示意
// DAC输出 -> 运放同相输入端
// 运放输出 -> 反馈到反相输入端
// 运放输出 -> 接负载
// 运放供电:注意轨到轨,避免削波

第二,驱动能力不足,用扩流电路。

如果负载需要大电流,比如驱动一个50Ω的电缆,或者一个电磁线圈,那就需要扩流。可以用分立的三极管、MOS管,或者用专用的功率运放。

第三,建立时间不够,从源头和负载两端下手。

  • 源头:选择建立时间更快的DAC。但要注意,高速DAC通常功耗更大,价格更贵。
  • 负载:减小负载电容。比如,尽量缩短DAC输出到负载的走线长度,避免使用大容量的滤波电容。
  • 中间:如果必须驱动大电容,可以在缓冲器输出端串联一个小电阻(比如10Ω~50Ω),然后再接电容。这样可以隔离缓冲器和电容,避免振荡,但会牺牲一点建立时间。
⚠️ 避坑指南: 我曾经在一个高速波形发生器项目中,直接用DAC驱动一个长同轴电缆。结果电缆的分布电容(几十pF/m)和DAC的输出阻抗形成了低通滤波器,把高频分量全滤掉了,输出波形变得圆滚滚的。后来在DAC输出端加了一个50Ω的串联电阻,并在电缆末端用50Ω端接,才解决了问题。记住,高速信号一定要考虑传输线效应

2.4 小结

好,这一章的内容就这些。总结一下:

  • 理想DAC是完美的,但实际DAC有输出阻抗、驱动能力、建立时间三个“软肋”。
  • 输出阻抗影响精度,驱动能力决定负载范围,建立时间限制速度。
  • 应对方法:缓冲器隔离、扩流电路、优化负载和走线。

下一章,我们会深入讨论DAC的静态指标——失调误差、增益误差、微分非线性(DNL)和积分非线性(INL)。这些指标直接决定了你的DAC精度到底有多高。到时候见。