基于TPS61170的高效DC-DC升压转换器设计与实现

1. 项目背景与核心器件选型

在工业控制、医疗设备和实验室仪器等领域,经常需要将较低的直流电压转换为更高的直流电压。传统方案采用分立元件搭建升压电路,但存在效率低、体积大、稳定性差等问题。我们选择了TI的TPS61170作为核心升压芯片,搭配Microchip的PIC32MZ2048EFM144微控制器,构建一个高效可靠的DC-DC升压转换系统。

TPS61170是一款集成1.2A开关管的单片升压转换器,具有以下突出特性:

  • 宽输入电压范围(3V-18V)
  • 高达38V的输出电压
  • 1.2MHz固定开关频率
  • 93%的峰值效率
  • 6引脚2x2mm QFN封装

PIC32MZ2048EFM144则是Microchip旗下高性能32位MCU,具备:

  • 200MHz主频的MIPS32® M-Class内核
  • 2MB Flash和512KB SRAM
  • 丰富的外设接口(PWM、ADC、DAC等)
  • 144引脚封装提供充足IO

2. 硬件电路设计与关键参数计算

2.1 升压拓扑基础原理

升压转换器(Boost Converter)通过控制开关管的通断,将输入电压提升到更高水平。其核心工作原理是:

  1. 开关管导通时,电感储能
  2. 开关管关断时,电感释放能量,与输入电压叠加后通过二极管向输出电容充电

输出电压与输入电压的关系为: Vout = Vin / (1 - D) 其中D为占空比

2.2 关键元件选型与计算

电感选择

电感值计算公式: L = (Vin × D) / (ΔIL × fsw) 其中:

  • ΔIL通常取最大输出电流的20%-40%
  • fsw为开关频率(1.2MHz)

例如:Vin=5V, Vout=24V, Iout=150mA时: D = 1 - (Vin/Vout) = 0.79 取ΔIL=60mA(40% of Iout) L = (5×0.79)/(0.06×1.2×10⁶) ≈ 55μH

建议选择饱和电流大于1.5A的屏蔽电感,如TDK VLS252010ET-560M。

输出电容选择

考虑纹波电压要求(通常<1%Vout): Cout ≥ Iout × D / (fsw × ΔVout) 对于24V输出,ΔVout=240mV: Cout ≥ 0.15×0.79/(1.2×10⁶×0.24) ≈ 0.41μF

实际选用10μF/50V陶瓷电容以留有余量。

二极管选择

需满足:

  • 反向电压 > Vout
  • 正向电流 > Iout
  • 快速恢复特性

推荐使用肖特基二极管如B340A(40V/3A)。

3. PCB布局与EMI优化

3.1 关键布局原则

  1. 功率回路最小化:SW引脚→电感→二极管→输出电容→GND→芯片GND
  2. 模拟信号隔离:FB反馈走线远离开关节点
  3. 散热处理:充分利用PCB铜箔散热

3.2 具体实施要点

  • 使用4层板设计:顶层信号、内层GND、内层电源、底层混合
  • 开关节点面积控制在最小
  • FB分压电阻靠近芯片放置
  • 输入输出电容尽量靠近相应引脚

注意:错误的布局会导致效率下降5-10%,甚至引发振荡。实测显示,优化布局后系统效率从85%提升至91%。

4. 软件控制策略实现

4.1 PIC32MZ配置流程

// 初始化PWM模块 void PWM_Init(void) { OC1CON = 0; // 关闭OC1模块 OC1R = 0; // 初始占空比0 OC1RS = 200; // 周期值 OC1CON = 0x0006; // PWM模式,无故障保护 } // 设置PWM占空比 void Set_DutyCycle(float duty) { if(duty > 0.9) duty = 0.9; // 限制最大占空比 OC1RS = (uint16_t)(200 * duty); }

4.2 电压闭环控制算法

采用增量式PID算法实现输出电压精确调节:

typedef struct { float Kp, Ki, Kd; float prev_error; float integral; } PID_Controller; float PID_Update(PID_Controller* pid, float error) { float derivative = error - pid->prev_error; pid->integral += error; pid->prev_error = error; return pid->Kp*error + pid->Ki*pid->integral + pid->Kd*derivative; }

5. 实测性能与优化建议

5.1 效率测试数据

输入电压(V)输出电压(V)负载电流(mA)效率(%)
51210089.2
51230091.5
12245088.7
122415090.3

5.2 常见问题解决方案

  1. 启动失败:检查EN引脚电平,确保软启动电容(典型值10nF)正常
  2. 输出电压不稳:优化FB分压电阻布局,检查补偿网络
  3. 芯片过热:确认电感饱和电流足够,检查PCB散热设计

6. 进阶应用扩展

6.1 多路输出实现

利用TPS61170的Easyscale™协议,通过CTRL引脚动态调节输出电压:

// 发送Easyscale命令 void Send_Easyscale(uint8_t code) { for(int i=0; i<8; i++) { if(code & (1<<(7-i))) { // 发送逻辑1:高脉冲宽度1.5us CTRL_PIN = 1; __delay_us(1.5); CTRL_PIN = 0; } else { // 发送逻辑0:高脉冲宽度0.5us CTRL_PIN = 1; __delay_us(0.5); CTRL_PIN = 0; } __delay_us(2); // 位间隔 } }

6.2 输入欠压保护

利用PIC32MZ的ADC监控输入电压:

#define VIN_THRESHOLD 3.3 // 欠压阈值 void ADC_Check(void) { float vin = ADC_Read(AN0) * 3.3 / 1024; if(vin < VIN_THRESHOLD) { EN_PIN = 0; // 关闭转换器 } }

在实际项目中,我发现合理设置软启动时间能显著降低输入端的冲击电流。对于容性负载较大的场合,建议将软启动电容增加到22nF,使启动时间延长到约2ms,可有效避免输入电压跌落问题。