世纪电源网社区logo
社区
Datasheet
标题
返回顶部
精华
原创

【捡漏换书】单片机控制开关电源阐述

[复制链接]
查看: 6019 |回复: 41
1
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-6-25 16:02:34
说明,本事从事了4年针对电源“数字化”控制的软件设计,后来转行做电源的硬件开发;
目的就是为了能够更好的了解电源硬件工作原理及其特性(因为被某些硬件工程师忽悠怕了),为电源更好的数字化打下基础;
以下我概述下单片机控制的开关电源基本方法,以及相关注意事项;
其一是单片机输出一个电压(经DA芯片或PWM方式),用作电源的基准电压。这种方式仅仅是用单片机代替了原来的基准电压,可以用按键输入电源的输出电压值,单片机并没有加
入电源的反馈环,电源电路并没有什么改动。这种方式最简单。

这种控制方式只是以数字方法给出电压基准,用来代替了电源面板的电压/电流旋钮,但是请注意单片机给出来的信号是“非常线性”的,电路中存在着离散性,和不确定性故而此类控制方法输出的电压与预期的会有一些差距;
其二是单片机扩展AD,不断检测电源的输出电压,根据电源输出电压与设定值之差,调整DA的输出,控制PWM芯片,间接控制电源的工作。这种方式单片机已加入到电源的反馈环中,代替原来的比较放大环节,单片机的程序要采用比较复杂的PID算法。
第二种控制方法的确定是AD,与PID都占据着系统很长的时间,对于有实时性要求的电源中此种方法需要慎重考虑;
其三是单片机扩展AD,不断检测电源的输出电压,根据电源输出电压与设定值之差,输出PWM波,直接控制电源的工作。这种方式单片机介入电源工作最多。
第三种方式是最彻底的单片机控制开关电源,但对单片机的要求也最高。要求单片机运算速度快,而且能够输出足够高频率的PWM波。这样的单片机显然价格也高。
DSP类单片机速度够高,但目前价格也很高,从成本考虑,占电源成本的比例太大,不宜采用。

不过目前市场有很多单片机都带有DSP功能,比如cortex-M4、dspic等等;
“单片机控制开关电源的缺点在于动态响应不够,优点是设计的弹性好,如保护和通讯,我的想法是单片机和pwm芯片相结合,现在的一般单片机的pwm输出的频率普遍还不是太高,频率太高,想要实现单周期控制也很难。所以我觉得单片机可是完成一些弹性的模拟给定,后面还有pwm芯片完成一些工作。”
建议:还是用开关电源原来的控制芯片来实现。不但价格低,而且容易实现单周期电流检测等保护功能。我们大可不必为数字控制而数字控制。


另外在这块电路布板走线时,请考虑好电磁兼容问题,做好必要的抗干扰措施,在工作中就常会遇到硬件工程师抱怨数字化部分抗干扰能力太差,可是同作为工程师,我们是不是应该把干扰源扼制在源头呢,当然数字化部分抗干扰也需具备一定的能力,以备不测;


以上文档仅供学习探讨,不当之处,敬请斧正,欢迎拍砖。


书已经到手,谢谢世纪电源网
收藏收藏11
aa20897
  • 积分:7461
  • |
  • 主题:43
  • |
  • 帖子:1618
积分:7461
LV7
实习版主
  • 2015-6-25 16:31:01
 
楼主,其二其三是两种数字电源形式?啥区别?
hlp330
  • 积分:21798
  • |
  • 主题:88
  • |
  • 帖子:8138
积分:21798
版主
  • 2015-6-25 17:22:04
 
其三是单片机自带PWM控制
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-6-25 17:59:04
 
是的,自带的PWM,目前大都数单片机都带有这类功能;
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-6-25 17:54:58
 
第二种,是AD采样后,然后PID运算处理后,输出DA信号给PWM芯片的基准输入,一般芯片是管脚EA;
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-6-25 17:56:32
 
第三种,是AD采样后,PID运算处理后,单片机给出直接驱动波形,驱动功率管;省去了第二种工作方式的PWM芯片了。
westbrook
  • 积分:8190
  • |
  • 主题:13
  • |
  • 帖子:1304
积分:8190
LV8
副总工程师
  • 2015-6-25 18:17:27
 
楼主,现在单片机实现的“数字化”主要应用是哪个层面,据我所知目前的中大功率模块的控制一般采用DSP来进行。
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-6-26 06:02:49
 
就目前电源(我所了解的)的数字化,目前只是简单的应用将控制基准与驱动波形进行了数字化;还有就是利用单片机的程控功能,远程对电源进行操作;
现在有相当一部分数字化电源采用DSP不是因为它的数据处理的特性,而是它的高速,因此我仍为如果只是为了提高采样速度而采用DSP是没有必要的,这个得100多人民币吧;同样的速度我们可以选择FPGA;
目前很多数字化电源采用2812,此款DSP是定点,用于精度要求不是太精的电源是可以的;若需要更加精度的控制,则是选用28335;
如果要选用DSP作为控制单元,请充分发挥其数据处理的能力,这才是精华所在,一点建议,仅供参考;
westbrook
  • 积分:8190
  • |
  • 主题:13
  • |
  • 帖子:1304
积分:8190
LV8
副总工程师
  • 2015-6-26 08:50:39
 
现在通信电源所采用的数字化DSP控制,就是利用了其高速、精度高等一系列优点,模块所有的功能均集成在DSP内部,包括软启动、PFC控制、DCDC控制,环路、显示、精度、通信、均流等。如果只是简单的将控制基准与驱动波形进行数字化,还是单片机比较有优势。
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-6-26 14:13:42
 
8楼的关于用DSP做数字电源的观点很到位
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-6-29 13:36:59
 
如果所有的功能都加入到一片DSP上,可以考虑采用植入嵌入式操作系统,对内部程序进行合理的进程划分,否则程序执行周期相对较长,是不可取的。
westbrook
  • 积分:8190
  • |
  • 主题:13
  • |
  • 帖子:1304
积分:8190
LV8
副总工程师
  • 2015-6-29 16:41:42
 
可以把采样、环路计算放在中断程序,其他部分放在主程序。采用DSP控制主要就是利用它的高速、实时等优点。你说的嵌入式操作系统会不会太麻烦,而且能满足模块对高速的要求吗?
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-6-30 10:02:54
 
采样和环路计算放在中断处理程序里,中断处理时其他程序几乎不执行的,会占用系统资源的,一般只建议把少量的处理程序放在中断里。
现在很多嵌入式单片机都已经可以对中断任务进行合理的优先级划分,嵌入式操作系统也可以让内部程序有时序,和优先级别的完成;
嵌入式操作系统对系统内部的程序“分任务处理”,对程序可以做到一目了然,也程序更加精简,更易读,更易移植;尤其可以缩短开发周期,对于有时间要求的项目,还有项目内需要处理目标任务较多时可以使用,如果就只是简单的控制系统是没有必要的;
至于高速的要求,有个 电动汽车充电桩项目 我是这样做的,需要高速处理的部分,在中断内置位标志位,激活对应的高级别任务,完成后即可Kill任务,可以做到节省资源,这样就可以避免了冗长的main函数;
westbrook
  • 积分:8190
  • |
  • 主题:13
  • |
  • 帖子:1304
积分:8190
LV8
副总工程师
  • 2015-6-30 18:44:07
 
一般我们把PFC电压+电流环路,DCDC电压+电流环路放在中断程序里面,因为环路计算的实时性要求很高,需要在中断里执行,一般采用DSP的ePWM模块定时的触发环路计算中断。而PFC电压环的带宽低,放在计算中断里的分拍里执行即可,PFC电流环和DCDC环路需要放在主中断里每拍都要进行计算。
如果采用PFC+LLC的拓扑结构,执行中断的频率可以选择PFC开关频率也可以选择LLC的开关频率,由于LLC是变频控制,而且最高工作频率高,从考虑DSP芯片资源的角度来说,却不希望计算中断的频率太高,因为频率越高在中断里可执行的代码就减少,可能会造成环路计算的代码不能够在一个计算中断周期里执行完。由于PFC频率一般采用PWM定频控制,所以中断的频率采用PFC开关管频率。
至于其他对计算实时性要求不是很高的,可以放在主程序中,因为环路每个周期都要执行一次,其他的功能并不需要每周期都要运算。
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-7-1 09:00:10
 
那么我想问下,PID调整频率相比于主开关频率,这个比值多少为合适,这是一直困扰我的问题;希望能进一步解答;
westbrook
  • 积分:8190
  • |
  • 主题:13
  • |
  • 帖子:1304
积分:8190
LV8
副总工程师
  • 2015-7-1 10:09:49
 
PID在中断中每拍都执行,而执行中断的频率可以使PFC开关频率也可以使DCDC开关频率,一般选取PFC开关频率作为中断计算。
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-7-1 15:58:19
 
我可以理解为PID的计算频率与PFC计算频率一直吗?
另外请问下为了避免PFC与DC-DC之间相互的干扰,一般建议两者频率保持一致;不知您对此这两个频率有何见解?
另外问下,为了避免功率开关频率对数字芯片产生干扰,我们选择数字芯片的工作频率时应该遵循什么规则?
westbrook
  • 积分:8190
  • |
  • 主题:13
  • |
  • 帖子:1304
积分:8190
LV8
副总工程师
  • 2015-7-2 15:51:44
 
PID的计算是在中断里计算的,而中断的触发采用PFC的开关频率,所以PID计算的频率即为PFC的开关频率。
比如采用PFC+LLC典型拓扑电路,如果采用平均电流模式控制的话PFC开关频率为固定的,而LLC控制频率为变频,两者是无法使用同一频率的。
我们选择数字芯片的工作频率肯定是越高越好,这样才与模拟的更接近,但是工作频率高了会无法满足中断等其他计算的的时间,对片内资源是有需求的。所以,在满足中断资源的情况下频率越高越好。
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-7-2 15:55:34
 
时钟频率与开关频率是否要有注意的地方,防止两者之间有干扰?
westbrook
  • 积分:8190
  • |
  • 主题:13
  • |
  • 帖子:1304
积分:8190
LV8
副总工程师
  • 2015-7-2 15:57:33
 
这个我还没有了解到这方面的内容,我可以问问我们的软件工程师。我接触数字电源也不久,所以还有很多东西也不是很明白,大家共同探讨共同进步。
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-7-2 16:20:37
 
期待您的回复
westbrook
  • 积分:8190
  • |
  • 主题:13
  • |
  • 帖子:1304
积分:8190
LV8
副总工程师
  • 2015-7-16 09:11:53
 
时钟频率是DSP的主频进行决定的,而开关频率是由采样---环路计算--PWM寄存器更新--PWM发波来决定的。
比方说,2803X的主频是60MHz,我们就需要计算整个运算所需要多长时间,再由这个来决定工作频率。例如工作频率300KHz,则DSP对应的周期寄存器就是100CLK,一般我们采用三角形载波,一个周期对应200CLK,一个周期内要完成采样---环路计算--PWM寄存器更新--PWM发波所有运算,不然PWM的更新发波就需要延时一个周期,这样会影响到环路带宽、增益等相关参数。最好是当周期采样到的变换当周期完成PWM的变化,这样才能尽量减小延时带来的不利影响。
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-7-17 12:14:45
  • 倒数10
 
谢谢了,受教了,讲的很详细,如果有关于数字电源更好的想法,麻烦回帖。
chapooo
  • 积分:253
  • |
  • 主题:7
  • |
  • 帖子:28
积分:253
LV3
助理工程师
  • 2015-6-30 16:15:01
 
也谈数字电源https://bbs.21dianyuan.com/219797.html#buttom" rel="nofollow" target="_blank">http://https://bbs.21dianyuan.com/219797.html#buttom 希望不吝指教
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-6-29 13:34:36
 
dspic的数字电源,大家可以参考
Digital Power Starter Kit User Guide_DS52078A.pdf
nc965
  • 积分:93878
  • |
  • 主题:115
  • |
  • 帖子:27413
积分:93878
版主
  • 2015-6-30 12:17:38
 
看着还不错
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-6-30 15:10:09
 
看来比较感兴趣,附上图纸及PCB图


Schematic Prints.pdf
原理图及PCB AD软件打开.zip
raining_123
  • 积分:229
  • |
  • 主题:13
  • |
  • 帖子:66
积分:229
LV3
助理工程师
  • 2015-7-1 10:29:51
 
请教一下, 关于用单片机控制的其一和其二, 里面用单片机输出一个电压基准:
1. 是通过电流型DA输出一个电流, 再转为电压吗?
2. 您说的电压基准是接到PWM芯片的基准端吗? 这里面如果采用单片机控制数字电阻,接到反馈端, 得到的效果与其一应该类似吧? 请问您觉得哪一种更合理呢?
3. 其二里面应该需要单片机内部用PID算法来调节环路吧? 是否需要综合考虑外接补偿环路和单片机内部程序呀?
请不吝赐教, 谢谢!
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-7-1 16:21:50
 
谢谢您的参与
1、电压基准,有两种形式,一种是单片自带的DA,还有就是外置的DA,这里所说到的电压基准是电压型DA,至于您所提到的电流型DA,我没有用过,请原谅我的孤陋寡闻;
2、电压基准可以直接接到PWM芯片的基准端EA,前提是您程序的PID算法很牛掰;数字电阻目前没有接触到,可否对其性能特点进行简要的说明;
3、这个方法就是替代了调节环路,至于是否要综合考虑这个得看实际应用情况,比如您的PID程序是否能够实时的进行调整,另外还得调整后整机的输出情况而定;这个因系统而易,我参与的项目中有综合使用的,也有就是直接单片机内部PID输出的;
raining_123
  • 积分:229
  • |
  • 主题:13
  • |
  • 帖子:66
积分:229
LV3
助理工程师
  • 2015-7-2 09:11:53
 
谢谢您! 我是半路出家的,基础不扎实, 还望多多指教包涵~
1. 我说的那种数字电阻,实际上是一个芯片,内部有多个电阻,可通过单片机输出数字信号控制电阻阻值的变化, 将电阻接入反馈端,可以经负反馈改变输出电压。。。实际上就是用一个数字电阻代替了变阻器,来按键调压。。
2. 我对您说的单片机控制开关电源这方面比较感兴趣,我现在的思路是考虑用您说的其一或者其二,或者我之前的那种数字电阻进行设计。就是还是希望信号由PWM芯片产生,单片机不直接发出PWM波形,而是进行调节。
3. 您的“其一”是用单片机来改变电压基准,但单片机没接入反馈端~ 这时反馈端如果还是采用TL431和光耦等反馈基准为定值(2.5V)的类似结构,当电压基准发生变化(不为2.5V时),应该会出现问题吧? 是不是说这时需要改变一下反馈端的结构呢?
4. 您有的项目里综合使用了调节环路和单片机PID,请问此时是不是可以说, 拿掉其中一个,电源也应该可工作~~ 我现在是想把模拟部分作成一个类似黑箱的东西, 然后把单片机核心的数字电路接入一或两个接口(基准及反馈)。 不知这种的可行性~~
O(∩_∩)O谢谢您的耐心解答, 获益匪浅~~~
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-7-2 11:39:15
 
数字电阻我没有用过,本着谨慎的原则,我不能给您准确的答复,您可以试一下,我也很想知道结果;
“其一”的用法,DA输出(设2.5V)给PID调节环路,如果您的输出TL431配置采样达不到2.5V,将会处于失控状态,很有可能会出现炸机的现象,如果您的输出采样达到了2.5V,那么这个电压也很有可能不是您想要的电压,具体得看您得TL431得配置电路,如果您的输出能够很好得达到2.5V,也有可能机器会出现“打嗝”得现象,这个还得看TL431得配置;
有一点您必须知道PID输入与反馈端在稳定时,电压几乎保持着一致;
您的第四点调节环路在移去单片机PID时需要另外引入基准源;移去调节环路,单片机PID可以直接参与系统工作;单片机引入接口注意“共地”得问题,这个有学问,我也讲不太好;
raining_123
  • 积分:229
  • |
  • 主题:13
  • |
  • 帖子:66
积分:229
LV3
助理工程师
  • 2015-7-2 12:40:30
 
好的,谢谢! 还有一点想求教, 就是您这个里面“其二”应该是将输出转为数字信号进入单片机再处理,来做反馈的。 那么“其一”里面请问您是采用什么样的硬件电路来使PID输入和反馈端在基准变化时仍可保持一致呢? O(∩_∩)O谢谢~
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-7-2 14:25:16
 
这个请您自己到网上找PID电路,网上很多得,这里我就不献丑了。
ncudonggua
  • 积分:113
  • |
  • 主题:1
  • |
  • 帖子:5
积分:113
LV2
本网技师
  • 2015-7-21 02:15:45
  • 倒数9
 
楼主你好 我这几天刚接触这个开关电源(07年电赛E题)
按照老师介绍的方案是boost电路加uc3843+AD模块再加单片机来控制
然后我想直接用单片机来代替这些其余功能 您看这样可以不 我的思路是这样的


boost主电路,然后用MSP430F149 自带的AD采样,软件PID算法,改变PWM占空比,再PWM输出,PWM用光耦隔离,再来一发图腾柱驱动boost主电路里的MOS管(IRF540),不知道这样的方法可行吗?因为前边看到说是需要单片机运算速度快一点,得32位,430是16位机,校内也没人这样做,不知道现实不现实。
yzpc05d_x04
  • 积分:6298
  • |
  • 主题:85
  • |
  • 帖子:1034
积分:6298
版主
  • 2015-7-21 11:06:12
  • 倒数8
 
这个方案是可行的,前提是要保证一个频率周期内将参数调整过来;另外还得注意下环路振荡周期;
如果对电源响应要求不高,这个快一点的8位机也是可以实现;
ncudonggua
  • 积分:113
  • |
  • 主题:1
  • |
  • 帖子:5
积分:113
LV2
本网技师
  • 2015-7-22 11:24:36
  • 倒数7
 
昨天去实验室焊了一下发现出来的波形根本不是Multisim里模拟的波形
F149在别人 我就用MSP430G2553输出 PWM 结果出来的居然是正弦波 好扯啊
我模电学的不行啊 能麻烦你帮我看看电路吗 模拟出来的波形都很好啊 焊工业没问题 用万用表都检查过了 是不是出现了什么致命的电路错误




扔在那边 走到1.2s的时候发现报错了我再查查哪里错了
nc965
  • 积分:93878
  • |
  • 主题:115
  • |
  • 帖子:27413
积分:93878
版主
  • 2015-7-22 11:55:15
  • 倒数6
 
首先,光耦要用高速的,你用的是啥?
其次,在开机或者关机中途MCU脱离控制的任何时候,图腾柱电路要确保不输出高电平,否则炸鸡。
最后,驱动波形的细节是否满意,要有电路及元件的配合。
ncudonggua
  • 积分:113
  • |
  • 主题:1
  • |
  • 帖子:5
积分:113
LV2
本网技师
  • 2015-7-22 19:34:55
  • 倒数5
 
1.我用的就是4N25
2.这个我不清楚 脱机的时候 信号发生器都没接 应该不会炸鸡吧,,
炸鸡的意思是损坏三极管吗?
3.用Multisim模拟的输出波形非常满意 要放大很多才能看到抖动
结果焊出来 一接示波器 啥都没有


Multisim模拟输入的 PWM 30KHZ 没问 50KHZ 会报错。。。
ncudonggua
  • 积分:113
  • |
  • 主题:1
  • |
  • 帖子:5
积分:113
LV2
本网技师
  • 2015-7-22 19:35:46
  • 倒数4
 
大牛给看看我这个电路有啥问题不
我从4N25 那边引入 PWM 输出没有
把隔离电路去掉 直接PWM进三极管 输出我需要的PWM
这是为什么?
Ting_hai
  • 积分:108
  • |
  • 主题:0
  • |
  • 帖子:4
积分:108
LV2
本网技师
  • 2015-7-24 23:02:10
  • 倒数3
 
我用DSP做过升压电源,驱动可以用6N137+IR2104非常好用,6N137驱动电流6-15mA ,单片机引脚输出能力不够的话可以用三极管放大一下!用PID算法,数控非常好使,负载调整率和电压调整率都小于0.05%。但是信号采样最好也进行线性隔离,保证处理器的安全!另外,工作在开关状态的器件,参数匹配相对简单,没必要用Multisim仿真,仿真只是在仿真你的思路,对特别具体实际的电路仿真往往是无意义的。我也是新手
ncudonggua
  • 积分:113
  • |
  • 主题:1
  • |
  • 帖子:5
积分:113
LV2
本网技师
  • 2015-7-25 15:27:28
  • 倒数2
 
哎 关键是学校没有这些器件 所以自己用三极管撘。。。
想问问你的过流保护电路当初是怎么做的
用DPS 的IO口接三极管控制继电器吗?
我不大明白这个继电器要做什么,保护电源和负载,那我电流过大的时候直接把Vout通过常闭接地吗。。。。 我是新新手
木木很-shy
  • 积分:5611
  • |
  • 主题:1
  • |
  • 帖子:336
积分:5611
LV8
副总工程师
最新回复
  • 2024-4-15 22:15:05
  • 倒数1
 
反激用单片机搞的话,用哪种方案好一些呢?
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦8层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)82437996 /(138 2356 2357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报 | 网站举报

Copyright 2008-2024 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348号-2   津公网安备 12010402000296号