news 2026/5/28 7:46:14

直接上硬货!最近用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/23 18:45:47

Elasticsearch:生产级生成式 AI 沙箱的实践指南

作者&#xff1a;来自 Elastic Sean MacKirdy 探索用于生成式 AI 沙箱的配方&#xff0c;为开发者提供一个安全的环境来部署应用原型&#xff0c;同时实现隐私和创新。 动手体验 Elasticsearch&#xff1a;深入了解我们的示例 notebooks&#xff0c;开始一个免费的 cloud 试用&…

作者头像 李华
网站建设 2026/5/23 18:47:51

HTTP协议

1. HTTP协议是什么HTTP&#xff08;超文本传输协议&#xff09;是互联网上应用最广泛的一种通信协议。它定义了客户端&#xff08;例如浏览器&#xff09;和服务器之间交换信息的格式和规则。可以把HTTP想象成餐厅里顾客和服务员之间的对话&#xff1a;顾客&#xff08;客户端&…

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

别再瞎找了!10个AI论文工具深度测评,继续教育毕业论文写作必备

在当前学术研究日益数字化的背景下&#xff0c;AI写作工具已成为提升论文撰写效率的重要助手。然而&#xff0c;面对市场上琳琅满目的产品&#xff0c;如何选择真正适合继续教育群体的工具成为一大难题。为此&#xff0c;我们基于2026年的实测数据与真实用户反馈&#xff0c;对…

作者头像 李华
网站建设 2026/5/23 1:24:51

AI英语口语APP的开发

开发一款AI英语口语APP&#xff0c;核心在于将实时语音交互与大语言模型&#xff08;LLM&#xff09;的逻辑能力深度结合。目前国内的大模型生态已经非常成熟&#xff0c;能够提供不输于国际一流水平的对话体验。以下是开发方案的深度解析&#xff1a;1. 核心技术架构开发一款口…

作者头像 李华
网站建设 2026/5/23 18:46:13

Linux服务器版本的介绍

服务器版Linux是互联网的基石,绝大多数网站、云服务、数据库都运行在Linux服务器上。 与桌面版Linux不同,服务器版专注于:稳定性、安全性、性能、长期支持和无头(无图形界面)管理。 🏢 主流服务器Linux发行版介绍 1. 红帽(Red Hat)家族 - 企业级事实标准 这是企业市…

作者头像 李华