news 2026/3/2 19:21:50

直接上硬货!最近用STM32F103搞了个数控Buck电源,实测效率干到96%,能通过程序直接调电压,这玩意做出来是真的爽。咱们不整虚的,直接拆开看门道

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
直接上硬货!最近用STM32F103搞了个数控Buck电源,实测效率干到96%,能通过程序直接调电压,这玩意做出来是真的爽。咱们不整虚的,直接拆开看门道

stm32数控buck同步整流电路 效率可达95%以上 电压电流采样 反馈电路采用软件增量式pi闭环控制,可以实现恒压闭环 驱动电路采用ir2104芯片驱动半桥 输出采样电路通过lm385进行放大反馈稳压 mos管采用nrf540n 可单独通过程序调节电压大小(自己可以编写) 原理图pcb使用立创eda绘制 软件源代码使用Keil5 控制芯片是stm32f103系列

先看看硬件设计(立创EDA真香)。主电路用NRF540N这对MOS管做同步整流,这货的Rds(on)只有44mΩ,实测开关损耗比普通二极管方案低30%不止。驱动部分用IR2104搭的半桥驱动,注意这里有个骚操作——自举电容用了0.1μF陶瓷电容并联10Ω电阻,实测驱动波形上升沿控制在20ns以内。

采样电路是重点,电流采样用0.01Ω锰铜丝配合LM385运放搞了100倍放大。ADC部分代码长这样:

// 电流采样ADC初始化 void ADC1_Init(void) { ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 1, ADC_SampleTime_239Cycles5); ADC_Cmd(ADC1, ENABLE); ADC_SoftwareStartConvCmd(ADC1, ENABLE); } // 实际电流计算 float Get_Current(void) { uint16_t adc_val = ADC_GetConversionValue(ADC1); return (adc_val * 3.3 / 4096) * 100; // 运放放大100倍 }

这里有个坑:STM32的ADC采样速率要和开关频率匹配。我们Buck电路用50kHz开关频率,ADC采样周期设成239.5个时钟周期刚好避开PWM干扰。

软件控制才是灵魂。增量式PI算法比位置式更适合实时控制,代码实现也简单:

typedef struct { float Kp; float Ki; float Err[2]; } PI_Controller; float PI_Calculate(PI_Controller *pi, float target, float actual) { float err = target - actual; float delta = pi->Kp*(err - pi->Err[0]) + pi->Ki*err; pi->Err[0] = pi->Err[1]; pi->Err[1] = err; return delta; }

实测这个算法在1ms中断周期下,电压调整时间<50ms。调参秘诀:先用Ki=0调Kp到临界震荡,然后取Kp的1/2,Ki取Kp的1/10。

stm32数控buck同步整流电路 效率可达95%以上 电压电流采样 反馈电路采用软件增量式pi闭环控制,可以实现恒压闭环 驱动电路采用ir2104芯片驱动半桥 输出采样电路通过lm385进行放大反馈稳压 mos管采用nrf540n 可单独通过程序调节电压大小(自己可以编写) 原理图pcb使用立创eda绘制 软件源代码使用Keil5 控制芯片是stm32f103系列

PWM生成是关键操作,TIM1通道1和2配置互补输出:

void PWM_Init(uint16_t arr, uint16_t psc) { TIM_OCInitTypeDef oc; TIM_OCStructInit(&oc); oc.TIM_OCMode = TIM_OCMode_PWM1; oc.TIM_OutputState = ENABLE; oc.TIM_Pulse = arr/2; // 50%占空比初始化 TIM_OC1Init(TIM1, &oc); TIM_OC2Init(TIM1, &oc); TIM_BDTRInitTypeDef bdtr; bdtr.TIM_DeadTime = 0x3F; // 死区时间=1us TIM_BDTRConfig(TIM1, &bdtr); }

重点在死区时间设置,IR2104的典型传播延迟是520ns,这里设置63个时钟周期(按72MHz算约0.875us),实测上下管没有直通现象。

调压功能简单到离谱,主程序里直接改目标电压值就行:

Voltage_Target = 12.0; // 要多少伏直接赋值

当然实际要加个软启动,避免电压突变。通过USART或ADC按键都能实现远程调压,这玩法比传统电位器调节不知道高到哪里去了。

最后说下稳压效果:空载到满载(0-5A)电压波动<0.05V,纹波控制在30mVpp以内。整套系统成本不到50块钱,比淘宝成品电源香太多了。代码已经扔Github,原理图在立创开源平台,欢迎来抄作业!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/17 10:55:36

计算机毕业设计springboot辅导员职责信息管理系统 基于Spring Boot的高校辅导员工作事务综合平台 Spring Boot驱动的学生事务与辅导员协同管理系统

计算机毕业设计springboot辅导员职责信息管理系统_6g45l &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 高校日常育人工作中&#xff0c;辅导员需要同步跟踪学生的学业、考勤、…

作者头像 李华
网站建设 2026/2/28 10:40:18

全自动汽油氧化安定性测定仪的技术解析与应用价值研究

引言 汽油的氧化安定性是其储存与使用过程中的关键性能指标&#xff0c;直接关系到油品质量、发动机运行效率及环保表现。传统的手动测定方法依赖人工操作与经验判断&#xff0c;存在效率低、重复性差、人为误差大等问题。随着分析检测技术的进步&#xff0c;全自动汽油氧化安…

作者头像 李华
网站建设 2026/2/28 19:21:29

深度测评8个降AIGC网站,千笔·降AIGC助手解决论文AI率过高难题

AI降重工具&#xff0c;为论文保驾护航 在当前学术写作中&#xff0c;随着AI技术的广泛应用&#xff0c;论文中的AIGC率问题越来越受到重视。许多学生在使用AI辅助写作时&#xff0c;往往会出现内容过于机械化、缺乏原创性的问题&#xff0c;导致查重率居高不下&#xff0c;甚至…

作者头像 李华
网站建设 2026/2/21 0:07:19

工业数采网关实现智能设备数据互联

工业制造是国民经济的重要支柱&#xff0c;其生产效率、设备状态、能耗管理等因素直接关系到企业的竞争力和可持续发展。然而&#xff0c;传统工业现场设备管理方式存在诸多痛点&#xff1a;数据孤岛现象严重、协议多样难兼容、人工抄录效率低、实时性差&#xff0c;导致生产管…

作者头像 李华