1. 电源架构概览:MCU供电需求分析
做MCU低功耗设计,电源架构是第一步。我见过不少工程师,一上来就盯着DC-DC芯片的datasheet看效率曲线,结果板子调出来纹波超标,或者某个电压域死活进不了低功耗模式。说白了,你得先搞清楚MCU到底需要什么样的电。
1.1 MCU的三类电压域
一个典型的MCU,内部至少有三个独立的电压域。它们对电源的要求完全不同。
| 电压域 | 典型电压范围 | 电流需求 | 纹波敏感度 | 典型场景 |
|---|---|---|---|---|
| 核心电压 (Vcore) | 0.8V - 1.8V | 数十mA ~ 数百mA | 高 | CPU运行、RAM保持 |
| IO电压 (VddIO) | 1.8V / 3.3V / 5.0V | 数mA ~ 数十mA | 中 | GPIO、SPI、UART |
| 模拟电压 (Vdda) | 2.5V / 3.3V / 5.0V | 数mA | 极高 | ADC、DAC、比较器 |
核心电压最麻烦。它电压低、电流大,而且对纹波极其敏感。我曾经在一个项目中,Vcore纹波只有30mVpp,但ADC采样值就是跳得厉害。后来发现是核心电压的开关噪声耦合到了模拟地平面。嗯,这里要注意,核心电压的纹波不仅影响CPU稳定性,还会通过衬底耦合干扰模拟电路。
关键指标:MCU进入低功耗模式时,核心电压通常需要降低到0.9V甚至0.6V。此时DC-DC能否稳定工作在轻载(μA级)下,是选型的第一道坎。
1.2 DC-DC与LDO:效率与纹波的取舍
你想想看,为什么不用一个LDO搞定所有电压?因为效率。LDO的效率约等于输出电压除以输入电压。3.3V转1.2V,效率只有36%。剩下的64%全变成热量。我见过一块板子,LDO烫得能煎鸡蛋。
DC-DC的效率可以做到85%以上,但它有开关噪声。这个噪声是硬伤。
| 特性 | DC-DC (Buck) | LDO |
|---|---|---|
| 效率 (3.3V→1.2V) | 85% - 92% | 36% |
| 输出纹波 | 10mVpp - 50mVpp | < 1mVpp |
| 负载瞬态响应 | 中等 (需补偿) | 快 (带宽高) |
| 轻载效率 | 低 (PFM模式可改善) | 高 (静态电流决定) |
| PCB面积 | 大 (电感+电容) | 小 (仅电容) |
| 成本 | 高 | 低 |
怎么取舍?我的经验是:大压差、大电流用DC-DC;小压差、小电流或对噪声敏感的地方用LDO。 比如,电池供电的设备,3.7V锂电池转1.2V核心电压,必须用DC-DC。而ADC的参考电压,哪怕只有10mA,也建议用LDO。
个人习惯:我会在DC-DC输出后面再加一级LDO,给模拟电路供电。这样既保证了效率,又隔离了开关噪声。代价是多了几毛钱成本和一点点PCB面积,但换来的是稳定的采样值,值。
1.3 电源架构的典型拓扑
下面这张图是我常用的一个电源架构。它把DC-DC和LDO组合起来,兼顾效率和噪声。
这个架构里,DC-DC先把电池电压降到3.3V左右,然后分三路:一路直接给IO供电,一路经过LDO降到1.2V给核心,还有一路经过高PSRR的LDO给模拟电路。为什么要先降到3.3V?因为DC-DC在中等输出电压下效率最高,而且3.3V到1.2V的压差由LDO承担,LDO的功耗可控。
避坑指南:我曾经在一个低功耗项目中,直接把DC-DC的输出接到MCU的Vdda引脚上。结果ADC在采样时,数值总是在最低位跳动。查了两天,发现是DC-DC的开关频率(2.2MHz)正好落在ADC采样带宽内。后来在DC-DC和Vdda之间加了一颗10Ω电阻和4.7μF电容组成的RC滤波器,问题解决。
1.4 效率与纹波的量化分析
选型时,不能只看datasheet上的典型效率。你得关注实际工作点。比如,MCU在休眠时电流只有10μA,但DC-DC在轻载下的效率可能只有30%。这时候,LDO反而更优。
我习惯做一个简单的效率估算表:
| 负载电流 | DC-DC效率 (3.3V→1.2V) | LDO效率 (3.3V→1.2V) | 推荐方案 |
|---|---|---|---|
| 1 μA | 10% - 20% | 36% | LDO |
| 100 μA | 40% - 60% | 36% | LDO (若静态电流允许) |
| 1 mA | 70% - 80% | 36% | DC-DC |
| 10 mA | 85% - 90% | 36% | DC-DC |
| 100 mA | 88% - 92% | 36% | DC-DC |
看到没?在1mA以下,LDO的效率反而可能超过DC-DC。所以,不要迷信DC-DC。如果你的MCU大部分时间在休眠,偶尔醒来处理数据,那么用LDO供电核心电压,配合DC-DC给外设供电,可能是更优的方案。
我的经验:对于电池供电的IoT设备,我通常会在DC-DC的反馈电阻上并联一个MOSFET,在休眠时断开反馈通路,让DC-DC进入关断模式。然后由一颗超低静态电流的LDO(比如TPS7A02,Iq=25nA)维持MCU的休眠供电。这样,休眠功耗可以做到1μA以下。
1.5 纹波对MCU的影响
纹波不只是影响ADC。它还会影响时钟抖动。MCU内部的PLL对电源噪声非常敏感。我遇到过一个问题:MCU的SPI通信在高速模式下偶尔出错。用示波器一看,SPI时钟线上有周期性的抖动。追查下去,发现是DC-DC的开关噪声耦合到了PLL的供电引脚。在PLL供电引脚上加了一颗100nF的电容,问题消失。
不同电压域对纹波的容忍度:
- 核心电压:纹波应小于5% Vcore。1.2V核心,纹波最好控制在60mVpp以内。超过这个值,CPU可能发生逻辑错误。
- IO电压:纹波容忍度较高,10%以内通常没问题。但高速接口(如DDR、MIPI)除外。
- 模拟电压:纹波应小于1% Vdda。3.3V模拟电压,纹波最好控制在30mVpp以内。对于高精度ADC(12位以上),建议控制在10mVpp以下。
嗯,这里要注意,纹波测量时,示波器的探头接地要短。我见过有人用长接地夹子测纹波,测出来100mVpp,换了短接地弹簧后,实际只有20mVpp。测量方法不对,会误导你的选型判断。
总结一下:电源架构没有银弹。DC-DC和LDO是互补的,不是对立的。你需要根据MCU的工作模式(活跃/休眠)、电流需求、噪声敏感度,灵活组合。下一节,我们会深入DC-DC的选型参数,看看那些datasheet上密密麻麻的指标,到底哪些才是真正重要的。