PIC18F97J60与171010550的DC-DC降压转换器设计

DC-DC降压转换器PIC18F97J60171010550
于 2026-07-03 13:39:47 修改
·本内容遵循CC 4.0 BY-SA版权协议

1. 项目背景与硬件选型解析

在电力电子领域,DC-DC降压转换器是最基础也是最重要的拓扑结构之一。我们这次选择的PIC18F97J60微控制器搭配171010550驱动芯片的方案,在中小功率电源设计中具有典型代表性。PIC18F97J60是Microchip公司推出的8位单片机,内置以太网控制器,主频可达40MHz,特别适合需要网络监控功能的电源系统。

171010550是一款专为DC-DC转换设计的MOSFET驱动芯片,其主要特点包括:

  • 最高驱动电流可达4A
  • 支持100kHz-1MHz的开关频率
  • 内置死区时间控制
  • 工作电压范围4.5V-35V

这种组合特别适合12V-24V输入、5V/3A输出的降压转换场景,比如工业传感器供电、网络设备辅助电源等应用。

2. 降压转换器基础原理

Buck电路(降压转换器)的工作原理基于电感和电容的储能特性。当开关管导通时,输入电压通过电感到达输出端,同时电感存储能量;当开关管关闭时,电感通过续流二极管继续向负载供电。通过调节开关管的导通时间(占空比),即可实现输出电压的调节。

关键计算公式:

TEXT
占空比 D = Vout/Vin
电感电流纹波 ΔIL = (Vin - Vout) × D / (fsw × L)
输出电压纹波 ΔVout = ΔIL × ESR / (8 × fsw × Cout)

在实际设计中,我们通常遵循以下经验值:

  • 电感纹波电流取输出电流的20%-40%
  • 输出电容ESR要尽可能低
  • 开关频率选择需权衡效率与体积

3. 硬件电路设计细节

3.1 功率级设计

对于12V转5V/3A的应用,我们建议以下元件选型:

MOSFET选择:

  • 上管:IRLML6402(Vds=20V, Rds(on)=0.065Ω)
  • 下管:IRLML6402(可复用同一型号)

电感计算: 取开关频率fsw=300kHz,纹波电流按30%计算:

TEXT
L = (Vin - Vout) × D / (fsw × ΔIL)
= (12V - 5V) × 0.417 / (300kHz × 0.9A)
≈ 10.8μH

实际选用12μH/5A的屏蔽电感。

输出电容: 选择2颗22μF/16V X5R陶瓷电容并联,ESR约5mΩ。

3.2 驱动电路设计

171010550驱动芯片的典型应用电路需要注意:

  1. 自举电容选择0.1μF/25V陶瓷电容
  2. 驱动电阻建议10Ω-22Ω
  3. 在VCC引脚就近放置1μF去耦电容
  4. 芯片散热焊盘必须良好接地

特别注意:驱动芯片的布线要尽可能短,特别是HO和LO输出到MOSFET栅极的走线,长度最好控制在2cm以内。

4. PIC18F97J60的PWM配置

4.1 时钟设置

首先配置单片机时钟:

C
// 使用内部8MHz振荡器,4倍PLL
OSCCON = 0x70; // 8MHz
OSCTUNEbits.PLLEN = 1; // 启用PLL

4.2 PWM模块初始化

PIC18F97J60有两个PWM模块,我们使用PWM1驱动上管:

C
// PWM周期设置 (300kHz)
PR2 = 26; // (Fosc/(4*Prescale*Fpwm))-1
 
// 占空比设置 (初始值40%)
CCPR1L = 10;
CCP1CONbits.DC1B = 0;
 
// PWM配置
T2CON = 0x04; // 预分频1:1, 定时器2开启
CCP1CONbits.CCP1M = 0b1100; // PWM模式

4.3 死区时间设置

通过配置PWM1CON实现死区时间控制:

C
PWM1CON = 0x80; // 使能死区
DT1CON = 0x03; // 约150ns死区时间

5. 闭环控制实现

5.1 电压采样

使用PIC18F97J60的ADC模块采样输出电压:

C
// ADC初始化
ADCON0 = 0x01; // 使能ADC
ADCON1 = 0x0E; // AN0为模拟输入
ADCON2 = 0xA6; // 右对齐, 12TAD, Fosc/64
 
// 读取ADC值
uint16_t read_adc() {
ADCON0bits.GO = 1;
while(ADCON0bits.GO);
return ((ADRESH << 8) | ADRESL);
}

5.2 PI控制算法

数字PI控制器的实现:

C
// PI控制器参数
# define KP 0.05
# define KI 0.001
 
int16_t pi_controller(int16_t error) {
static int16_t integral = 0;
int16_t output;
integral += error;
// 抗积分饱和
if(integral > 1000) integral = 1000;
if(integral < -1000) integral = -1000;
output = KP * error + KI * integral;
return output;
}

5.3 控制周期处理

在定时器中断中执行控制算法:

C
void __interrupt() isr() {
if(TMR0IF) {
TMR0IF = 0;
// 每50us执行一次控制
static uint8_t counter = 0;
if(++counter >= 20) { // 1ms控制周期
counter = 0;
int16_t vout = read_adc();
int16_t error = VREF - vout;
int16_t duty_adjust = pi_controller(error);
// 更新PWM占空比
uint16_t new_duty = CCPR1L + duty_adjust;
if(new_duty > 25) new_duty = 25;
if(new_duty < 1) new_duty = 1;
CCPR1L = new_duty;
}
}
}

6. 保护功能实现

6.1 过流保护

利用ADC采样电流信号:

C
// 电流检测电阻0.05Ω
# define CURRENT_THRESHOLD 600 // 对应3A
 
void check_current() {
uint16_t current = read_adc(AN1);
if(current > CURRENT_THRESHOLD) {
CCP1CONbits.CCP1M = 0; // 关闭PWM输出
FAULT_LED = 1;
}
}

6.2 过热保护

通过NTC电阻检测温度:

C
# define TEMP_THRESHOLD 800 // 对应85℃
 
void check_temperature() {
uint16_t temp = read_adc(AN2);
if(temp > TEMP_THRESHOLD) {
CCP1CONbits.CCP1M = 0;
FAULT_LED = 1;
}
}

7. 实测性能优化

在实际调试中发现几个关键点:

  1. 开关节点振铃:通过以下措施改善:

    • 在MOSFET栅极增加2.2Ω电阻
    • 在开关节点添加100pF电容
    • 优化PCB布局,减小功率回路面积
  2. 效率提升

    • 将死区时间从200ns优化到150ns
    • 选择更低Rds(on)的MOSFET
    • 优化驱动电阻值(最终确定为15Ω)
  3. 动态响应

    • 调整PI参数,KP=0.05, KI=0.001时获得最佳响应
    • 增加前馈补偿,在输入电压变化时提前调整占空比

实测数据:

  • 输入12V,输出5V/3A时效率92%
  • 负载瞬态响应(0-3A)输出电压跌落<100mV
  • 输出电压纹波<30mVpp

8. 网络监控功能

利用PIC18F97J60内置的以太网控制器,可以实现:

", read_voltage(), read_current(), read_temp()); ETH_SendPacket(httpResponse, strlen(httpResponse)); } }">
C
// 简易HTTP服务器响应电压查询
void serve_http() {
if(ETHLINK == 1) {
sprintf(httpResponse,
"HTTP/1.1 200 OK\r\n"
"Content-Type: text/html\r\n\r\n"
"<html><body>"
"Output Voltage: %.2fV<br>"
"Output Current: %.2fA<br>"
"Temperature: %.1fC"
"</body></html>",
read_voltage(), read_current(), read_temp());
ETH_SendPacket(httpResponse, strlen(httpResponse));
}
}

这个功能特别适合需要远程监控的工业应用场景,可以通过网页直接查看电源状态。

仿真电路中常见元器件选型误区及优化策略(基于Proteus平台的稀缺经验分享)
SW_孙维
非易失性存储器写操作功耗陷阱曝光:FLASH编程峰值电流的3种应对策略
SW_孙维
DC-DC降压转换器与PIC18F97J94的嵌入式电源设计
本文围绕基于PIC18F97J94微控制器与171010550数字降压IC的嵌入式电源系统展开,涵盖硬件电路设计(含功率级参数计算、I2C接口布局)、固件开发(I2C初始化、寄存器配置、ADC电压/电流监测)、PCB布局EMC优化(功率回路、热设计、噪声抑制)及系统测试(效率、动态响应、故障排查)。重点突出I2C可编程控制、工业级可靠性及高效率(最高95%)实现。
weixin_34245082
341
PIC18F97J94与171010550的智能电源管理方案
本文介绍基于PIC18F97J94单片机与171010550 DC-DC降压转换器的智能电源管理方案,涵盖硬件选型、I2C通信配置、PCB布局要点、固件开发(寄存器操作状态监测)、效率优化及故障排查。重点实现动态电压调节、实时温度/电压监测及Modbus-RTU上位机协同,满足工业级-40°C~85°C宽温应用要求。
Nerd Muscle
335
DC-DC降压转换器设计与PID控制优化实践
本文围绕同步降压转换器设计展开,重点介绍基于171010550电源管理IC与PIC18F97J60微控制器的硬件实现数字PID电压环控制。涵盖功率级参数计算(电感、输入电容)、PCB布局规范(功率回路、热设计)、PID参数整定(Kp=0.05, Ki=0.1, Kd=0.001)及动态响应优化(自适应死区、PSM模式)。实测验证了宽温范围稳定性,并提出多相并联、数字预测控制等进阶方向。
conghuang7343
542
基于MP8859与PIC18的智能DC-DC降压电源设计
本文介绍基于MP8859降压芯片与PIC18F97J94微控制器的智能DC-DC电源系统设计,涵盖硬件布局(功率回路、I2C接口)、固件开发(I2C寄存器配置、PWM初始化)、性能优化(效率提升、动态响应补偿)及故障排查(I2C通信失败、输出异常)。重点突出I2C可编程控制、高精度电压调节(10mV)、多模块并联均流等关键技术实现。
运营小巴
238
DC-DC降压转换I2C数字控制电源系统设计
本文围绕MP8859降压芯片与PIC18F97J60微控制器构建I2C数字控制DC-DC电源系统,涵盖硬件布局(功率回路、I2C电平转换)、固件实现(SMBus协议、增量式PID闭环控制)、性能优化(PFM模式切换、snubber设计、补偿网络调优)及典型故障排查(I2C通信失败、输出振荡)。实测效率达92.7%,纹波<30mVpp,支持远程监控OTA升级。
郦小号
201