当前位置: 首页 > news >正文

基于TPS61170与STM32的高效升压电源设计指南

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

在工业控制、医疗设备和便携式仪器等领域,经常需要将低电压(如3.3V或5V)转换为更高的工作电压(如12V/24V)。TPS61170作为TI推出的高压升压转换器,配合STM32L151ZD这类低功耗MCU,可以构建高效可靠的电源解决方案。

TPS61170的关键参数特性:

  • 输入电压范围:3V-18V
  • 输出电压最高可达38V
  • 集成1.2A/40V功率MOSFET
  • 固定1.2MHz开关频率
  • 轻载时采用跳周期模式
  • 6引脚2x2mm QFN封装

STM32L151ZD的优势在于:

  • 超低功耗特性(运行模式仅170μA/MHz)
  • 丰富的外设接口(12位ADC、DAC、比较器等)
  • 128KB Flash+16KB RAM存储配置
  • 硬件PWM生成能力

2. 硬件电路设计要点

2.1 基本升压拓扑设计

典型应用电路包含以下核心元件:

  1. 输入电容:建议使用10μF低ESR陶瓷电容(X5R/X7R)
  2. 功率电感:4.7μH~10μH(如TDK VLS252010ET-4R7M)
    • 饱和电流需>1.5A
    • DCR尽量小(<100mΩ)
  3. 输出二极管:肖特基二极管(如SS34)
    • 反向耐压>40V
    • 正向电流>1A
  4. 输出电容:22μF陶瓷电容+100μF电解电容组合

关键提示:布局时需将功率回路面积最小化,SW引脚到电感的走线应短而宽,FB分压电阻尽量靠近芯片放置。

2.2 输出电压设置

输出电压由FB引脚的分压电阻决定:

Vout = 1.229V × (1 + R1/R2)

推荐R2取10kΩ,则R1计算公式为:

R1 = 10kΩ × (Vout/1.229V - 1)

例如需要24V输出时:

R1 = 10k × (24/1.229 - 1) ≈ 184kΩ

2.3 STM32控制接口设计

通过STM32的GPIO和PWM实现智能控制:

  1. EN引脚控制:使用GPIO直接驱动
    • 高电平(>1.5V)使能
    • 低电平(<0.4V)关闭
  2. CTRL引脚应用:
    • PWM调光:100Hz-1kHz方波
    • Easyscale协议:脉冲宽度编码
  3. 反馈监测:通过ADC检测输出电压

典型连接方式:

// STM32引脚配置示例 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_4; // EN控制 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); // PWM配置 TIM_OC_InitTypeDef sConfigOC = {0}; htim3.Instance = TIM3; htim3.Init.Prescaler = 79; // 1MHz时钟 htim3.Init.CounterMode = TIM_COUNTERMODE_UP; htim3.Init.Period = 999; // 1kHz PWM HAL_TIM_PWM_Init(&htim3); sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 500; // 50%占空比 HAL_TIM_PWM_ConfigChannel(&htim3, &sConfigOC, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);

3. 软件控制策略实现

3.1 基本工作流程

  1. 初始化阶段:
    • 配置GPIO、PWM、ADC
    • 软启动控制(约1ms延时)
  2. 运行阶段:
    • 电压闭环控制
    • 故障检测与保护
  3. 待机模式:
    • 关闭PWM输出
    • 进入低功耗状态

3.2 电压闭环控制算法

采用增量式PID算法实现精密调节:

typedef struct { float Kp, Ki, Kd; float Err[3]; float Output; } PID_TypeDef; void PID_Update(PID_TypeDef *pid, float target, float actual) { pid->Err[2] = pid->Err[1]; pid->Err[1] = pid->Err[0]; pid->Err[0] = target - actual; float delta = pid->Kp*(pid->Err[0]-pid->Err[1]) + pid->Ki*pid->Err[0] + pid->Kd*(pid->Err[0]-2*pid->Err[1]+pid->Err[2]); pid->Output += delta; pid->Output = (pid->Output > 1000) ? 1000 : ((pid->Output < 0) ? 0 : pid->Output); __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, (uint32_t)pid->Output); }

3.3 保护机制实现

  1. 过压保护(OVP):
if(ADC_value > OVP_threshold) { HAL_GPIO_WritePin(EN_GPIO_Port, EN_Pin, GPIO_PIN_RESET); Error_Handler(); }
  1. 过流检测:
    • 通过检测输入电流突变
    • 配合硬件保护(TPS61170内置1.2A限流)
  2. 温度监控:
    • 使用STM32内部温度传感器
    • 或外接NTC电阻

4. 实测性能优化技巧

4.1 效率提升方法

通过实测数据对比不同配置下的效率表现:

条件5V→12V@300mA5V→24V@150mA
普通二极管87%84%
肖特基二极管91%89%
同步整流方案93%91%

优化建议:

  1. 选择低VF的肖特基二极管
  2. 电感DCR控制在50mΩ以内
  3. 适当增大开关频率(需重新补偿)

4.2 纹波抑制方案

实测纹波组成:

  • 开关噪声(高频):20-50mV
  • 低频波动:<10mV

改进措施:

  1. 增加π型滤波(22μH+47μF)
  2. 优化布局减少寄生电感
  3. 采用三端电容接地

4.3 典型问题排查

  1. 启动失败:
    • 检查EN引脚电平
    • 测量SW引脚波形
    • 确认电感未饱和
  2. 输出电压不稳:
    • 检查FB分压电阻
    • 确认补偿网络(RC取值)
    • 测量输入电源质量
  3. 过热问题:
    • 计算功率损耗(Pd≈(1-η)*Pin)
    • 检查散热设计

5. 进阶应用扩展

5.1 多路输出设计

利用TPS61170实现正负电压输出:

  1. SEPIC拓扑生成+24V
  2. 电荷泵产生-24V
  3. 总输出功率需<3W

5.2 数字调压接口

通过Easyscale协议实现:

void Send_Easyscale_Pulse(uint16_t width_us) { HAL_GPIO_WritePin(CTRL_GPIO_Port, CTRL_Pin, GPIO_PIN_SET); HAL_Delay(width_us); HAL_GPIO_WritePin(CTRL_GPIO_Port, CTRL_Pin, GPIO_PIN_RESET); HAL_Delay(100); // 间隔时间 } // 设置输出电压比例(0-100%) void Set_Output_Scale(uint8_t percent) { uint16_t pulse_width = 10 + (percent * 90)/100; // 10-100μs Send_Easyscale_Pulse(pulse_width); }

5.3 电池供电优化

针对锂电应用的特殊处理:

  1. 低压检测(<3.3V时降频)
  2. 动态效率优化:
if(battery_voltage < 3.6) { // 降低PWM频率 htim3.Init.Prescaler = 159; // 500kHz HAL_TIM_Base_Init(&htim3); }

在实际项目中,这种组合方案已经成功应用于:

  • 工业HMI的背光驱动
  • 便携式医疗设备的传感器供电
  • 无人机图传系统的电源模块

调试时建议先用EVM评估板验证设计,再逐步优化参数。特别注意在高电压输出时做好绝缘防护,避免电弧放电损坏器件。

http://www.cnnetsun.cn/news/3246892.html

相关文章:

  • 《无畏契约》6.25更新卡顿闪退问题:从驱动兼容性到系统优化的完整解决方案
  • 基于PIC32和PAM8904的智能声音警报系统设计
  • 液流电推 / 铁路机车蓄电池柜只监测总电压不够?12 路电池电压巡检单元如何实现低成本多路采集?
  • YOLOv8道路裂缝识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置+目标检测)
  • 基于SteamOS理念自建客厅游戏主机:Linux游戏兼容性与性能优化实战
  • 如何在5分钟内绘制专业电路图:Draw.io ECE库完整指南
  • “翡翠河豚”:已知首个AI驱动勒索软件攻击案例,凸显企业加强防御紧迫性
  • 2026快手图片去水印方法,免费手机电脑工具去除自带水印教程
  • 钉钉内部应用搭建 OpenClaw 机器人网关对接手册(含安装包)
  • OpCore Simplify终极指南:15分钟搞定黑苹果EFI配置的智能工具
  • 2026小红书视频图片去水印教程,小红去水印操作方法与工具风险解析
  • ViT 位置编码 (Position Embedding) 4种方案复现:1D/2D/相对/无编码在ImageNet-1K上的3%精度差异分析
  • Java 8/11/17/21 4大LTS版本性能对比:GC、启动速度与内存占用实测
  • 【蚌埠学院本科毕业论文】基于Spring Boot的社区家政服务系统设计与实现
  • STM32F405RG驱动CMT-8540S-SMT蜂鸣器实战指南
  • 面对小众场景的目标检测联合智能体零样本检测可行性分析
  • 太原环保岗亭
  • 从FLOPs到训练时间:估算LLaMA-2 7B模型在8xA100上所需3.5天
  • 用户视角—功能点方法的底层思维
  • 免费电子课本下载终极指南:3分钟掌握智慧教育平台PDF批量获取技巧
  • Burp Suite Intruder攻击类型详解:从Sniper到Cluster Bomb的实战指南
  • YOLOv8 8.0 与 OpenVINO 2024.1 性能对比:CPU/GPU FPS 实测分析
  • AI与大模型新闻日报 | 2026-07-08
  • Claude Code 实战:AI 结对编程如何真正提效-0620
  • SPI-NAND vs SPI-NOR Linux驱动对比:从MTD架构到DTS配置的5点核心差异
  • Java后端高效学习路线:从基础到AI应用的系统化实战指南
  • 《创世战车》10K战力配装:战术干扰与战场控制实战指南
  • 解决iOS开发调试难题:Xcode开发者磁盘映像一站式解决方案
  • 游戏加载闪退问题排查:从资源完整性到硬件驱动的解决框架
  • 2026跨境电商新手必看:避开这8个坑半年赚20万的实操经验复盘