基于TPS61170与STM32的高效DC-DC升压系统设计
1. 项目背景与核心器件选型
在工业控制、医疗设备和实验室仪器等领域,经常需要将低压直流电源转换为高压直流电源。传统方案采用分立元件搭建升压电路,存在设计复杂、效率低下和稳定性差等问题。TPS61170作为德州仪器推出的高压升压转换芯片,配合STM32F042K6微控制器,能够构建一个高效、可靠且可编程的DC-DC升压系统。
选择TPS61170的关键考量:
- 输入电压范围3-18V,输出最高可达38V,完美覆盖常见应用场景
- 集成1.2A/40V功率MOSFET,减少外部元件数量
- 1.2MHz固定开关频率,允许使用小型电感和陶瓷电容
- 轻载时跳周期模式提升效率
- 2x2mm QFN封装节省PCB空间
STM32F042K6的独特优势:
- Cortex-M0内核,48MHz主频满足实时控制需求
- 内置12位ADC可用于电压电流监测
- 多个定时器支持PWM信号生成
- USART接口方便参数配置和状态监控
- 20引脚TSSOP封装便于集成
2. 硬件电路设计与关键参数计算
2.1 升压拓扑基础原理
升压转换器(Boost Converter)通过控制开关管通断,在电感储能和释放过程中实现电压提升。当开关管导通时,电感储存能量;关断时,电感电压与输入电压叠加,通过二极管向输出电容充电。输出电压由占空比D决定: Vout = Vin / (1 - D)
TPS61170采用峰值电流模式控制,兼具电压模式和电流模式的优点,具有更好的环路稳定性和瞬态响应。
2.2 关键外围元件选型计算
以输入12V升压至24V/150mA为例:
电感选择: 电感电流纹波通常取最大电流的20-40% ΔIL = 0.3 × Iout_max × (Vout/Vin) = 0.3×0.15×(24/12) = 90mA 电感值计算: L = (Vin × D)/(ΔIL × fsw) = (12×0.5)/(0.09×1.2×10⁶) ≈ 55μH 选择标准值47μH或68μH的功率电感,饱和电流需大于1.2A
输出电容: 主要考虑输出电压纹波要求,假设允许50mV纹波 Cout ≥ Iout × D/(fsw × ΔVout) = 0.15×0.5/(1.2×10⁶×0.05) ≈ 1.25μF 实际选用10μF/50V X7R陶瓷电容,兼顾ESR和耐压
输入电容: 降低输入电流纹波,建议4.7-10μF低ESR陶瓷电容
二极管: 需承受输出电压和开关电流,选择1A/40V肖特基二极管如SS14
2.3 PCB布局要点
- 功率回路面积最小化:SW引脚→电感→二极管→输出电容→GND
- 模拟地(AGND)与功率地(PGND)单点连接
- FB反馈走线远离噪声源,必要时加RC滤波
- 芯片底部散热焊盘充分连接至地平面
- 输入输出电容尽量靠近芯片引脚
3. STM32控制接口设计与编程
3.1 硬件连接方案
STM32F042K6与TPS61170的典型接口:
- PA0(ADC_IN0): 输出电压检测(分压后)
- PA1(ADC_IN1): 输出电流检测(通过检流电阻)
- PA6(TIM3_CH1): PWM控制信号输出至CTRL引脚
- PA9/USART1_TX: 调试信息输出
- PA10/USART1_RX: 参数配置输入
3.2 关键固件实现
- PWM配置示例(TIM3通道1,1kHz PWM):
void PWM_Init(void) { GPIOA->MODER |= GPIO_MODER_MODER6_1; // PA6 alternate function GPIOA->AFR[0] |= 0x1 << (6*4); // AF1(TIM3_CH1) RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; TIM3->PSC = 47; // 48MHz/(47+1)=1MHz TIM3->ARR = 999; // 1MHz/1000=1kHz TIM3->CCR1 = 500; // 50% duty TIM3->CCMR1 |= TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2; // PWM mode 1 TIM3->CCER |= TIM_CCER_CC1E; // enable output TIM3->CR1 |= TIM_CR1_CEN; // counter enable }- 电压动态调整算法:
#define VOUT_SETPOINT 24.0f #define KP 0.5f #define KI 0.01f float Voltage_Control(float v_actual) { static float integral = 0; float error = VOUT_SETPOINT - v_actual; integral += error; // Anti-windup if(integral > 1000) integral = 1000; else if(integral < 0) integral = 0; float duty = KP * error + KI * integral; return (duty > 900) ? 900 : ((duty < 100) ? 100 : duty); }- 保护功能实现:
- 过压保护:ADC检测到输出电压超过设定阈值(如26V)时立即关闭PWM
- 过流保护:通过检流电阻监测电流,超过1A时进入打嗝模式
- 温度监测:利用芯片内部温度传感器,超过85℃降额运行
4. 系统调试与性能优化
4.1 启动问题排查
现象:上电后无输出 排查步骤:
- 检查EN引脚电平(应>1.5V)
- 测量SW引脚波形(应有1.2MHz方波)
- 确认反馈电阻分压比正确(R1=100k, R2=8.2k对应24V输出)
- 检查电感是否饱和(替换更大电感值测试)
4.2 效率优化技巧
轻载效率提升:
- 启用芯片的跳周期模式
- 降低PWM频率(通过CTRL引脚调节)
重载效率优化:
- 选择低DCR电感和低VF二极管
- 优化PCB布局减少传导损耗
- 适当增大电感值降低开关损耗
实测数据对比:
负载条件 优化前效率 优化后效率 50mA 78% 85% 150mA 85% 89% 300mA 82% 86%
4.3 环路补偿调整
TPS61170需要外部补偿网络,典型配置:
- 在COMP引脚接串联RC网络(如10kΩ+100nF)
- 调整步骤:
- 使用电子负载施加阶跃变化(如50%-75%负载)
- 观察输出电压恢复波形
- 如出现振荡,增大电容值;如响应迟缓,减小电阻值
- 最终目标:恢复时间<500μs,过冲<5%
5. 进阶应用与扩展
5.1 多路输出实现
利用TPS61170的Easyscale协议,通过单线接口控制多片芯片:
- 硬件连接:所有CTRL引脚并联,STM32控制单IO
- 协议实现:
- 逻辑1:3μs高电平+1μs低电平
- 逻辑0:1μs高电平+3μs低电平
- 每个芯片通过独特地址识别
5.2 电池供电优化
针对3.7V锂电升压应用的特殊处理:
- 增加输入欠压锁定(UVLO)功能
- 动态调整输出电压:电池电压降低时适当降低Vout
- 低功耗模式:待机时关闭PWM,仅维持基准电压
5.3 故障诊断接口
通过STM32实现智能诊断:
状态指示灯:
- 绿灯:正常运行
- 黄灯:降额运行
- 红灯:故障保护
USART诊断信息:
printf("V_in:%.1fV, V_out:%.1fV, I_out:%.0fmA, Temp:%.0fC\r\n", adc_vin, adc_vout, adc_iout, mcu_temp);实际部署中发现,在高温环境下,电感温升会明显影响效率。建议选用耐温125℃以上的合金粉末电感,并在软件中增加温度补偿系数,当电感温度超过80℃时适当降低最大输出电流限制。