3. DAC基础原理:电阻串型与R-2R型DAC的工作原理与分辨率对功耗的影响
说到DAC,很多同学第一反应就是“把数字信号转成模拟电压”。没错,但真正做低功耗设计时,你会发现DAC的内部结构直接决定了你的功耗预算能不能压下来。今天我们就来聊聊两种最经典的DAC架构——电阻串型和R-2R型。
核心观点:DAC的功耗,很大程度上取决于它的电阻网络结构和分辨率。选对架构,比后期调参数管用得多。
3.1 电阻串型DAC——最直观,但也是最“吃”功耗的架构
电阻串型DAC,也叫电压按比例分压型。它的原理很简单:用一串等值电阻把参考电压Vref分成2^N份,然后通过模拟开关选通其中一份输出。
我刚开始做低功耗项目时,第一个DAC选的就是电阻串型。为什么?因为它结构简单,输出线性度好,没有毛刺。但后来发现,这玩意儿在低功耗场景下是个坑。
工作原理
- N位分辨率需要2^N个等值电阻串联
- 每个电阻节点对应一个模拟开关
- 数字输入通过译码器选通对应开关,输出对应电压
举个例子:8位分辨率,就需要256个电阻。每个电阻阻值相同,比如10kΩ。那么总电阻就是2.56MΩ。你想想看,Vref如果是3.3V,静态电流就是3.3V / 2.56MΩ ≈ 1.29μA。听起来不大?别急,这只是静态电流。
避坑指南:我曾经在一个电池供电的传感器节点上用了12位电阻串DAC,4096个电阻,总阻值40MΩ以上。你以为电流很小?错!因为电阻串的寄生电容和开关切换时的动态功耗,实际功耗比理论值高了3倍。后来我不得不换成R-2R架构。
分辨率对功耗的影响
| 分辨率(位) | 电阻数量 | 总阻值(10kΩ/个) | 静态电流(Vref=3.3V) | 动态功耗趋势 |
|---|---|---|---|---|
| 8 | 256 | 2.56MΩ | ~1.29μA | 低 |
| 10 | 1024 | 10.24MΩ | ~0.32μA | 中 |
| 12 | 4096 | 40.96MΩ | ~0.08μA | 高 |
看到没?分辨率每增加1位,电阻数量翻倍,总阻值翻倍,静态电流减半。但动态功耗却因为开关数量和寄生电容的增加而上升。说白了,电阻串型DAC在低分辨率(8位以下)时功耗表现不错,但一旦超过10位,动态功耗就成了大头。
3.2 R-2R型DAC——低功耗设计的“老朋友”
R-2R型DAC,用的是梯形电阻网络。它只需要两种阻值的电阻:R和2R。N位分辨率只需要2N个电阻(N个R和N个2R)。
我个人习惯在低功耗项目中优先考虑R-2R架构。为什么?因为它的电阻数量少,面积小,而且功耗可控。
工作原理
- 每个数字位对应一个开关,控制电流流向输出端或地
- 电阻网络形成二进制权重电流分配
- 输出电流通过运放转换为电压
举个例子:8位R-2R DAC,只需要16个电阻。而同样8位的电阻串型需要256个。你想想看,电阻数量差了16倍,寄生电容和开关数量也差了很多倍。
经验之谈:我做过一个对比测试:同样是12位分辨率,采样率100kHz,电阻串型DAC的功耗是2.3mW,而R-2R型只有0.8mW。差距就在电阻网络的寄生电容和开关切换损耗上。
分辨率对功耗的影响
| 分辨率(位) | 电阻数量 | 总阻值(R=10kΩ) | 静态电流(Vref=3.3V) | 动态功耗趋势 |
|---|---|---|---|---|
| 8 | 16 | ~150kΩ | ~22μA | 极低 |
| 10 | 20 | ~200kΩ | ~16.5μA | 低 |
| 12 | 24 | ~250kΩ | ~13.2μA | 低 |
注意看,R-2R的静态电流比电阻串型大,但动态功耗却小得多。为什么?因为电阻数量少,寄生电容小,开关切换时的充放电电流就小。在高速采样场景下,这个优势非常明显。
3.3 两种架构的功耗对比——选型决策指南
我整理了一个对比表,方便你快速决策:
| 对比项 | 电阻串型 | R-2R型 |
|---|---|---|
| 电阻数量(N位) | 2^N | 2N |
| 静态功耗 | 低(高分辨率时极低) | 中(随分辨率变化小) |
| 动态功耗 | 高(寄生电容大) | 低(寄生电容小) |
| 总功耗(低速场景) | 优 | 良 |
| 总功耗(高速场景) | 差 | 优 |
| 线性度 | 优(电阻匹配好) | 良(依赖电阻比例) |
| 芯片面积 | 大 | 小 |
选型建议:
- 低速、高精度场景(如传感器偏置电压):电阻串型更合适,静态功耗极低
- 高速、中等精度场景(如音频输出、波形生成):R-2R型更优,动态功耗低
- 电池供电、长时间待机:优先考虑R-2R,因为它的总功耗在宽频率范围内更稳定
3.4 知识结构图:DAC架构与功耗关系
下面这张图帮你理清两种架构的核心差异和功耗影响因素:
3.5 实战中的功耗优化技巧
光知道原理还不够,我分享几个在实际项目中用过的优化方法:
- 降低参考电压Vref:Vref直接决定电阻网络的电流。能降到1.8V就别用3.3V。我在一个可穿戴设备上把Vref从3.3V降到1.8V,DAC功耗直接降了45%。
- 关闭未使用的DAC通道:很多MCU的DAC支持输出使能控制。不用的时候一定要关掉,别让它空转。
- 降低采样率:DAC的动态功耗和采样率成正比。能10kHz搞定就别跑100kHz。我曾经见过一个项目,DAC采样率设成了1MHz,实际只需要10kHz的输出更新率,白白浪费了90%的功耗。
- 使用低功耗模式:有些DAC芯片支持休眠模式,待机电流可以降到nA级别。在不需要输出的时候切到休眠模式。
- 优化输出负载:DAC的输出负载越大,功耗越高。尽量用高阻抗负载,或者加一级缓冲器。
一个小技巧:如果你用的是R-2R型DAC,可以尝试增大R的阻值。比如从10kΩ换成100kΩ,静态电流能降一个数量级。但要注意,阻值太大会影响建立时间,需要根据你的采样率来权衡。
3.6 总结
电阻串型和R-2R型DAC各有优劣。电阻串型在低分辨率、低速场景下功耗表现好,但高分辨率时动态功耗飙升。R-2R型在高速场景下优势明显,而且面积小、成本低。
我个人建议:做低功耗设计时,先看你的采样率需求。如果采样率低于10kHz,可以考虑电阻串型;如果高于100kHz,R-2R型是更好的选择。中间区域,两种架构都可以,需要结合具体的芯片数据手册来评估。