4. 电源电路设计:控制器供电架构

电源电路,说白了就是控制器的“心脏”。我做了这么多年硬件,见过太多系统死机、重启、甚至烧板子,十有八九都是电源没处理好。今天咱们就聊聊储能控制器里电源设计的那些关键点。

4.1 供电架构:隔离还是非隔离?

先问个问题:你的控制器需要和高压侧(比如电池包、电网)共地吗?

如果不需要,那就用隔离方案。我个人习惯在储能控制器里,通信接口、采样电路、主控芯片这三块必须隔离。为什么?

  • 安全第一:高压侧一旦漏电,隔离能把危险挡在门外
  • 抗干扰:高压侧的开关噪声不会窜到低压侧
  • 地环路:避免多个设备之间形成地环路电流

非隔离方案也不是不能用。比如控制器内部,5V给MCU供电、3.3V给传感器供电,这些低压域之间完全可以用非隔离的LDO或Buck。你想想看,如果每个电压都加隔离变压器,板子得做多大?成本也扛不住。

我的经验:储能控制器供电架构通常分三级:

  1. 一级:从电池包取电(48V/72V/96V),用隔离DC-DC降到12V或24V
  2. 二级:12V/24V用非隔离Buck降到5V
  3. 三级:5V用LDO降到3.3V或1.8V给核心芯片
储能控制器供电架构(三级) 一级:隔离DC-DC 48V/72V → 12V/24V 二级:非隔离Buck 12V/24V → 5V 三级:LDO 5V → 3.3V / 1.8V 各电压域负载分配 12V/24V 继电器、风扇 通信模块 5V 隔离通信芯片 运放、ADC 3.3V / 1.8V MCU、DSP、FPGA 传感器、逻辑芯片

4.2 DC-DC选型:LDO、Buck、Boost、Flyback

每种拓扑都有自己的脾气。我挑几个重点说说:

4.2.1 LDO(低压差线性稳压器)

LDO的好处就是干净、简单。输出纹波能做到10mV以内,对ADC供电特别友好。但效率低——输入12V输出3.3V,效率只有27.5%,剩下的全变成热量了。

什么时候用LDO?

  • 电流小于200mA
  • 压差不大(比如5V→3.3V)
  • 对噪声敏感(比如PLL、ADC参考电压)

4.2.2 Buck(降压转换器)

Buck是主力。效率能做到90%以上,适合大电流场景。选型时我主要看三个参数:

  • 输入电压范围:要留20%余量。比如电池最高72V,就选耐压90V以上的芯片
  • 开关频率:高频(>500kHz)能减小电感体积,但开关损耗大。我一般选300-500kHz,平衡
  • 同步整流:必须的。非同步整流效率差5-8%,发热严重

4.2.3 Boost(升压转换器)

Boost在储能里用得少,但也不是没有。比如有些控制器需要12V给通信模块供电,但电池电压掉到9V了,就得升一下。注意Boost的输入电流很大,PCB走线要加粗。

4.2.4 Flyback(反激变换器)

Flyback是隔离方案里的“万金油”。功率做到50W以内很划算,变压器自己绕都行。我在项目里常用它做辅助电源——从电池包取电,隔离输出12V/5V给控制板。

避坑指南:我曾经在一个项目里选了非同步整流的Buck,负载电流3A,结果芯片烫到80°C。后来换成同步整流,温度直接降到45°C。所以大电流场景,同步整流不是选项,是必须。

4.3 上电时序与掉电保护

上电时序,说白了就是谁先谁后的问题。MCU内核1.8V还没稳定,I/O口3.3V先上来了,结果I/O引脚可能把内核“反灌”烧掉。我见过不止一次这种低级错误。

正确的做法是:

  1. 先给内核供电(1.8V或1.2V)
  2. 再给I/O供电(3.3V)
  3. 最后给模拟电路供电(5V或±15V)

实现方式有两种:

  • RC延时:简单便宜,但精度差。适合对时序要求不严的场景
  • 电源监控芯片:比如TPS3808,可以精确控制使能引脚的上电顺序

掉电保护呢?储能系统最怕突然断电。数据写到一半,Flash坏了;或者继电器还没断开,高压直接打过来。我的做法是:

  • 在电源输入端加一个大电容(比如470μF),掉电能撑几十毫秒
  • MCU检测到掉电信号(通过电压比较器),立即执行紧急保存
  • 保存完成后,再给一个GPIO信号关断电源

代码示例:掉电中断处理

// 掉电检测中断服务函数
void PowerFail_IRQHandler(void) {
    // 1. 关闭所有继电器
    Relay_Off(RELAY_ALL);
    
    // 2. 保存关键参数到EEPROM
    eeprom_write(ADDR_SOC, battery_soc);
    eeprom_write(ADDR_MODE, work_mode);
    
    // 3. 等待电容放电完成
    while(GPIO_ReadPin(POWER_GOOD_PORT, POWER_GOOD_PIN) == 0);
    
    // 4. 系统复位
    NVIC_SystemReset();
}

4.4 电源监控与看门狗

电源监控不只是看电压够不够。我习惯监控三个东西:

  • 电压:用ADC实时采样,低于阈值就报警
  • 电流:用电流检测放大器(如INA226),防止过流
  • 温度:电源芯片温度超过85°C,降频或关断

看门狗呢?说白了就是“防死机”。MCU跑飞了,看门狗能把它拉回来。但要注意:

  • 独立看门狗(IWDG):用内部RC振荡器,最可靠。我一般设1秒超时
  • 窗口看门狗(WWDG):必须在特定时间窗口内喂狗,防止程序跑得太快

我的习惯:两个看门狗都用。IWDG保底,WWDG做精细监控。喂狗的位置放在主循环末尾,不要在中断里喂——否则中断正常但主循环卡死,看门狗也发现不了。

嗯,电源设计这块内容不少,但核心就三点:架构选对、时序管好、监控到位。你把这些吃透了,储能控制器的电源基本不会出大问题。


专注资料整理