1. 项目背景与核心器件选型解析
在电力电子设计中,DC-DC升压转换是一个经典课题,尤其当需要将低电压转换为高电压(如12V升压至24V或更高)时,选择合适的控制器和功率器件至关重要。本次项目选用TI的TPS61170作为功率转换核心,搭配Microchip的dsPIC33EP512MU814数字信号控制器构成完整方案,这种组合在工业控制、汽车电子和测试测量设备中具有典型应用价值。
TPS61170是一款集成1.2A/40V功率MOSFET的升压转换器,其3V-18V的宽输入范围和最高38V的输出能力,使其特别适合从电池或不稳定电源生成稳定高压的场景。与普通升压芯片相比,它的三个突出特性值得注意:
- 1.2MHz固定开关频率允许使用更小的电感元件
- 轻载时自动切换至PFM模式提升效率
- 通过CTRL引脚支持PWM调光和数字调压
dsPIC33EP512MU814则是Microchip旗下高性能16位DSC,具备70MIPS运算能力和丰富的外设接口。选择它作为主控主要基于:
- 内置高分辨率PWM模块(150ps分辨率)可精确控制开关时序
- 12位ADC配合可编程增益放大器实现闭环反馈
- 硬件比较器提供过压/过流快速保护
- 自带CAN和UART接口便于系统集成
实际选型中发现:TPS61170的QFN-6封装(2x2mm)对手工焊接极具挑战,建议使用预焊锡膏和热风枪。而dsPIC的100引脚TQFP封装则相对友好。
2. 升压电路硬件设计要点
2.1 功率级参数计算
以输入12V升压至24V/0.5A为例,关键参数计算如下:
占空比D: D = (Vout - Vin) / Vout = (24-12)/24 = 0.5 (50%)
电感选择: 临界电感Lmin = Vin×D / (ΔI×fsw)
假设允许纹波电流ΔI=0.24A(20% of Iin)
则Lmin = 12×0.5 / (0.24×1.2×10⁶) ≈ 20.8μH
实际选用22μH/2A的屏蔽电感(如Bourns SRN3015)
输出电容: Cout ≥ Iout×D / (fsw×ΔVout)
设允许纹波ΔVout=240mV(1%)
则Cout ≥ 0.5×0.5 / (1.2×10⁶×0.24) ≈ 0.87μF
考虑瞬态响应,实际使用10μF/50V陶瓷电容+100μF电解电容并联
2.2 PCB布局关键技巧
- 功率回路最小化:Vin→电感→SW→GND的回路线路要尽可能短粗,建议使用铺铜而非走线
- 敏感信号隔离:FB反馈走线远离电感和高频开关节点,必要时采用guard ring保护
- 热设计:TPS61170的散热焊盘必须良好接地,建议使用4×0.3mm过孔阵列连接到底层铜箔
- 测试点预留:SW节点、Vout、FB引脚处预留焊盘便于示波器探头连接
实测中发现:当输出超过30V时,普通0603封装的反馈电阻可能产生电压击穿,建议改用0805或1206封装的高压电阻。
3. 数字控制实现方案
3.1 dsPIC配置流程
使用MPLAB X IDE进行基础配置:
// PWM模块初始化 PWM1CON1 = 0x0000; // 独立模式 PWM1CON2 = 0x0000; PTPER = 583; // 1.2MHz开关频率 @70MHz Fosc P1DC1 = 292; // 初始占空比50% P1TCONbits.PTEN = 1;// 使能PWM // ADC配置 AD1CON1 = 0x00E0; // 自动采样转换 AD1CON2 = 0x0000; AD1CON3 = 0x1F02; // Tad=128ns AD1CHS0bits.CH0SA = 3; // 选择AN3作为反馈输入3.2 电压闭环控制算法
采用增量式PID算法实现动态调节:
#define KP 0.12 #define KI 0.003 #define KD 0.05 int PID_Update(int setpoint, int actual) { static int last_error = 0; static int integral = 0; int error = setpoint - actual; integral += error; if(integral > 2000) integral = 2000; // 抗饱和 if(integral < -2000) integral = -2000; int derivative = error - last_error; last_error = error; return (int)(KP*error + KI*integral + KD*derivative); } // 主循环中调用 while(1) { adc_val = ADC_Read(3); // 读取FB电压 pwm_duty = PID_Update(2450, adc_val); // 目标值2450=1.229V基准 PWM1_SetDuty(pwm_duty); __delay_ms(1); }3.3 保护功能实现
利用dsPIC的比较器模块实现硬件级保护:
// 过压保护比较器配置 CMSTATbits.C1ON = 1; // 使能比较器1 CM1CONbits.CPOL = 1; // 高电平有效 CM1CONbits.CEVT = 0; // 清除事件标志 IPC8bits.C1IP = 5; // 设置中断优先级 // 比较器中断服务程序 void __attribute__((interrupt, auto_psv)) _C1Interrupt(void) { PWM1CON1bits.PEN1H = 0; // 立即关闭PWM输出 FAULT_LED = 1; // 点亮故障指示灯 CM1CONbits.CEVT = 0; // 清除中断标志 }4. 实测性能优化记录
4.1 效率提升方案
通过不同负载下的效率测试发现:
- 轻载(<50mA)时效率仅68%,启用PFM模式后提升至82%
- 中载(300mA)时达到峰值效率93%
- 重载(>800mA)时因导通损耗下降至88%
优化措施:
- 将肖特基二极管换为Si2333(VF=0.35V@1A)
- 电感更换为IHLP-2525CZ-11(DCR=45mΩ)
- 在CTRL引脚添加10nF电容滤除PWM噪声
4.2 动态响应测试
使用电子负载进行0.1A↔0.5A阶跃变化测试:
- 未优化前恢复时间约800μs,超调电压达12%
- 调整PID参数后恢复时间缩短至300μs,超调控制在5%以内
- 进一步在FB引脚添加4.7nF前馈电容,超调降至2%
4.3 电磁干扰对策
初次辐射测试在160MHz处超标8dB,通过以下改进通过认证:
- 在SW引脚串联2.2Ω电阻减缓开关边沿
- 电感外围添加铜箔屏蔽层
- 输出端增加π型滤波器(10Ω+100nF+10Ω)
5. 典型问题排查指南
5.1 启动失败问题
现象:上电后无输出,芯片发热 排查步骤:
- 测量Vin引脚电压是否在3-18V范围内
- 检查EN引脚电平(需>1.5V)
- 用热像仪观察是否有短路元件
- 检查电感与SW引脚是否虚焊
5.2 输出电压震荡
现象:输出有20-50mV周期性波动 解决方案:
- 确认FB分压电阻精度(建议1%)
- 在COMP引脚添加RC补偿(典型值10kΩ+100nF)
- 检查输入电源阻抗(必要时增加47μF电容)
5.3 负载瞬态响应差
优化方向:
- 增加输出电容ESR(可串联0.1Ω电阻)
- 提高PID算法的采样频率至10kHz以上
- 在FB走线旁并联4.7pF电容滤除噪声
这个方案最终在24V/1A输出条件下实现了91%的转换效率,纹波控制在80mVpp以内。实际开发中发现,数字控制相比传统模拟方案最大的优势在于可以动态调整工作参数——例如在检测到输入电压跌落时自动降低开关频率以减少损耗,这是固定功能的模拟IC难以实现的灵活特性。