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,精度大打折扣。
2.2.2 驱动能力:能带多重的“货”?
驱动能力,说白了就是DAC能输出多大的电流。
电压输出型DAC,内部缓冲器一般能输出几mA到几十mA的电流。比如常见的AD5660,输出电流典型值是±5mA。够用吗?
看情况。如果你直接驱动一个高阻抗的ADC输入端,5mA绰绰有余。但如果你想驱动一个50Ω的射频负载,或者一个需要大电流的模拟表头,那就不行了。
我曾经遇到过一个案例:用DAC输出控制一个压控振荡器(VCO)。VCO的调谐输入端有较大的电容(几十pF),而且需要一定的充电电流来快速建立电压。结果DAC的驱动能力不足,导致VCO的频率建立时间变得很长,整个锁相环的锁定时间超标。
解决办法?很简单,加一级缓冲器。用运放搭一个电压跟随器,或者用专用的缓冲芯片。
2.2.3 建立时间:到底要等多久?
建立时间,是DAC从数字码变化到输出稳定在最终值(通常允许一定误差,如±0.5LSB)所需的时间。
这个参数,直接决定了你的DAC能跑多快。
理想DAC是瞬间建立的,但实际DAC不行。原因有几个:
- 内部开关的寄生电容和电阻:形成RC延迟。
- 输出缓冲器的压摆率限制:运放不是无限快的,它需要时间来充电和放电。
- 数字馈通和毛刺:数字码切换时,会通过寄生电容耦合到输出端,产生一个短暂的尖峰,然后才慢慢稳定下来。
建立时间通常分为两部分:
- 延迟时间:从数字码变化到输出开始变化的时间。主要是数字逻辑和开关的延迟。
- 转换时间:输出从开始变化到稳定在最终值的时间。主要受压摆率和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Ω),然后再接电容。这样可以隔离缓冲器和电容,避免振荡,但会牺牲一点建立时间。
2.4 小结
好,这一章的内容就这些。总结一下:
- 理想DAC是完美的,但实际DAC有输出阻抗、驱动能力、建立时间三个“软肋”。
- 输出阻抗影响精度,驱动能力决定负载范围,建立时间限制速度。
- 应对方法:缓冲器隔离、扩流电路、优化负载和走线。
下一章,我们会深入讨论DAC的静态指标——失调误差、增益误差、微分非线性(DNL)和积分非线性(INL)。这些指标直接决定了你的DAC精度到底有多高。到时候见。