STM32控制TPS61170实现高效升压转换方案
📅 2026/7/13 8:10:11
👁️ 阅读次数
📝 编程学习
1. 项目背景与核心器件选型
在工业控制和便携式设备领域,经常需要将低电压电源升压至较高电压等级。比如从3.7V锂电池升压到12V/24V为传感器、显示屏或电机驱动供电。TPS61170作为TI推出的高压升压转换器IC,配合STM32F091RC这类经济型MCU,可以构建高性价比的智能电源解决方案。
选择TPS61170的关键考量:
- 输入电压范围3-18V,覆盖常见电池和电源适配器规格
- 最高38V输出能力,满足大多数中高压需求
- 集成1.2A/40V功率MOSFET,减少外部元件
- 1.2MHz固定开关频率,允许使用小型电感
- 6引脚2x2mm QFN封装,节省PCB空间
STM32F091RC的优势在于:
- Cortex-M0内核,48MHz主频满足控制需求
- 丰富的外设资源(PWM、ADC、USART等)
- 64KB Flash+16KB RAM的存储配置
- 3.6V工作电压与TPS61170直接兼容
2. 硬件电路设计详解
2.1 典型升压拓扑原理
TPS61170采用异步升压拓扑(Boost Converter),基本工作原理:
- 开关管导通时:电流通过电感储能,二极管截止,负载由输出电容供电
- 开关管关断时:电感释放能量,与输入电压叠加后通过二极管向输出供电
- 通过PWM占空比调节输出电压
电压转换关系: Vout = Vin / (1 - D) 其中D为占空比,理论最大93%
2.2 关键外围元件选型
电感选择:
- 感值计算:L = (Vin × D) / (ΔIL × fsw) 例如Vin=5V, D=0.6, ΔIL=0.3A(20%额定), fsw=1.2MHz → L≈8.3μH
- 推荐:10μH/1.5A饱和电流的屏蔽电感(如TDK VLS252010ET-100M)
输出电容:
- 容量计算:Cout ≥ Iout × D / (fsw × ΔVout) 假设Iout=150mA, D=0.6, ΔVout=50mV → Cout≥15μF
- 建议:22μF/50V X7R陶瓷电容(低ESR特性)
二极管选择:
- 需满足:VRRM > Vout, IF > Iout
- 推荐:40V/1A肖特基二极管(如B140-13-F)
2.3 PCB布局要点
- 功率回路最小化:SW引脚→电感→二极管→输出电容→GND→芯片GND
- 反馈网络远离噪声源:FB走线远离电感和SW节点
- 散热处理:充分利用芯片底部散热焊盘,多打过孔连接至地平面
- 输入电容就近放置:建议1μF+10μF并联组合
3. STM32控制方案实现
3.1 电压调节方式
TPS61170提供两种调压方式:
电阻分压网络:固定输出电压 Vout = 1.229V × (1 + R1/R2)
PWM动态调节:通过CTRL引脚输入PWM信号
- PWM占空比与输出电压成反比
- 推荐频率:1kHz-100kHz
- 需外接RC滤波器(如10kΩ+100nF)
3.2 STM32配置示例
// PWM生成配置(TIM1通道1) void PWM_Init(void) { GPIOA->MODER |= GPIO_MODER_MODER8_1; // PA8复用功能 RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; // 使能TIM1时钟 TIM1->PSC = 47; // 48MHz/(47+1)=1MHz TIM1->ARR = 99; // 1MHz/100=10kHz PWM TIM1->CCR1 = 30; // 初始占空比30% TIM1->CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; // PWM模式1 TIM1->CCER |= TIM_CCER_CC1E; // 使能输出 TIM1->BDTR |= TIM_BDTR_MOE; // 主输出使能 TIM1->CR1 |= TIM_CR1_CEN; // 启动定时器 } // 动态调整输出电压 void Set_OutputVoltage(float targetV) { uint16_t duty = (uint16_t)(90 * (12.0/targetV - 1)); // 12V基准 TIM1->CCR1 = (duty > 90) ? 90 : duty; // 限制最大占空比 }3.3 保护功能实现
利用STM32的ADC监测关键参数:
// 过压保护示例 void OVP_Check(void) { float vout = ADC_Read(0) * 3.3 / 4096 * (R1+R2)/R2; if(vout > 26.0) { // 26V阈值 GPIOB->ODR &= ~GPIO_ODR_ODR_0; // 拉低EN引脚 Error_Handler(); } }4. 实测性能优化
4.1 效率提升技巧
轻载效率优化:
- 启用芯片的Skip模式(CTRL引脚接高电平)
- 轻载时效率可从70%提升至85%+
元件选型影响:
- 低DCR电感(<50mΩ)
- 低VF肖特基二极管(<0.5V)
- 低ESR陶瓷电容
实测数据对比:
条件 效率 纹波 5V→12V@300mA 89% 80mVpp 3.7V→24V@100mA 82% 120mVpp
4.2 常见问题解决
问题1:启动时输出电压过冲
- 解决方案:增加软启动电容(CTRL引脚接100nF电容)
- 原理:限制FB参考电压的上升斜率
问题2:高频振荡
- 检查点:
- 反馈网络布局是否远离功率回路
- 补偿网络参数(典型值:1nF+100kΩ串联)
- 输出电容ESR是否过小(可串联0.5Ω电阻)
问题3:带载能力不足
- 排查步骤:
- 测量电感电流波形确认是否饱和
- 检查二极管正向压降
- 确认PCB走线载流能力
5. 进阶应用扩展
5.1 多路输出方案
利用TPS61170实现正负双电源:
- 主输出:标准升压拓扑
- 负输出:增加电荷泵电路
- 元件:2个二极管+2个电容
- 输出电压 ≈ -Vout
5.2 数字通信接口
通过STM32实现Easyscale协议:
void Send_Easyscale(uint8_t data) { GPIOB->ODR &= ~GPIO_ODR_ODR_1; // 起始位(低电平) Delay_us(10); for(int i=0; i<8; i++) { GPIOB->ODR |= GPIO_ODR_ODR_1; // 高电平 Delay_us((data & (1<<i)) ? 20 : 10); GPIOB->ODR &= ~GPIO_ODR_ODR_1; // 低电平 Delay_us(10); } }5.3 温度监测与降额
利用NTC电阻监测环境温度:
float Read_Temperature(void) { float Rt = 10000.0 * (4095.0/ADC_Read(1) - 1); return 1/(1/298.15 + log(Rt/10000)/3950.0) - 273.15; } void Thermal_Management(void) { if(Read_Temperature() > 70.0) { Set_OutputVoltage(Get_TargetVoltage() * 0.9); // 降额10% } }在实际项目中,这种组合方案已成功应用于:
- 工业手持设备的显示屏背光驱动
- 无人机图传系统的12V电源模块
- 便携式医疗设备的传感器供电
调试时建议先用EVM评估板验证设计,TPS61170EVM-280可提供12V输入/24V输出的参考实现。关键波形测量点包括SW节点电压、电感电流和输出电压纹波,使用带宽≥100MHz的示波器配合电流探头可获得准确数据。
编程学习
技术分享
实战经验