1. 项目背景与核心器件选型
在电力电子设计中,DC-DC升压转换是常见需求,尤其当需要从低压电源(如锂电池或USB端口)产生较高工作电压(如24V或36V)时。本项目采用TI的TPS61170作为核心升压芯片,配合PIC18F86J50微控制器实现智能化控制,这种组合在工业控制、测试设备和新能源领域有广泛应用。
TPS61170的关键参数决定了其适用场景:
- 输入电压范围:3V-18V(适合锂电池、USB或12V适配器供电)
- 输出电压上限:38V(可驱动多数工业传感器和执行器)
- 1.2A开关电流(支持300mA@24V输出)
- 1.2MHz固定频率(允许使用小型电感)
PIC18F86J50的选型考虑:
- 内置12位ADC(用于输出电压/电流监测)
- 多路PWM输出(支持动态调压)
- USB接口(便于参数配置和固件更新)
- 64KB Flash(满足复杂控制算法存储)
提示:在输入电压可能超过18V的应用中,需在前级增加保护电路,因为TPS61170的绝对最大输入电压为20V。
2. 升压电路硬件设计详解
2.1 功率级设计计算
升压转换的核心公式:
Vout = Vin × (1 / (1 - D))其中D为占空比,TPS61170最大占空比93%。以5V升24V为例:
D = 1 - (Vin/Vout) = 1 - (5/24) ≈ 0.79 (79%)电感选择步骤:
- 计算纹波电流(通常取输出电流的20%-40%):
ΔIL = 0.3 × Iout × (Vout/Vin) = 0.3×0.15×(24/5) ≈ 0.22A - 电感量计算:
实际选用22μH/2A的屏蔽电感(如TDK VLS252010ET-220M)L = (Vin × D)/(ΔIL × fsw) = (5×0.79)/(0.22×1.2×10⁶) ≈ 15μH
2.2 关键外围元件选型
| 元件类型 | 参数要求 | 推荐型号 | 注意事项 |
|---|---|---|---|
| 输入电容 | 10μF陶瓷+X7R | GRM32ER61E106K | 靠近芯片Vin引脚 |
| 输出电容 | 22μF/50V陶瓷 | C5750X7R1H226M | 低ESR优先 |
| 二极管 | 40V/1A Schottky | SS14 | 反向恢复时间<50ns |
| 反馈电阻 | 1%精度 | ERJ-6ENF系列 | 按Vout=1.229×(1+R1/R2)计算 |
PCB布局要点:
- 功率地(PGND)与信号地(AGND)单点连接
- SW引脚走线尽量短宽(减少辐射EMI)
- FB分压电阻靠近芯片放置
- 电感下方避免铺地(防止涡流损耗)
3. 微控制器接口与程序设计
3.1 硬件接口配置
PIC18F86J50与TPS61170的典型连接方式:
PIC18 PWM1 -> TPS61170 CTRL (调压控制) PIC18 ADC0 -> 输出电压分压检测 PIC18 ADC1 -> 电流检测电阻(如0.1Ω)电压 PIC18 GPIO -> TPS61170 EN (使能控制)电压检测电路设计:
Vout -> [R1=100k] -> ADC0 -> [R2=10k] -> GND 检测范围=0-33V (ADC参考电压3.3V时)3.2 控制算法实现
基本控制流程代码示例(MPLAB X IDE):
// 初始化PWM (10kHz频率) PWM1_Initialize(); PWM1_LoadDutyValue(compute_duty(5.0, 24.0)); // ADC配置 ADCON1 = 0b00001110; // AN0,AN1为模拟输入 ADCON2 = 0b10100110; // 右对齐, 12TAD float read_voltage() { ADCON0bits.CHS = 0; // 选择AN0 ADCON0bits.GO = 1; while(ADCON0bits.GO); return (ADC_GetConversionResult() * 33.0 / 4095.0); } void adjust_output() { float vout = read_voltage(); if(fabs(vout - target_voltage) > 0.5) { uint16_t new_duty = compute_duty(vin_measured, vout); PWM1_LoadDutyValue(new_duty); } }注意:实际应用中需加入软启动逻辑,通过逐步增加PWM占空比避免输入电流冲击。
4. 实测性能优化与问题排查
4.1 效率提升技巧
测试数据对比(输入5V/输出24V/150mA):
| 优化措施 | 效率提升 | 实现方法 |
|---|---|---|
| 同步整流 | +5% | 用MOSFET替代SS14二极管 |
| 低损耗电感 | +3% | 改用铁氧体磁芯电感 |
| 输入电容优化 | +2% | 增加10μF陶瓷电容 |
轻载效率问题处理:
- 启用TPS61170的跳周期模式(CTRL引脚接PWM)
- 代码示例:
// 当负载<50mA时切换模式 if(load_current < 0.05) { PWM2_Start(); // 1kHz PWM信号到CTRL } else { PWM2_Stop(); CTRL_GPIO = 1; }4.2 常见故障处理
输出电压振荡:
- 检查FB分压电阻布局(远离SW走线)
- 在FB引脚添加100pF补偿电容
- 用示波器查看SW波形是否正常
芯片过热保护:
- 测量实际开关频率(可能因布局不当导致)
- 检查电感饱和电流是否足够
- 确认二极管反向漏电流(高温下可能异常)
启动失败:
- 测量EN引脚电压(需>1.5V)
- 检查Vin引脚电容(至少10μF)
- 验证软启动时间(典型2ms)
5. 进阶应用扩展
5.1 多拓扑结构实现
利用TPS61170支持SEPIC拓扑的特性,可实现升降压转换:
Vin范围:8V-16V Vout固定:12V 关键改动: - 增加耦合电感(如Würth 7443632200) - 添加隔直电容(10μF/25V) - 修改反馈电阻比5.2 数字电源管理
通过PIC18F86J50的USB接口实现:
- 实时电压/电流监控
- 故障日志记录
- OTA固件更新 典型通信协议设计:
#pragma pack(1) typedef struct { uint8_t cmd; float voltage; float current; uint16_t status; } PowerPack_t;在实际项目中,这种设计已成功应用于:
- 便携式医疗设备的24V电机驱动
- 太阳能充电器的MPPT控制
- 工业传感器的隔离电源
调试时建议准备:
- 可调负载(如IT8511电子负载)
- 100MHz以上带宽示波器(观测SW振铃)
- 红外热像仪(定位过热元件)