基于TPS61170与PIC32MZ的高效DC-DC升压转换设计
1. 项目背景与核心器件选型
在工业控制、医疗设备和实验室仪器等领域,经常需要将较低的直流电压转换为更高的直流电压。传统方案采用分立元件搭建,存在效率低、体积大、稳定性差等问题。而采用专用DC-DC升压转换芯片配合微控制器,能实现更高效可靠的解决方案。
TPS61170是TI推出的一款高压升压转换器,具有以下突出特性:
- 输入电压范围3-18V,输出最高可达38V
- 集成1.2A/40V的功率MOSFET
- 固定1.2MHz开关频率
- 轻载时采用跳周期模式提升效率
- 内置软启动和热保护功能
PIC32MZ1024EFK144则是Microchip推出的高性能32位MCU,特点包括:
- 200MHz主频的MIPS32® M-Class内核
- 1MB Flash和256KB SRAM
- 丰富的外设接口(USB, CAN, SPI等)
- 144引脚TQFP封装便于布线
这两款器件的组合,特别适合需要高精度控制的高压电源应用场景。
2. 硬件电路设计要点
2.1 升压转换器基本拓扑
TPS61170支持Boost、SEPIC等多种拓扑结构。本设计采用最典型的Boost升压电路,其基本工作原理是:
- 开关管导通时,电感储能
- 开关管关断时,电感能量通过二极管向输出电容转移
- 通过PWM占空比调节输出电压
输出电压与输入电压的关系为: Vout = Vin / (1 - D) 其中D为占空比
2.2 关键外围元件选型
电感选择:
- 推荐值:4.7μH~10μH
- 饱和电流需大于峰值开关电流
- 低DCR以减小损耗
- 本例选用Coilcraft的MSS1048-473ML 4.7μH电感
输出电容:
- 低ESR陶瓷电容,建议22μF以上
- 耐压需高于最大输出电压
- 本例采用2个10μF/50V X7R电容并联
二极管选择:
- 快恢复或肖特基二极管
- 反向耐压>Vout
- 本例选用B340A(40V/3A肖特基)
2.3 PCB布局注意事项
功率回路面积最小化:
- 输入电容尽量靠近VIN和GND引脚
- 电感、二极管、输出电容形成紧凑回路
散热设计:
- 芯片底部散热焊盘必须良好接地
- 必要时增加铜箔面积或散热过孔
信号走线隔离:
- FB反馈走线远离开关节点
- 模拟地和功率地单点连接
3. 软件控制实现
3.1 PIC32MZ初始化配置
// 系统时钟配置 #pragma config FPLLIDIV = DIV_2 #pragma config FPLLMUL = MUL_20 #pragma config FPLLODIV = DIV_2 #pragma config POSCMOD = HS #pragma config FNOSC = PRIPLL // PWM模块配置 void PWM_Init(void) { OC1CON = 0; // 关闭OC1模块 OC1R = 0; // 初始占空比0 OC1RS = 1000; // 周期值 OC1CONbits.OCTSEL = 1; // 使用Timer3 OC1CONbits.OCM = 6; // PWM模式 T3CONbits.TCKPS = 0; // 预分频1:1 PR3 = 2000; // PWM频率=100kHz T3CONbits.ON = 1; // 启动Timer3 OC1CONbits.ON = 1; // 启动OC1 }3.2 电压闭环控制算法
采用增量式PID算法实现输出电压的精确调节:
typedef struct { float Kp, Ki, Kd; float lastError, prevError; float integral; } PID_Controller; float PID_Update(PID_Controller* pid, float setpoint, float measurement) { float error = setpoint - measurement; // 比例项 float Pout = pid->Kp * error; // 积分项(带抗饱和) pid->integral += error; if(pid->integral > 1000) pid->integral = 1000; if(pid->integral < -1000) pid->integral = -1000; float Iout = pid->Ki * pid->integral; // 微分项 float derivative = error - pid->lastError; float Dout = pid->Kd * derivative; pid->prevError = pid->lastError; pid->lastError = error; return Pout + Iout + Dout; }3.3 保护功能实现
- 过压保护:
if(ADC_Read(VOUT_CH) > OVER_VOLTAGE_THRESHOLD) { PWM_SetDuty(0); // 立即关闭输出 Fault_Handler(); }- 过流保护:
if(ADC_Read(IOUT_CH) > OVER_CURRENT_THRESHOLD) { PWM_RampDown(); // 软关断 Fault_Handler(); }4. 调试与优化技巧
4.1 启动问题排查
现象:无法正常启动,输出电压振荡 可能原因及解决方案:
- 输入电容不足 → 增加输入电容值
- 软启动时间过短 → 调整CTRL引脚电容
- 电感饱和 → 更换更大饱和电流的电感
4.2 效率优化措施
轻载效率提升:
- 启用芯片的跳周期模式
- 降低开关频率(通过CTRL引脚调节)
重载损耗降低:
- 选择低VF的肖特基二极管
- 使用低DCR电感
- 优化PCB布局减小寄生电阻
4.3 环路补偿调整
TPS61170需要外部补偿网络,典型配置为:
- 补偿电容(Ccomp): 1nF
- 补偿电阻(Rcomp): 10kΩ
调试步骤:
- 用电子负载施加阶跃变化
- 观察输出电压的恢复波形
- 调整Rcomp/Ccomp直到获得临界阻尼响应
5. 实测数据与性能分析
5.1 不同输入电压下的效率曲线
| 输入电压(V) | 输出24V/100mA效率 | 输出24V/500mA效率 |
|---|---|---|
| 5 | 89% | 85% |
| 12 | 92% | 90% |
| 15 | 93% | 91% |
5.2 负载调整率测试
保持输入12V不变,改变负载电流:
| 负载电流(mA) | 输出电压(V) | 波动率(%) |
|---|---|---|
| 100 | 24.02 | +0.08 |
| 300 | 23.98 | -0.08 |
| 500 | 23.92 | -0.33 |
5.3 动态响应测试
使用电子负载进行50%-75%-50%的负载阶跃变化:
- 恢复时间:<200μs
- 过冲电压:<1.5%
6. 进阶应用扩展
6.1 多路输出设计
通过增加变压器绕组,可从单一TPS61170获得多路输出:
- 主输出:24V/500mA (直接Boost)
- 辅助输出:-12V/100mA (增加负压绕组)
6.2 数字电位器替代FB电阻
传统方案使用电阻分压网络设置输出电压。改进方案:
- 采用数字电位器(如MCP4018)替代上分压电阻
- 通过I2C动态调整输出电压
- 实现软件可编程的电压输出
6.3 与上位机通信
利用PIC32MZ的USB或UART接口:
- 实时上传电压、电流数据
- 接收并执行电压设置命令
- 故障信息记录与上传
在实际项目中,这种高压DC-DC转换方案已经成功应用于:
- 工业PLC的模拟量输出模块
- 实验室可编程电源
- 医疗设备的高压驱动电路
调试过程中发现,PCB布局对稳定性影响极大。最初版本因功率回路面积过大,导致输出电压有约50mV的开关噪声。重新优化布局后,噪声降低到10mV以内。另外,轻载时的跳周期模式会使输出电压纹波增大,对纹波敏感的应用可以适当增加输出电容或禁用该模式。