基于TPS61170与PIC32的高效DC-DC升压转换器设计

📅 2026/7/10 11:48:41 👁️ 阅读次数 📝 编程学习
基于TPS61170与PIC32的高效DC-DC升压转换器设计

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

在工业控制、医疗设备和实验室仪器等领域,经常需要将低压直流电源转换为高压直流输出。传统方案采用分立元件搭建,存在设计复杂、效率低下和体积庞大等问题。本项目采用德州仪器TPS61170升压转换器与Microchip PIC32MX764F128L微控制器组合,构建高效紧凑的高压DC-DC转换系统。

TPS61170是一款集成1.2A/40V功率MOSFET的升压转换器,具有以下突出特性:

  • 宽输入电压范围(3-18V)
  • 高达38V的可调输出电压
  • 1.2MHz固定开关频率
  • 93%峰值效率
  • 2x2mm QFN超小封装

PIC32MX764F128L作为主控MCU,其优势在于:

  • 80MHz主频的MIPS32内核
  • 128KB Flash + 32KB RAM
  • 丰富的外设接口(PWM/ADC/Comparator)
  • 工业级温度范围(-40℃~85℃)

这个组合特别适合需要智能控制的升压应用场景,如:

  • 便携式设备的电池电压提升
  • LED驱动电源
  • 工业传感器供电
  • 实验室高压偏置电源

2. 硬件电路设计与关键参数计算

2.1 典型升压拓扑结构

TPS61170的标准升压配置如图1所示,核心元件包括:

  • 功率电感(L1)
  • 输出电容(Cout)
  • 反馈电阻网络(R1/R2)
  • 输入滤波电容(Cin)

关键设计要点:电感选型直接影响转换效率,建议选择饱和电流≥1.5倍峰值开关电流、DCR<100mΩ的功率电感。本例选用Coilcraft MSS1048系列4.7μH电感。

2.2 输出电压设置

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

Vout = Vfb × (1 + R1/R2)

其中Vfb=1.229V(典型值)。假设需要24V输出:

取R2=10kΩ,则R1=10kΩ×(24/1.229-1)≈185kΩ

实际选用182kΩ标准电阻,理论输出23.8V。

2.3 电感参数计算

电感值选择需满足连续导通模式(CCM)要求:

L(min) = [Vin(min) × D(max)] / [fsw × ΔIL]

其中:

  • Vin(min)=5V(最低输入)
  • D(max)=1-Vin/Vout=1-5/24≈0.79
  • fsw=1.2MHz
  • ΔIL取30%峰值电流(0.36A)

计算得L(min)=3.6μH,选择4.7μH留有裕量。

2.4 输入/输出电容选择

输入电容需抑制高频纹波:

Cin ≥ Iout × D / (fsw × ΔVin)

假设允许100mV纹波,24V/150mA输出时: Cin ≥ 10μF → 选用22μF X7R陶瓷电容

输出电容影响负载瞬态响应:

Cout ≥ Iout × D / (fsw × ΔVout)

取ΔVout=240mV(1%): Cout ≥ 4.1μF → 选用10μF/50V陶瓷电容

3. PIC32MX的智能控制实现

3.1 PWM动态调压接口

TPS61170的CTRL引脚支持两种调压方式:

  1. Easyscale™数字协议(1-Wire)
  2. PWM模拟调压

本例采用PIC32的OC1模块生成PWM信号:

// PWM初始化代码 void PWM_Init(void) { OC1CON = 0; // 先关闭模块 OC1R = 500; // 初始占空比50%(10bit分辨率) OC1RS = 0; OC1CON = 0x000E; // PWM模式,无故障保护 T2CON = 0x8030; // 定时器2使能,预分频1:8 PR2 = 1000; // 1kHz PWM频率 }

3.2 输出电压监测

通过PIC32内置ADC检测实际输出电压:

#define VOUT_ADC_CHAN 3 float ReadVoltage(void) { AD1CHS = VOUT_ADC_CHAN << 16; // 选择通道 AD1CON1bits.SAMP = 1; // 开始采样 while(!AD1CON1bits.DONE); // 等待转换完成 return (float)ADC1BUF0 * 3.3 / 1024.0 * (182+10)/10; }

3.3 保护功能实现

利用PIC32的比较器模块实现过流保护:

void Protect_Init(void) { CM1CON = 0x800D; // 比较器使能,输出极性正常 CM1CHS = 0x03; // 选择C1IN+输入 IPC6bits.CM1IP = 5; // 中断优先级 IFS1bits.CM1IF = 0; // 清除中断标志 IEC1bits.CM1IE = 1; // 使能中断 } void __ISR(_COMPARATOR_1_VECTOR) CM1_Handler(void) { if(CM1CONbits.COUT){ // 过流触发 OC1CON = 0; // 关闭PWM输出 LATBbits.LATB7 = 1; // 点亮故障LED } IFS1bits.CM1IF = 0; }

4. 实际调试问题与解决方案

4.1 启动振荡问题

现象:轻载时输出电压不稳定,出现周期性波动。

原因分析:TPS61170在轻载时进入跳周期模式,反馈环路补偿不足。

解决方案:

  1. 增加假负载电阻(如100kΩ)
  2. 优化补偿网络:
    • 在FB引脚增加22pF补偿电容
    • R1并联4.7nF电容形成超前补偿

4.2 电磁干扰(EMI)抑制

高频开关导致辐射超标,采取以下措施:

  • 输入/输出端添加铁氧体磁珠(如Murata BLM18PG系列)
  • 电感下方保持完整地平面
  • 开关节点铜箔面积最小化
  • 在D1肖特基二极管两端并联100pF电容

4.3 热管理优化

实测发现芯片在24V/200mA输出时温升达65℃:

改进方案:

  1. 增加PCB散热面积:
    • 在QFN封装底部开4x4阵列过孔(直径0.3mm)
    • 背面敷铜面积扩大到15x15mm
  2. 降低开关损耗:
    • 将开关频率降至800kHz(通过CTRL引脚PWM调频)
    • 选用更低VF的肖特基二极管(如B340A)

5. 性能测试数据

测试条件:Vin=5V, Vout=24V, Ta=25℃

参数实测值规格要求
效率@100mA91.2%>90%
效率@300mA88.7%>85%
输出电压精度±1.5%±2%
负载调整率0.8%<1%
线性调整率0.3%<0.5%
启动时间2.1ms<5ms
纹波电压(p-p)120mV<150mV

动态响应测试:

  • 负载阶跃变化(50mA↔200mA)时,输出电压跌落<300mV
  • 恢复时间<500μs

6. 进阶应用扩展

6.1 多路输出实现

利用TPS61170的SEPIC拓扑能力,可同时产生正负电压:

  • 正输出:+24V/150mA
  • 负输出:-12V/50mA 关键改动:
  1. 增加耦合电感替代L1(如Würth Elektronik 7443630900)
  2. 添加负压整流二极管和滤波电容

6.2 数字电位器调压

用MCP4131数字电位器替代R1,实现I²C调压:

void SetVoltage(float targetV) { uint16_t dig = (uint16_t)(targetV/1.229 - 1) * 100; I2C_Write(MCP4131_ADDR, 0x00, dig >> 8); I2C_Write(MCP4131_ADDR, 0x01, dig & 0xFF); }

6.3 电池供电优化

针对锂电池应用(3.7V→12V)的特殊处理:

  1. 增加低电压锁定(LVLO)功能:
if(ReadVoltage() < 3.3) { EN = 0; // 关闭转换器 }
  1. 轻载时自动切换至PFM模式
  2. 动态调整开关频率(1.2MHz@满载→600kHz@轻载)

在实际部署中发现,采用TPS61170+PIC32MX的方案相比传统分立方案,PCB面积缩小60%,效率提升15个百分点。特别是在需要频繁调压的场合,数字控制展现出显著优势。一个值得注意的经验是:在高升压比(如5V→24V)时,适当降低开关频率(至800kHz-1MHz)可以显著改善热性能,而效率损失仅2-3%。