news 2026/5/4 19:12:30

直接上硬货!最近用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/5/1 7:51:33

基于STM32的家庭安防系统设计

基于STM32的家庭安防系统设计 第一章 绪论 传统家庭安防多依赖单一的门窗防盗锁或独立报警设备&#xff0c;存在监测维度有限、报警响应滞后、缺乏远程联动等问题&#xff0c;难以形成全方位、智能化的安全防护体系。STM32单片机凭借高集成度、实时控制能力和丰富的通信接口&am…

作者头像 李华
网站建设 2026/5/1 7:57:30

发现 XSS 漏洞?别急,用这招 SpringBoot 技巧轻松搞定!

发现 XSS 漏洞&#xff1f;别急&#xff0c;用这招 SpringBoot 技巧轻松搞定&#xff01; 引言 随着Web应用的普及&#xff0c;网络安全问题也日益凸显。跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;简称XSS&#xff09;是一种常见的Web安全漏洞&#xff0c;它允…

作者头像 李华
网站建设 2026/5/1 5:46:27

滑轨铰链哪个品牌好耐用?一文读懂如何选对耐用五金品牌

选择柜门滑轨和铰链&#xff0c;耐用性是首要考量。市面上品牌众多&#xff0c;如何挑选真正耐用、好用的产品&#xff1f;本文将为您系统梳理&#xff0c;助您做出明智决策。一、 国货优选&#xff1a;炬森五金&#xff0c;耐用技术的集大成者在国产五金品牌中&#xff0c;炬森…

作者头像 李华
网站建设 2026/5/1 6:48:53

避坑指南:10个AI论文网站深度测评,专科生毕业论文写作必备工具推荐

在当前学术写作日益依赖AI工具的背景下&#xff0c;专科生群体面临着选题难、资料查找繁琐、格式不规范等多重挑战。为了帮助广大专科生高效完成毕业论文&#xff0c;笔者基于2026年的实测数据与真实用户反馈&#xff0c;对市面上主流的AI论文网站进行了深度测评。本次评测将从…

作者头像 李华
网站建设 2026/5/1 6:55:32

程序员必看!大模型基础概念全解析,收藏不迷路

本文以通俗易懂方式介绍大模型核心技术&#xff0c;包括LLM、Transformer、Prompt、API调用、函数调用、Agent、MCP协议及A2A协议。文章强调AI将重塑程序员行业&#xff0c;未来AI编程工程师将解决AI模糊性问题&#xff0c;而重复性工作将交由AI处理。适合有基本代码能力的读者…

作者头像 李华