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架构与功耗关系

下面这张图帮你理清两种架构的核心差异和功耗影响因素:

DAC架构与功耗关系图 DAC架构与功耗关系 电阻串型DAC R-2R型DAC 2^N个电阻,面积大,寄生电容大 2N个电阻,面积小,寄生电容小 静态功耗:低 动态功耗:高 总功耗:低速优 静态功耗:中 动态功耗:低 总功耗:高速优 选型关键 低速高精度 → 电阻串型 高速中等精度 → R-2R型

3.5 实战中的功耗优化技巧

光知道原理还不够,我分享几个在实际项目中用过的优化方法:

  1. 降低参考电压Vref:Vref直接决定电阻网络的电流。能降到1.8V就别用3.3V。我在一个可穿戴设备上把Vref从3.3V降到1.8V,DAC功耗直接降了45%。
  2. 关闭未使用的DAC通道:很多MCU的DAC支持输出使能控制。不用的时候一定要关掉,别让它空转。
  3. 降低采样率:DAC的动态功耗和采样率成正比。能10kHz搞定就别跑100kHz。我曾经见过一个项目,DAC采样率设成了1MHz,实际只需要10kHz的输出更新率,白白浪费了90%的功耗。
  4. 使用低功耗模式:有些DAC芯片支持休眠模式,待机电流可以降到nA级别。在不需要输出的时候切到休眠模式。
  5. 优化输出负载:DAC的输出负载越大,功耗越高。尽量用高阻抗负载,或者加一级缓冲器。

一个小技巧:如果你用的是R-2R型DAC,可以尝试增大R的阻值。比如从10kΩ换成100kΩ,静态电流能降一个数量级。但要注意,阻值太大会影响建立时间,需要根据你的采样率来权衡。

3.6 总结

电阻串型和R-2R型DAC各有优劣。电阻串型在低分辨率、低速场景下功耗表现好,但高分辨率时动态功耗飙升。R-2R型在高速场景下优势明显,而且面积小、成本低。

我个人建议:做低功耗设计时,先看你的采样率需求。如果采样率低于10kHz,可以考虑电阻串型;如果高于100kHz,R-2R型是更好的选择。中间区域,两种架构都可以,需要结合具体的芯片数据手册来评估。