|
|
|
|
|
|
| | | | | 目前采用的方案是单片机输出PWM驱动功率MOS,输出电压经采样后反馈至单片机。单片机内部通过PI调节实现输出PWM的调整从而动态调节输出电压,确保其电压稳定。成熟的方案有很多。
目前我做的是基于STC12W系列的buck电源,工作中使用的单片机是STM32以及dsPIC33F系列的单片机。
|
|
|
|
| | | | | | | | | 现在单片机都是3.3V供电,直接驱MOS现实么?肯定是外加的驱动电路
|
|
|
| | | | | | | | | 明后天先将整机硬件流程图画出来共享给大家,这样大家就一目了然了。51单片机输出高电平只有5V,驱动功率MOS显然是不够的,采用的是IR驱动芯片驱动功率MOS,相比于推挽式驱动方案,个人觉得方便也耿可靠。
|
|
|
| | | | | | | | | | | 数字电源其实并没有想象中复杂,很多电源工程师不是很精通单片机编程,所以觉得数字电源难。只要真正啃下单片机C语言编程,数字电源就很好攻克。
|
|
|
| | | | | | | | | | | | | 下图为基于51单片机的buck电源的电路流程图
-
数字buck电源电路框图
|
|
|
| | | | | | | | | | | | | | | 单片机采用STC12系列,液晶屏为通用LCD1602,功率MOS的驱动芯片为IR2104(该芯片可以通过自举升压解决驱动NMOS的问题同时自带死区时间),三路采样分别为输入端电压采样,输出端电压及电流采样。通过三路采样控制单片机输出PWM脉宽,从而达到控制输出精度的要求。
数字电源的控制芯片并非一定要采用DSP来实现,对于单路输出常规的单片机控制其实绰绰有余。对于多组电源合并控制驱动可能需要采用DSP来实现。
|
|
|
| | | | | | | | | | | | | | | | | 这几天正在绘制原理图,近期原理图绘制好后共享给大家。整机的硬件图大框架就是之前上传的硬件流程图,细节部分会在原理图上体现,听我的雷声。
|
|
|
|
| | | | | | | | | | | | | | | | | | | 楼主打算多大的开关频率呢?这个STC12单片机,如果逐个PWM周期做PI调节的话,开关频率顶多也就20-30KHz吧,用STC15W系列实现逐个周期PI调节的极限开关频率也就是50-60KHZ左右。我记得是这样。。。。。 |
|
|
|
|
|
| | | | | | | | | | | | | | | | | | | | | 楼主,你这个原理图貌似有问题啊。开关管怎么导通呢?
|
|
|
| | | | | | | | | | | | | | | | | | | | | 最近正在构思要做一个数字电源玩,来参考一下楼主的方案。
|
|
|
|
|
|
|
| | | | | | | | | | | | | | | | | 必须经过,单片机采样不都是将模拟信号转换为数字1信号吗?
|
|
|
| | | | | | | | | | | | | | | | | | | 我看电流您是经过反相比例放大给AD了,电压怎么没看到呢
|
|
|
| | | | | | | | | | | | | | | | | | | 电压可以直接送给这个单片机?
看哪能知道这个单片机可以直接接电压信号?
|
|
|
| | | | | | | | | | | | | | | | | | | | | 电压是可以直接接单片机AD的,但是楼主这个输出有高压,中间最好隔离一下给单片机
|
|
|
|
|
| | | | | PWM的调节精度够不够呢,51毕竟工作频率很低
TI DSP的高精度PWM脉宽精度是250PS
|
|
|
| | | | | | | 这种简单的拓扑采用51足够了,没有必要采用DSP控制。
|
|
|
| | | | | | | | | 根据单片机芯片哪个参数来判断开关电源的工作频率是否满足?
|
|
|
|
|
|
|
| | | | | 若是输入是太阳能电池,用单片机如何实现MPPT跟踪?
|
|
|
| | | | | P1是ADC模拟输入口,其中又输出PWM,当然可行,但或多或少会影响ADC数据的。期待楼主顺利完成,或许还可以充分利用IR2104 ,加同步整流 |
|
|
| | | | | | | STC12系列单片机P1端口既可以用于ADC也可以用于输出PWM驱动,当初设计时确实有点欠考虑,不过目前实物做出来后并没有太大的影响,所以这一版就不准备改了,后续如果有问题准备再改一版。
|
|
|
|
| | | | | | | | | | | 按部就班的走,后续PCB,程序都会有,别急。上班期间事情太多,还望谅解。 |
|
|
|
|
| | | | | 主要重点在软件算法了,不知道用这种STC的单片机能够做到多好的动态? |
|
|
| | | | | | | 电源工程师很多都有较高的模电功底,但是对于C语言以及单片机编程相对较弱。其实数字电源编程并没有想象中难,核心就是PI控制。
|
|
|
| | | | | | | | | 今天刚刚购买了一批主要的元器件,后续的进展会及时更新。
|
|
|
| | | | | | | | | | | 你的大概的软件框图及流程图思想有吗?一起看看学习下
|
|
|
| | | | | | | | | | | 元器件刚刚到手,最近开始PCB画板,一步一步按部就班的走,后续将PCB文件共享给大家。
|
|
|
|
| | | | | | | | | | | | | 刚刚抽空将PCB第一版画好了,还有很多地方需要修改,先贴出来给大家看看。
-
pcb文件
|
|
|
| | | | | | | | | | | | | | | PCB图纸有部分感觉不是很合理,重修修改了一版,准备抽时间发出去打板制作。将诸多功率走线加宽,同时缩短功率器件之间的距离。
-
PCB文件
|
|
|
|
| | | | | 搞数字电源需要懂 拉普拉斯变换,傅里叶变换和z变换么?
|
|
|
|
|
| | | | | | | 不需要,但是C语言语法,单片机的寄存器配置及PID控制算法需要了解。
|
|
|
| | | | | | | | | 要是没有那么高深的话,以后有有机会的话可以学习一下单片机。
|
|
|
|
|
| | | | | | | | | | | | | | | 数字电源
并非必须用高端的mcu,看作的电源需求,普通的buck降压用51可以了
|
|
|
| | | | | | | | | | | | | | | | | 刚刚将买回的一批IR2104测试了一下,向大家展示一下其性能:
-
实物测试图
-
输出互补波形
|
|
|
|
| | | | | | | | | | | | | | | | | | | | | 哥们这话说的有点幸灾乐祸,我这款电源已经量产了,失败之言从何而来?
单片机制作的电源,目前我手上已经实现的除了buck电源,还有反激电源及正激电源,后续考虑公布一点,除buck电源外,其余电源的源码可能不会公开,望谅解。
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | 有些不懂,所以目测你的要失败。
驱动芯片你用的IR2104,它的自举电容怎么充电呢。这个我不懂啊。望告知。。。
|
|
|
|
| | | | | | | | | | | | | | | | | | | IR2104输出互补波形的死区时间,实测为600ns:
-
死区时间
|
|
|
|
| | | | | | | 做数字电源软件工程师的话,觉得还是很有必要懂这些的。因为在计算环路时,需要调整算法参数,这时候就运用到拉普拉斯变换或者傅里叶等变换。
|
|
|
|
| | | | | 太棒了,学习下
buck电路也是我学习制作的第一个电源 |
|
|
|
| | | | | | | | | 继续更新。
PCB板打样回来后,立马抽空焊接了一块电路板,将实测电路贴出来共享给诸位。
-
实物测试1
-
输入电压
|
|
|
| | | | | | | | | | | 原理图中有一处错误,当时画电路图时比较粗心,运放的正负电压画反了,导致实际调试电路时走了一点弯路。将原理图修改后重新更新一版。
|
|
|
| | | | | | | | | | | | | 目前仅仅是匆匆将电源未带负载的状态测试了一下,后面抽时间将电源的带载状态及节点波形均测试一下,并贴出来。手头上还有几块板子,如果有需要的朋友可以私信我,我准备把多余的板子出掉,谢谢。
|
|
|
| | | | | | | | | | | | | | | 楼主,你的驱动芯片可以用LO下管驱动就好啦,为什么输入2个驱动信号,输出只有一个呢?这样的话,也就省了上管驱动的自举电路了呀!还有能讲解下,你的环路控制思路吗?建议你AD采样要增加滤波电容,会有偏差的!
|
|
|
| | | | | | | | | | | | | | | | | IR2104的驱动输入只有一个,另一个是使能端。 为什么采用Nmos 因为nMOS较常见,所以采用nmos。
|
|
|
| | | | | | | | | | | | | | | | | | | 数字电源的环路其实相对较简单一点,通过软件实现动态调节即可。我这款电源输出精度其实不高,所以不需要太过复杂的硬件电路。
|
|
|
| | | | | | | | | | | | | | | 楼主你的电路板理论上输出能力多大?如果电流超过1A需要加散热片吗? |
|
|
| | | | | | | | | | | | | | | | | 其实是需要散热片的,我这款电源主要是用于理论验证的,所以没有加散热片,这其实不是什么太大的问题。
|
|
|
|
| | | | | | | | | | | | | R2这个10K电阻去掉也不影响这个电源的效果吧?你加这个电阻是什么目的呢?
|
|
|
|
|
|
| | | | | | | | | | | 我去,我目测失败的居然有输出。我就想不明白了,N-MOS管怎么驱动的呢?
|
|
|
| | | | | | | | | | | | | nmos的驱动其实只需要增加自举电路就可以实现。IR2104就是自举电路,有问题互相探讨。
|
|
|
| | | | | | | | | | | | | | | IR2104是自举电路。我不明白自举电容C11怎么充电呢?
|
|
|
| | | | | | | | | | | | | | | | | 电路的原理如果不能理解,就直接搭电路去试,结论验证正确即可,结果比过程重要。
|
|
|
|
| | | | | 希望LZ出个教程,指导一下大家入门数字电源,大家肯定会非常需要的~
|
|
|
| | | | | | | 主程序流程图,今天中午花时间把主程序流程图整理出来,后续会陆续更新,事情较多,更新较慢,还望诸位谅解,谢谢。
-
主程序流程图
|
|
|
| | | | | | | | | 程序的核心思路其实还是比较简单的,就是按部就班的通过循环程序快速扫描各模块的动作,当中断响应时,停止主程序扫描,进入中断程序处理ADC采集,时间中断等程序。
|
|
|
| | | | | | | | | | | 明天准备将按键流程图及相关的实测图发出来,共享给诸位。 |
|
|
| | | | | | | | | | | | | ADC采样流程图,这一流程图是该程序比较核心的部分,希望便于大家理解,谢谢。
-
ADC采样流程图
|
|
|
|
| | | | | | | | | | | | | | | | | 请讲讲问题,谢谢,流程图有什么问题,还望指导,谢谢。
|
|
|
|
| | | | | | | | | 楼主,你的主程序流程图跟你写的主程序中最后两个IF语句不一样,, |
|
|
| | | | | 楼主,请问你的输出滤波电感L1用的是哪种型号的元器件? |
|
|
| | | | | | | 继续更新,今天更新按键触发流程图:
-
按键触发流程图
|
|
|
| | | | | | | 电感的实际数值我没有计算,手头上有200uH以及330uH的工字电感,电流1A左右, 我就直接用的。
由于只是理论验证,所以就没有真正去计算,如果是大功率电源,还是计算一下,手动绕制几个比较靠谱。
|
|
|
| | | | | | | | | 接下来准备带负载实际测试一下该电源的性能,后面将程序共享给诸位。这款电源我之前量产过一小批,没有什么问题。不过程序以及硬件部分均有很大的优化空间。如果论坛中有朋友觉得哪里有不合理的地方,还望多多指导,毕竟数字电源我做的不是很多,还望谅解,谢谢。
通过这一帖,我主要是想和大家共享一些数字电源方面的知识,希望大家能够多多支持,多多斧正,谢谢。
|
|
|
|
|
| | | | | 楼主这个电源的主要技术参数先说明下吧!!!!比如工作频率?输出功率?等等 |
|
|
| | | | | | | 工作频率为47k,输出电压目前初步定为0-5V,电流0-1A。电压实际是可以设置的,最大可以达到24V,但是由于我的功率器件都是直接购买的现成的,所以不敢输出过大功率,所以设置为0-5V可调。
|
|
|
| | | | | | | | | 今天把带载实测图贴出来,和大家共享。
0.5V输出,电流0.2A实测:
-
电路板0.5V输出、0.2A
-
电子负载参数
-
驱动波形
-
|
|
|
| | | | | | | | | | | 2V,0.2A实测输出参数:
-
电路板实测输出参数
-
电子负载及驱动波形
|
|
|
| | | | | | | | | | | | | 3.3V实测输出参数:
-
3.3V电路板输出参数
-
电子负载及驱动波形参数
|
|
|
| | | | | | | | | | | | | | | 5V输出实测参数:
-
5V电路板输出参数
-
电子负载及驱动波形
|
|
|
| | | | | | | | | | | | | | | | | 该电路老化了一段时间,发现了一点存在的问题。之前我量产的时候,电压输出为固定的参数12V输出。现在我设置为从0V-24V输出,在低电压输出段0-5V这段,发现前端L7812发热比较严重,说明其带载过重导致发热量增加。为此我考虑通过做一个buck电源来代替L7812,修正此bug。
欢迎大家指导纠错,谢谢。
|
|
|
| | | | | | | | | | | | | | | | | | | 这几天争取把源代码共享给诸位,代码需要优化的空间还比较到,希望大家多多指正,谢谢。
|
|
|
| | | | | | | | | | | | | | | | | | | | | 就等你的代码,
希望能发行套件,我想买来练习下数字电源
|
|
|
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | 源程序我使用keil 4编写的,考虑到大家的keil版本不同,我将源程序.c文件提取出来,大家直接在不同版本的keil中复制新建工程即可。
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 源程序还有很大的优化空间,希望大家多多指导斧正,谢谢。
鉴于大家对于数字电源共享的不多,我想以我的电源为例起到抛砖引玉的作用,大家共同探讨学习数字电源的技术,共同进步。
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 大家觉得我的电源有哪些改进的地方,希望大家多多提点,谢谢。等忙完这阵子,准备再做一版,希望大家多多支持。
|
|
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 您好,这个板子可以卖给我一套么,学习学习,谢谢您。
|
|
|
|
|
|
|
|
| | | | | 楼主 这个带PFC吗?电源用数字控制的话,PIC单片机更好。
|
|
|
| | | | | | | 是的,PIC的16位机有针对开关电源及电机控制的芯片,之前做过一款反激电源,即是用PIC16F系列的芯片做的。
|
|
|
| | | | | | | | | 兄弟能私信一个联系方式吗?想向您请教一些有关数字控制的问题
|
|
|
| | | | | | | | | 我看了一下你的原理图,有分流器,为什么没有看到电流采样到单片机的部分呢?
|
|
|
| | | | | | | | | | | 我这款电源是恒压源,不是恒流源,所以没有加恒流电路
|
|
|
| | | | | | | | | | | | | 我现在也在做一款单片机控制的双向buck-boost电路,对电池进行充放电管理,要恒压恒流,所以比你的要稍微复杂一些,现在正在绘制原理图!
|
|
|
|
| | | | | | | | | | | | | | | | | 由于种种原因这个项目暂停了。私信我邮箱,我给你一些参考的资料
|
|
|
|
| | | | | | | | | | | | | | | PID控制是根据输出的电源波动性来调节的。理想的方法是通过网络分析仪看环路稳定性,通过不同的PID参数调节来观察。
不过一般的方法就是试凑法。另外电源的环路控制,其实一般PI参数调节就可以了。别想的太复杂。朋友。
|
|
|
|
|
|
|
| | | | | 楼主再总结下吧,我也想到几个问题问一下
1.数字电路加进去主要是为开关管提供驱动信号,采集信号,保护信号的作用,将这些信号汇集起来,根据一些数值进行PID算法,发出不同占空比的驱动信号,甚至可以控制开关管关断保护吧。这个电路,数字程序内部有保护上的驱动设计?
2.在你调试过程中,发现哪些地方比较费时间,不大好调?驱动信号达到什么程度,就比较理想了?可以放心为开关管进行驱动。
3.需要为数字芯片写程序,用的是C语言?在写程序的过程中,是否需要反复验证和修改内部参数?
4.有没有时序上的一些设计考虑
|
|
|
| | | | | | | 刚开始从头仔细看一遍,看到7楼介绍的这个单片机的作用就很详细了
|
|
|
| | | | | | | 看到程序时,我从主程序里,看到了你设置的过压和过流保护,30V,1.1A
|
|
|
| | | | | | | | | 输出电压大于预设电压就停止工作。输入电压大约30V也停止工作?看不懂这里
输入电压范围不是30-36V?是不是程序内是大约36V停止工作的?
|
|
|
|
| | | | | 模拟电路还可以调试431周围的环路补偿参数,来保证电源的工作稳定性。
那么这种数字电源,对比调试的是PID参数,来让电源稳定工作?
有没有什么计算方法或者经验,比如可以保证比例系数K选取一定的范围,从而让电源工作稳定? |
|
|
| | | | | | | 目前这款电源采用的是PI调节 调节的方式 我这边目前采用的方法就是反复调试 测试其相应速度 因为没有环路分析仪,所以只能采用这种比较笨的方法 不知道这样的回答 版主是否还有疑问?
|
|
|
|
| | | | | | | | | 大佬,,你的程序不是只有P调节吗?哪里来的PI调节?
|
|
|
| | | | | | | | | | | 的确只有P调节,而且还不是PID的P,他那种是检测到输出电压跟设定值不等就对占空比加或减一,这种控制方法使得输出电压的动态响应变得相当糟糕,还不如老老实实用PWM芯片,让单片机调参考电压呢。
|
|
|
|
| | | | | 51单片机的工作频率不够吧。要么电源的工作频率很低,要么控制精度很低
|
|
|
|
|
|
|
|
|
| | | | | 大佬,我使用你的原理图,做出实物发现IR2104的HO没有输出波形,LO倒是有输出波形。
请问你会遇到这样的问题吗?求解决。谢谢
|
|
|
| | | | | | | 厉害了,新人来膜拜一下.......................
|
|
|
|
|
|
|
|
| | | | | 没有下管,上管怎么自举?上管不是有一段时间内处于放大状态? |
|
|
|
|
|
| | | | | PID参数您是怎么确定的呢?不知道在程序里面怎么试凑?
|
|
|
| | | | | | | 这款buck电源技术并不成熟,当初上手时也是匆匆地做了个实验,如果仅仅是用于学习,可以试一试,但不建议实用
|
|
|