1. 项目背景与核心器件选型
在嵌入式系统开发中,经常需要将低电压电源转换为更高电压以满足特定外设需求。比如驱动LED灯带、为传感器供电或控制电机等场景。TPS61170作为德州仪器推出的高压升压转换器,配合STM32F417ZG这类高性能MCU,能够构建灵活可调的DC-DC电源解决方案。
选择TPS61170的关键考量是其集成的1.2A/40V功率MOSFET,这使其在2x2mm的极小封装内实现了高达38V的输出能力。其1.2MHz固定开关频率允许使用小型电感和陶瓷电容,特别适合空间受限的嵌入式应用。而STM32F417ZG的PWM输出功能,则为我们提供了动态调节输出电压的手段。
2. 硬件电路设计详解
2.1 基础升压拓扑搭建
典型应用电路中,需要重点配置以下元件:
- 输入电容:建议使用10μF低ESR陶瓷电容(X5R/X7R材质)并联0.1μF高频去耦电容
- 功率电感:选择4.7μH~10μH饱和电流≥1.5A的屏蔽电感,如TDK VLS2010系列
- 输出二极管:需选用40V以上肖特基二极管,MBRS340T3是不错选择
- 反馈电阻:根据公式R2=R1*(Vout/1.229-1)计算,1.229V是FB引脚基准电压
关键提示:布局时需将输入电容尽可能靠近芯片VIN和GND引脚,功率回路面积要最小化以降低EMI干扰。
2.2 STM32接口设计
STM32F417ZG通过TIM1或TIM8产生PWM信号连接至TPS61170的CTRL引脚。配置要点:
- 使用高级定时器的互补PWM输出通道
- 设置PWM频率在1kHz~10kHz范围(超出此范围可能影响调节线性度)
- 通过DMA实现占空比的无抖动调整
典型初始化代码片段:
TIM_OC_InitTypeDef sConfigOC = {0}; htim1.Instance = TIM1; htim1.Init.Prescaler = 0; htim1.Init.CounterMode = TIM_COUNTERMODE_UP; htim1.Init.Period = 999; // 1kHz PWM @ 1MHz时钟 htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; HAL_TIM_PWM_Init(&htim1); sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 500; // 初始50%占空比 sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);3. 软件控制策略实现
3.1 电压闭环控制算法
虽然TPS61170本身没有数字接口,但通过PWM调节CTRL引脚可以实现输出电压的动态控制。具体原理是:
- CTRL引脚接收的PWM占空比与内部基准电压成反比
- 占空比每增加1%,基准电压降低约0.8mV
- 最终输出电压Vout=1.229*(1+R1/R2)/(1-D/100)
实现PID控制的示例结构体:
typedef struct { float Kp, Ki, Kd; float integral; float prev_error; } PID_Controller; float PID_Update(PID_Controller* pid, float setpoint, float measurement) { float error = setpoint - measurement; pid->integral += error; float derivative = error - pid->prev_error; pid->prev_error = error; return pid->Kp*error + pid->Ki*pid->integral + pid->Kd*derivative; }3.2 保护功能实现
利用STM32的ADC监测关键参数:
- 输入电压(防止电池过放)
- 输出电流(通过检流电阻)
- 芯片温度(NTC热敏电阻)
异常处理流程:
- 触发ADC看门狗阈值中断
- 立即关闭PWM输出
- 通过EN引脚禁用TPS61170
- 记录故障日志到Flash
4. 实测性能优化技巧
4.1 效率提升方法
通过实测发现以下优化手段:
- 轻载时在FB引脚增加10kΩ电阻到地,强制进入跳周期模式
- 电感选择DCR在50mΩ以下的型号可提升2-3%效率
- 输出电容使用多个1210封装10μF并联比单个大电容效果更好
4.2 典型问题排查
常见故障现象及对策:
输出电压振荡:
- 检查补偿网络(通常为FB到地接100pF+10kΩ串联)
- 确认电感未饱和(测量开关节点波形)
PWM调节不线性:
- 确保PWM信号上升时间<100ns
- 在CTRL引脚添加100pF滤波电容
启动失败:
- 检查EN引脚时序(需在VIN稳定后至少1ms使能)
- 验证软启动电容(典型值4.7nF)
5. 进阶应用扩展
5.1 多拓扑配置方案
TPS61170支持多种拓扑变形:
- SEPIC结构:增加耦合电感可实现升降压
- 负压输出:配合电荷泵产生-5V/-12V等负电压
- 多路输出:用变压器绕组实现隔离输出
5.2 与STM32高级功能结合
利用STM32F417ZG的硬件特性可实现:
- 通过HRTIM实现纳秒级PWM分辨率
- 利用DFSDM模块做电流数字滤波
- 使用FMC接口连接外部ADC提升采样率
我在实际项目中验证,这套方案在24V/0.5A输出条件下可实现92%的峰值效率,PWM调节分辨率达到0.1V。特别需要注意的是,当输入电压接近输出电压时,要避免器件进入直通模式,可通过在软件中限制最小占空比来预防。