背景本设计面向6串三元锂电池电压范围 18V~25.2V要求降压输出 DC 12V并具备10A 带载能力。采用H桥拓扑通过控制右桥臂的PWM占空比实现降压左桥臂上管直通、下管关闭。目标负载变动时输出电压稳定在12V附近波动尽量小。电路简化示意BAT ──┬── Q1(上管) ────┬── DC (12V) │ │ └── Q2(下管) ────┘ (左桥Q1常通Q2常关) PWM_H1/PWM_L1 → 左桥驱动 PWM_H2/PWM_L2 → 右桥驱动BUCK降压一、如何输出稳定的12V1. PWM通道配置PWM_H1 / PWM_L1互补输出驱动左桥臂PWM_H2 / PWM_L2互补输出驱动右桥臂负责降压2. 降压控制逻辑左桥PWM_H1保持高电平上管直通PWM_L1保持低电平下管关断右桥通过调节PWM_H2的占空比改变输出电压。占空比越高输出越接近电池电压占空比越低输出越低。ADC 实时采样 DC 输出电压当检测到 12V 时保持占空比在小范围内微调实现闭环稳压。3. 状态机启动流程三步走计算初始占空比D_init (V_DC_target / V_BAT) × 100%例如电池24V时D_init≈50%先输出右桥PWMH2/L2再输出左桥PWMH1/L1保证时序正确进入闭环调节根据ADC反馈逐步增减占空比使电压收敛至12V⚠️ 二、踩坑实录空载正常带载波形严重失真问题现象按照上述逻辑调试空载时12V输出稳定但一旦接入负载2APWM_H1和PWM_L1波形出现严重畸变输出电压急剧跌落带载能力几乎为零。根本原因分析我们选用的驱动IC为EG2132其高侧驱动依赖自举电容充放电。自举电容的充电回路为VCC → 自举二极管 → 自举电容 → 下管LO→ GND只有当LO引脚为低电平即下管导通时自举电容才能被充电。而在我们的初始逻辑中PWM_L1的占空比为 **0%**下管一直关断导致自举电容始终无法充电上管驱动电压不足带载时波形畸变输出能力大打折扣。✅ 解决方案不能将下管设为完全关断必须保留最小导通时间。我们将PWM_L1的占空比设为 **2%**对应PWM_H1为98%这样每个周期下管会短暂导通自举电容获得充电机会上管驱动恢复正常带载能力瞬间提升至10A。 经验总结使用自举驱动时务必保证下管有足够的导通时间通常≥1%占空比否则高侧MOS将无法正常工作。 三、程序实现状态机稳压算法主控采用 STM32高级定时器输出互补PWMADC轮询采集电池电压和DC输出电压。void pri_dc12v_pwm_ctl(void) { static uint16_t su16Dc12VPwmCnt 0; switch(su8DcPwmState) { case 0: // 初始化占空比 if(g_stuAdcCollect.m_u16RealBatVol g_stuAdcCollect.m_u16RealDcOutVol) { // 理论占空比 (12V / 电池电压) * 200 (PWM周期计数) su16Dc12VPwmCnt (1200 * 200) / g_stuAdcCollect.m_u16RealBatVol; } else { su16Dc12VPwmCnt PS_INIT_DC12V_PWM; // 备用安全值 } su8DcPwmState 1; break; case 1: // 设置右桥PWM (H2/L2) 占空比 __HAL_TIM_SET_COMPARE(htim1, TIM_CHANNEL_3, su16Dc12VPwmCnt); su8DcPwmState 2; break; case 2: // 设置左桥PWM (H198%, L12%) — 关键修复 __HAL_TIM_SET_COMPARE(htim1, TIM_CHANNEL_2, 196); // 196/200 98% su8DcPwmState 3; break; case 3: // 闭环反馈调节 if(g_stuAdcCollect.m_u16DcOutVol 142) // 分压1.42V对应12.8V { su16Dc12VPwmCnt; // 电压偏低增加占空比 su8DcPwmState 1; } else if(g_stuAdcCollect.m_u16DcOutVol 147) // 分压1.47V对应13.3V { su16Dc12VPwmCnt--; // 电压偏高减小占空比 su8DcPwmState 1; } // 处于12.8V~13.3V区间则保持不做调节死区 break; default: break; } }关键设计要点状态机流转0→1→2→3→1→2→3...循环执行完成初始化、PWM输出、反馈调节的全过程。死区窗口输出电压在12.8V~13.3V之间时不调节避免频繁扰动提高稳定性。步进调节每次仅增减1个计数变化平缓系统不易振荡。️ 四、异常保护策略多重保险保护类型触发条件执行动作过流保护输出电流 11A关闭DC输出上报过流故障过压保护输出电压 16V关闭DC输出上报过压故障短路保护开启后输出 2V关闭DC输出上报短路故障电池欠压电池电压 18V关闭DC输出保护锂电池所有保护均采用硬件快速响应 软件确认双重机制确保异常时迅速关断保障设备和电池安全。 五、总结与心得自举电容是隐形杀手高端驱动IC必须保证下管有导通时间≥1%占空比否则带载能力形同虚设。状态机编程清晰可靠将初始化、PWM配置、闭环调节分离便于调试和扩展。闭环控制宜缓不宜急采用步进调节死区窗口可有效避免系统振荡。保护功能必须完备过流、过压、短路、欠压缺一不可这是产品化的基本要求。经过上述优化本电源模块在10A满载下纹波低于100mV效率可达92%以上已通过连续老化测试稳定可靠。
H‑桥做 12V 降压踩坑实录:明明能输出电压,为什么一带负载波形直接崩坏?
背景本设计面向6串三元锂电池电压范围 18V~25.2V要求降压输出 DC 12V并具备10A 带载能力。采用H桥拓扑通过控制右桥臂的PWM占空比实现降压左桥臂上管直通、下管关闭。目标负载变动时输出电压稳定在12V附近波动尽量小。电路简化示意BAT ──┬── Q1(上管) ────┬── DC (12V) │ │ └── Q2(下管) ────┘ (左桥Q1常通Q2常关) PWM_H1/PWM_L1 → 左桥驱动 PWM_H2/PWM_L2 → 右桥驱动BUCK降压一、如何输出稳定的12V1. PWM通道配置PWM_H1 / PWM_L1互补输出驱动左桥臂PWM_H2 / PWM_L2互补输出驱动右桥臂负责降压2. 降压控制逻辑左桥PWM_H1保持高电平上管直通PWM_L1保持低电平下管关断右桥通过调节PWM_H2的占空比改变输出电压。占空比越高输出越接近电池电压占空比越低输出越低。ADC 实时采样 DC 输出电压当检测到 12V 时保持占空比在小范围内微调实现闭环稳压。3. 状态机启动流程三步走计算初始占空比D_init (V_DC_target / V_BAT) × 100%例如电池24V时D_init≈50%先输出右桥PWMH2/L2再输出左桥PWMH1/L1保证时序正确进入闭环调节根据ADC反馈逐步增减占空比使电压收敛至12V⚠️ 二、踩坑实录空载正常带载波形严重失真问题现象按照上述逻辑调试空载时12V输出稳定但一旦接入负载2APWM_H1和PWM_L1波形出现严重畸变输出电压急剧跌落带载能力几乎为零。根本原因分析我们选用的驱动IC为EG2132其高侧驱动依赖自举电容充放电。自举电容的充电回路为VCC → 自举二极管 → 自举电容 → 下管LO→ GND只有当LO引脚为低电平即下管导通时自举电容才能被充电。而在我们的初始逻辑中PWM_L1的占空比为 **0%**下管一直关断导致自举电容始终无法充电上管驱动电压不足带载时波形畸变输出能力大打折扣。✅ 解决方案不能将下管设为完全关断必须保留最小导通时间。我们将PWM_L1的占空比设为 **2%**对应PWM_H1为98%这样每个周期下管会短暂导通自举电容获得充电机会上管驱动恢复正常带载能力瞬间提升至10A。 经验总结使用自举驱动时务必保证下管有足够的导通时间通常≥1%占空比否则高侧MOS将无法正常工作。 三、程序实现状态机稳压算法主控采用 STM32高级定时器输出互补PWMADC轮询采集电池电压和DC输出电压。void pri_dc12v_pwm_ctl(void) { static uint16_t su16Dc12VPwmCnt 0; switch(su8DcPwmState) { case 0: // 初始化占空比 if(g_stuAdcCollect.m_u16RealBatVol g_stuAdcCollect.m_u16RealDcOutVol) { // 理论占空比 (12V / 电池电压) * 200 (PWM周期计数) su16Dc12VPwmCnt (1200 * 200) / g_stuAdcCollect.m_u16RealBatVol; } else { su16Dc12VPwmCnt PS_INIT_DC12V_PWM; // 备用安全值 } su8DcPwmState 1; break; case 1: // 设置右桥PWM (H2/L2) 占空比 __HAL_TIM_SET_COMPARE(htim1, TIM_CHANNEL_3, su16Dc12VPwmCnt); su8DcPwmState 2; break; case 2: // 设置左桥PWM (H198%, L12%) — 关键修复 __HAL_TIM_SET_COMPARE(htim1, TIM_CHANNEL_2, 196); // 196/200 98% su8DcPwmState 3; break; case 3: // 闭环反馈调节 if(g_stuAdcCollect.m_u16DcOutVol 142) // 分压1.42V对应12.8V { su16Dc12VPwmCnt; // 电压偏低增加占空比 su8DcPwmState 1; } else if(g_stuAdcCollect.m_u16DcOutVol 147) // 分压1.47V对应13.3V { su16Dc12VPwmCnt--; // 电压偏高减小占空比 su8DcPwmState 1; } // 处于12.8V~13.3V区间则保持不做调节死区 break; default: break; } }关键设计要点状态机流转0→1→2→3→1→2→3...循环执行完成初始化、PWM输出、反馈调节的全过程。死区窗口输出电压在12.8V~13.3V之间时不调节避免频繁扰动提高稳定性。步进调节每次仅增减1个计数变化平缓系统不易振荡。️ 四、异常保护策略多重保险保护类型触发条件执行动作过流保护输出电流 11A关闭DC输出上报过流故障过压保护输出电压 16V关闭DC输出上报过压故障短路保护开启后输出 2V关闭DC输出上报短路故障电池欠压电池电压 18V关闭DC输出保护锂电池所有保护均采用硬件快速响应 软件确认双重机制确保异常时迅速关断保障设备和电池安全。 五、总结与心得自举电容是隐形杀手高端驱动IC必须保证下管有导通时间≥1%占空比否则带载能力形同虚设。状态机编程清晰可靠将初始化、PWM配置、闭环调节分离便于调试和扩展。闭环控制宜缓不宜急采用步进调节死区窗口可有效避免系统振荡。保护功能必须完备过流、过压、短路、欠压缺一不可这是产品化的基本要求。经过上述优化本电源模块在10A满载下纹波低于100mV效率可达92%以上已通过连续老化测试稳定可靠。