最近完成了一个工业级同步Buck电源的设计项目,主控采用STM32F334的高精度定时器(HRTIM),实现了12-32V宽电压输入,5-28V可调输出,最大输出电流5.5A的性能指标。这个项目的核心挑战在于如何在200kHz开关频率下将输出纹波控制在200mV以内,同时确保系统的稳定性和可靠性。
作为电源工程师,我深知同步Buck设计的难点不仅在于电路拓扑的选择,更在于控制算法的实现和PCB布局的优化。本文将详细分享我在这个项目中的设计思路、实现方法和调试经验,希望能为从事电源设计的同行提供有价值的参考。
同步Buck的核心是功率级设计,我们采用了两颗N沟道MOS管(SI7850DP+SI7336ADP)的经典配置。上管选用SI7850DP(80V/11A,Rds(on)=36mΩ),下管选用SI7336ADP(30V/21A,Rds(on)=8.5mΩ)。这种组合在成本和性能之间取得了良好平衡。
重要提示:MOS管的选型必须考虑开关损耗和导通损耗的平衡。在200kHz开关频率下,开关损耗往往成为主要矛盾。
驱动电路采用图腾柱推挽结构,直接由STM32的PWM信号驱动。这里特别需要注意的是死区时间的设置,我们通过HRTIM的"Dead-Time Insertion"功能实现了精确控制:
c复制// HRTIM定时器死区配置
hrtim1.Instance->sTimerRegs[HRTIM_TIMER_TB].DTxR = 0x003C0040;
// 上升沿延迟64ns,下降沿延迟60ns
经过多次示波器测量,最终确定70ns的死区时间既能防止上下管直通,又能保证较高的转换效率。
电流检测采用50mΩ采样电阻+差分放大器的方案。我们在硬件上设计了双重保护机制:
c复制// 动态过流阈值设置
void set_oc_threshold(float current) {
uint16_t dac_val = (current / 5.5) * 4095; // 5.5A满量程
HAL_DAC_SetValue(&hdac1, DAC_CHANNEL_1, DAC_ALIGN_12B_R, dac_val);
}
// ADC过流中断回调
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) {
if(hadc->Instance == ADC1) {
float current = (HAL_ADC_GetValue(hadc)/4096.0)*5.5;
if(current > 5.5) {
emergency_shutdown(); // 硬件关断+PWM锁存
}
}
}
这种设计实现了23us的短路保护响应时间,有效保护了功率器件。
传统PID控制在开关电源中容易引起振荡,我们采用了2个零点+3个极点的补偿网络。通过将模拟域的补偿网络转换为数字IIR滤波器,显著改善了系统的动态响应。
c复制// 离散化传递函数转换
float pid_update(PID_HandleTypeDef *hpid, float error) {
float u = hpid->Kp * error
+ hpid->Ki * hpid->integral
+ hpid->Kd * (error - hpid->prev_error);
// 零极点补偿系数
u = 0.327 * u + 0.289 * hpid->last_output;
hpid->last_output = u;
return u;
}
实测表明,这种补偿方式使负载突变时的电压恢复时间缩短了40%。
为了进一步提高系统对输入电压突变的响应速度,我们增加了前馈控制环节。通过实时监测输入电压变化,提前调整占空比,有效抑制了输入扰动对输出的影响。
STM32F334的HRTIM定时器支持ps级分辨率,是实现200kHz PWM的理想选择。我们采用中心对齐模式来减少谐波干扰:
c复制// PWM频率200kHz配置
hrtim1.Init.Prescaler = 0; // 时钟直接168MHz
hrtim1.Init.Period = 840-1; // 168M/(840*2)=200kHz
hrtim1.Init.RepetitionCounter = 0;
HAL_HRTIM_Init(&hrtim1);
调试中发现,使用HAL库函数调整占空比会有约3us的延迟,改为直接操作寄存器后,响应时间缩短到0.5us:
c复制HRTIM_TIMER_TB->CMP1xR = duty_cycle; // 直接写比较寄存器
同步Buck的下管导通时序对效率影响很大。我们通过HRTIM的事件互连功能,实现了精确的同步整流控制,使转换效率在满载时达到92%以上。
输出端采用三级滤波架构:
这种组合有效抑制了高频开关噪声。
PCB布局对纹波性能的影响甚至超过电路设计本身。我们采取了以下措施:
通过电流探头测量,这些布局优化使di/dt噪声降低了60%。
系统实现了完善的保护功能:
每种保护都包含硬件和软件双重判断,确保可靠性。
针对不同故障类型,我们设计了不同的恢复策略:
经过严格测试,系统达到了以下性能:
我们进行了72小时连续满载测试和1000次开关循环测试,系统表现稳定,无任何性能退化。
本项目使用了完整的开发工具链:
所有设计文档、计算书、BOM清单和源代码都提供了详细注释,方便后续维护和升级。