4、DAC基础原理:从数字到模拟的桥梁
各位同学,今天我们聊聊DAC。数模转换器,说白了就是把一串数字信号变成实实在在的模拟电压或电流。你想想看,MCU算出来的是0和1,但喇叭要的是连续变化的电流,电机要的是平滑的电压——中间这个翻译官,就是DAC。
我个人习惯把DAC比作「数字世界的DA转换器」。你给它一个二进制数,它给你一个对应的模拟量。听起来简单?嗯,这里面的门道可不少。我在项目中遇到过不少坑,今天一并讲给你们听。
4.1 DAC工作原理:核心是「加权求和」
DAC的工作原理,本质上就是一个加权求和的过程。什么意思呢?
假设你有一个8位的DAC,输入的数字是D7 D6 D5 ... D0。每一位都代表一个权重:最高位D7是1/2满量程,D6是1/4,D5是1/8……最低位D0是1/256。DAC内部把这些权重对应的电流或电压加起来,就得到了输出。
举个例子,8位DAC,参考电压5V,输入二进制10100000(十进制160):
输出 = 5V × (160 / 256) = 5V × 0.625 = 3.125V
就这么简单?原理上是的。但实际实现时,怎么把这些权重精确地加起来,就是各家厂商的看家本领了。
核心公式:
Vout = Vref × (D / 2^N)
其中D是输入的二进制数值,N是分辨率位数,Vref是参考电压。
4.2 主要性能指标:选型时盯紧这三个
做项目选DAC芯片,我一般先看三个指标:建立时间、毛刺、单调性。其他的像INL、DNL当然也重要,但今天先讲这三个最容易出问题的。
4.2.1 建立时间:它到底有多快?
建立时间,就是从输入数字变化到输出稳定在最终值±1/2 LSB范围内所花的时间。说白了,就是DAC「反应」有多快。
我曾经在一个音频项目里,用了某款便宜的DAC,标称建立时间10μs。结果播放高频信号时,声音明显失真。一查才发现,10μs对应最大更新速率才100kHz,而音频信号需要44.1kHz以上的采样率,加上重建滤波器的要求,根本不够用。
我的经验:选建立时间时,留出至少3倍的余量。比如你需要100kHz的更新率,那就选建立时间不超过3μs的DAC。别卡着极限选,温度一高、电压一波动,你就等着哭吧。
4.2.2 毛刺:数字切换时的「脏东西」
毛刺,英文叫Glitch。当DAC输入的数字码发生变化时,输出端会出现一个短暂的尖峰脉冲。为什么会这样?
原因在于内部开关的切换速度不一致。比如从01111111切换到10000000,理论上输出只变化1个LSB。但实际中,所有位同时切换,高位开关可能比低位快一点点,中间就会瞬间出现一个全0或全1的状态,输出猛地跳一下。
我记得有一次做波形发生器,用示波器看正弦波输出,发现每个过零点都有个小尖刺。查了半天,就是DAC的毛刺在作怪。后来换了低毛刺的R-2R架构DAC,问题才解决。
避坑指南:我曾经在高速信号链里忽略了毛刺指标,结果系统EMI测试直接超标。毛刺的能量虽然小,但频率成分很丰富,容易辐射出去。如果你做的是射频或高速通信,务必选毛刺能量(Glitch Energy)小于1nV·s的DAC。
4.2.3 单调性:输出会不会「倒着走」?
单调性,指的是输入数字增大时,输出模拟量是否也一直增大。如果输入从100增加到101,输出反而变小了,那这个DAC就是非单调的。
非单调性在控制系统中是致命的。你想想看,你让电机转快一点,结果它反而转慢了——系统直接震荡。我有个同事做伺服驱动器,就遇到过这个问题,PID调了半天都不稳定,最后发现是DAC在某个码值附近非单调。
为什么会出现非单调?主要是电阻网络或电流源的匹配精度不够。高位的权重如果比理论值小,就可能被低位「反超」。
重要结论:对于闭环控制系统(比如电机控制、电源控制),必须选单调性保证的DAC。数据手册里如果没写「Guaranteed Monotonic」,你就默认它不保证。
4.3 DAC分类概述:选对架构,事半功倍
DAC的架构五花八门,但主流就几种。我按自己的理解给你们捋一捋。
| 架构类型 | 核心原理 | 优点 | 缺点 | 典型应用 |
|---|---|---|---|---|
| 电阻分压型 | 一串电阻分压,开关选择抽头 | 结构简单,单调性好 | 分辨率高了电阻太多(2^N个) | 低分辨率、低速度 |
| R-2R梯形网络 | 只用两种阻值,开关切换 | 电阻少,适合中高分辨率 | 对电阻匹配要求高 | 音频、工业控制 |
| 电流舵型 | 多个电流源并联,开关控制 | 速度快,毛刺小 | 功耗大,面积大 | 高速通信、射频 |
| Σ-Δ型 | 过采样+噪声整形+数字滤波 | 分辨率极高,线性度好 | 速度慢,有延迟 | 音频、精密测量 |
| 乘法型 | 参考电压可变,输出=输入×参考 | 可调增益,灵活 | 带宽受限 | 可编程增益放大器 |
嗯,这里要注意:R-2R架构虽然经典,但温度特性是个坑。我曾经在-40°C到85°C的汽车级项目里用R-2R DAC,结果低温下精度漂了2个LSB。后来换成激光修调的电流舵型,才过车规。
Σ-Δ型DAC呢,精度是真的高,但延迟也是真的烦。你如果做音频,那没问题,人耳对几十微秒的延迟不敏感。但你要是做电源的反馈环路,Σ-Δ那几百微秒的群延迟直接让环路不稳定。
选型口诀:
- 要快(>10MHz更新率)→ 电流舵型
- 要准(>16位精度)→ Σ-Δ型
- 要便宜(8-10位)→ 电阻分压型
- 要平衡(12-16位,中等速度)→ R-2R型
好了,DAC的基础原理就讲到这里。下一章我们讲ADC,到时候再聊聊怎么把模拟信号变回数字。记住我今天说的:建立时间留余量,毛刺要重视,单调性必须保证。这三个坑,我替你们踩过了,你们就别再踩了。