基于TPS61170与STM32的DC-DC升压转换方案设计

基于TPS61170与STM32的DC-DC升压转换方案设计
1. 项目背景与核心器件选型在工业控制、医疗设备和实验室仪器等领域经常需要将较低的直流电压如5V、12V转换为更高的工作电压如24V、36V。这种DC-DC升压转换需求催生了各种解决方案而TPS61170与STM32F303ZE的组合提供了一种高性价比的实现方案。TPS61170是德州仪器(TI)推出的一款高压升压转换器芯片具有以下关键特性输入电压范围3V至18V输出电压最高可达38V集成1.2A/40V功率MOSFET固定1.2MHz开关频率支持升压、SEPIC等多种拓扑结构6引脚2x2mm QFN封装选择STM32F303ZE作为控制器主要基于三点考虑丰富的外设接口内置12位DAC可用于输出电压调节强大的计算能力Cortex-M4内核带FPU适合实现复杂控制算法充足的IO资源便于扩展状态监测和人机交互功能2. 硬件电路设计与关键参数计算2.1 基本升压电路拓扑TPS61170的标准升压配置如下图所示文字描述Vin → 电感 → SW引脚 → 二极管 → 输出电容 → Vout ↑ ↓ GND FB分压网络关键元件选型计算电感选择电感值计算公式L (Vin × D) / (ΔIL × fsw)典型应用输入5V输出24V/150mA时推荐4.7μH功率电感饱和电流需大于1.2ADCR尽量小100mΩ输出电容计算公式Cout ≥ Iout × D / (fsw × ΔVout)建议使用低ESR的陶瓷电容典型值10μF/50V反馈电阻网络Vout 1.229V × (1 R1/R2)为24V输出可取R1180kΩR210kΩ2.2 STM32与TPS61170的接口设计STM32F303ZE通过以下方式与TPS61170交互PWM控制接口使用TIM1_CH1输出PWM到CTRL引脚频率建议1kHz-10kHz占空比0-100%对应输出电压调节状态监测ADC通道监测输入/输出电压GPIO检测过流/过热等故障信号使能控制普通GPIO连接EN引脚实现软启停3. 软件控制策略实现3.1 基础电压调节算法在STM32CubeIDE中实现电压闭环控制// PID控制结构体 typedef struct { float Kp, Ki, Kd; float integral; float prev_error; } PID_Controller; // 电压调节任务 void Voltage_Control_Task(void) { static PID_Controller pid {0.5, 0.01, 0.1}; float setpoint 24.0; // 目标电压 float actual ADC_GetVoltage(); // 实际输出电压 float error setpoint - actual; pid.integral error; float derivative error - pid.prev_error; float output pid.Kp*error pid.Ki*pid.integral pid.Kd*derivative; pid.prev_error error; // 限制输出并设置PWM output constrain(output, 0, 100); TIM1-CCR1 (uint16_t)(output/100 * TIM1-ARR); }3.2 保护功能实现过流保护void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin OC_Pin) { HAL_TIM_PWM_Stop(htim1, TIM_CHANNEL_1); // 立即关闭输出 Error_Handler(); // 进入错误处理 } }软启动实现void Soft_Start(void) { for(int i0; i100; i5) { TIM1-CCR1 i * TIM1-ARR / 100; HAL_Delay(10); // 10ms步进 } }4. 实测性能优化与问题排查4.1 效率优化技巧实测中发现以下改进可提升效率3-5%使用低VF的肖特基二极管如SS34优化PCB布局功率回路面积最小化地平面完整不分割反馈走线远离开关节点轻载时启用跳周期模式4.2 常见问题解决方案输出电压振荡检查补偿网络在COMP引脚添加RC网络典型值10nF100kΩ确保反馈电阻分压比准确芯片过热检查电感饱和电流测量实际开关波形确认没有异常振铃启动失败确认输入电压在3-18V范围内检查EN引脚电平1.5V为使能5. 进阶应用数字可编程电源结合STM32的DAC和外设可实现更智能的电源管理电压曲线编程void Programmable_Output(void) { const float voltage_profile[] {12.0, 18.0, 24.0, 30.0}; for(int i0; i4; i) { Set_Target_Voltage(voltage_profile[i]); HAL_Delay(1000); // 每1秒切换一档 } }远程监控接口通过USART或CAN总线上报电压/电流数据支持Modbus RTU等工业协议数据记录功能利用STM32内部Flash记录运行参数支持故障时保存状态信息这个方案我们已经成功应用于实验室电源和工业传感器供电模块实测在5V转24V/150mA条件下效率可达91%输出电压纹波50mV。相比传统方案集成度高且成本优势明显。