• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

也谈单片机控制的开关电源

关于单片机控制开关电源的文章,本版发出了不少帖,争论也很激烈.趁此机会我也谈谈我的几点看法.

单片机控制开关电源,单从对电源输出的控制来说,可以有几种控制方式.
其一是单片机输出一个电压(经DA芯片或PWM方式),用作电源的基准电压.这种方式仅仅是用单片机代替了原来的基准电压,可以用按键输入电源的输出电压值,单片机并没有加入电源的反馈环,电源电路并没有什么改动.这种方式最简单.
其二是单片机扩展AD,不断检测电源的输出电压,根据电源输出电压与设定值之差,调整DA的输出,控制PWM芯片,间接控制电源的工作.这种方式单片机已加入到电源的反馈环中,代替原来的比较放大环节,单片机的程序要采用比较复杂的PID算法.
其三是单片机扩展AD,不断检测电源的输出电压,根据电源输出电压与设定值之差,输出PWM波,直接控制电源的工作.这种方式单片机介入电源工作最多.
第三种方式是最彻底的单片机控制开关电源,但对单片机的要求也最高.要求单片机运算速度快,而且能够输出足够高频率的PWM波.这样的单片机显然价格也高.
DSP类单片机速度够高,但目前价格也很高,从成本考虑,占电源成本的比例太大,不宜采用.
廉价单片机中,AVR系列最快,具有PWM输出,可以考虑采用.但AVR单片机的工作频率仍不够高,只能是勉强使用.下面我们具体计算一下AVR单片机直接控制开关电源工作可以达到什么水平.
AVR单片机中,时钟频率最高为16MHz.如果PWM分辨率为10位,那么PWM波的频率也就是开关电源的工作频率为16000000/1024=15625(Hz),开关电源工作在这个频率下显然不够(在音频范围内).那么取PWM分辨率为9位,这次开关电源的工作频率为16000000/512=32768(Hz),在音频范围外,可以用,但距离现代开关电源的工作频率还有一定距离.
不过必须注意,9位分辨率是说功率管导通-关断这个周期中,可以分成512份,单就导通而言,假定占空比为0.5,则只能分成256份.考虑到脉冲宽度与电源的输出并非线性关系,需要至少再打个对折,也就是说,电源输出最多只能控制到1/128,无论负载变化还是网电源电压变化,控制的程度只能到此为止.
还要注意,上面所述只有一个PWM波,是单端工作.如果要推挽工作(包括半桥),那就需要两个PWM波,上述控制精度还要减半,只能控制到约1/64.对要求不高的电源例如电池充电,可以满足使用要求,但对要求输出精度较高的电源,这就不够了.
综上所述,AVR单片机只能很勉强地使用在直接控制PWM的方式中.
但是上列第二种控制方式,即单片机调整DA的输出,控制PWM芯片,间接控制电源的工作,却对单片机没有那么高的要求,51系列单片机已可胜任.而51系列单片机的价格比AVR还是低一些.
网友coocle曾发表他的看法:“单片机控制开关电源的缺点在于动态响应不够,优点是设计的弹性好,如保护和通讯,我的想法是单片机和pwm芯片相结合,现在的一般单片机的pwm输出的频率普遍还不是太高,频率太高,想要实现单周期控制也很难.所以我觉得单片机可是完成一些弹性的模拟给定,后面还有pwm芯片完成一些工作.”
无独有偶,在电子电源综合区中有篇原创文章《DPWM电路的研究》,也是用数字电路输出PWM波直接控制开关电源工作.他是用CPLD再加单片机进行控制.众所周知CPLD的价格以及开发难度绝非单片机可比,那么他为什么要这样做?原因如作者所说,由于单片机的PWM宽度小,导致精度低,不能满足系统的要求.作者又说,在这些情况下,应用片外PWM电路无疑是一种理想的选择.他选择CPLD芯片来实现PWM.我则建议:还是用开关电源原来的控制芯片来实现.不但价格低,而且容易实现单周期电流检测等保护功能.我们大可不必为数字控制而数字控制.
敬请版主及各位朋友指正.
全部回复(291)
正序查看
倒序查看
2004-06-26 14:36
好,我去年曾看过一本杂志,很多专家都在讨论,到2004年,几乎所有的模拟电路都可以用数字电路替代,唯独有两个不能,一个就是POWER(电源),另一个就是晶振,所以电源,如果能单独用数字搞定,是不可能的,单片机在电源中只能起一个符助作用,如,显示啊,PWM调制,电压,电流,温度,环境,检测,然后控制指示啊,有,指示灯,LCD,LED,控制器,报警,控制马达转动啊,等等,如果要用单片机代替这些IC,3843,3842,TL494,是非常不划算的,现就一个单带I/O口的单片机也要二块多,再加一个晶振接近三块,还有就是单片机,供电电路不能相3843那样,我们必须给它一个精确的稳定的电源电压,否则又会导致一些问题,很麻烦!!!单片机如果带A/D口,PWM口,目前市场最少也要三块多,加一个晶振就是接近四块了,单片机控制,有待着的单片机技术的迅速发展!!!!!!!!!!
0
回复
2004-06-27 16:56
@一个好人
好,我去年曾看过一本杂志,很多专家都在讨论,到2004年,几乎所有的模拟电路都可以用数字电路替代,唯独有两个不能,一个就是POWER(电源),另一个就是晶振,所以电源,如果能单独用数字搞定,是不可能的,单片机在电源中只能起一个符助作用,如,显示啊,PWM调制,电压,电流,温度,环境,检测,然后控制指示啊,有,指示灯,LCD,LED,控制器,报警,控制马达转动啊,等等,如果要用单片机代替这些IC,3843,3842,TL494,是非常不划算的,现就一个单带I/O口的单片机也要二块多,再加一个晶振接近三块,还有就是单片机,供电电路不能相3843那样,我们必须给它一个精确的稳定的电源电压,否则又会导致一些问题,很麻烦!!!单片机如果带A/D口,PWM口,目前市场最少也要三块多,加一个晶振就是接近四块了,单片机控制,有待着的单片机技术的迅速发展!!!!!!!!!!
还是做技术储备比较好.
帖一篇文章.Putting Profit Into Power Electronic Products with
Digital Control
1088326538.pdf
0
回复
maychang
LV.6
4
2004-06-27 19:09
@feelbetter
还是做技术储备比较好.帖一篇文章.PuttingProfitIntoPowerElectronicProductswithDigitalControl1088326538.pdf
多谢lwzss!
0
回复
2004-06-28 10:35
@maychang
多谢lwzss!
深有感触,多谢,LWZSS
0
回复
css93
LV.1
6
2004-06-28 16:47
maychang老大,我是比较弱,但是实在不明白
你说的这个pwm的分辨率是什么意思?
你说的这个9位分辨率是说导通关断过程可分为512份,那是什么意思呢,整个的pwm周期分成个512份么?那每一份代表什么呢?1个机器周期吧?
但是,即使是这样,这跟控制的效果有什么关系呢?照那样子说来的话,这个分辨率如果搞的话,就是一份多几个周期而易啊,与实际的精度有什么关系呢?还有,所说的这个脉冲宽度与电源的输出并非线性关系,至少要再打个对折,嗯,这是怎么得出来的呢?
不好意思,偶是新手,请不要嫌偶烦啊
0
回复
2004-06-28 17:18
@css93
maychang老大,我是比较弱,但是实在不明白你说的这个pwm的分辨率是什么意思?你说的这个9位分辨率是说导通关断过程可分为512份,那是什么意思呢,整个的pwm周期分成个512份么?那每一份代表什么呢?1个机器周期吧?但是,即使是这样,这跟控制的效果有什么关系呢?照那样子说来的话,这个分辨率如果搞的话,就是一份多几个周期而易啊,与实际的精度有什么关系呢?还有,所说的这个脉冲宽度与电源的输出并非线性关系,至少要再打个对折,嗯,这是怎么得出来的呢?不好意思,偶是新手,请不要嫌偶烦啊
哈哈,分辩率和单片机的位数有关,位数越高就越高!!!
0
回复
css93
LV.1
8
2004-06-28 18:55
@一个好人
哈哈,分辩率和单片机的位数有关,位数越高就越高!!!
这不用你说我都知道,可是,这个分辨率你要搞清楚是什么的分辨率
我们通常重视的是电源输出的精度问题,就如maychang所言,如果一个电源的精度要求0.1%,那么pwm精度至少要求10bit,可是,这不是一回事,前者是输出电压的精度,后者是pwm的精度,两者能够这么直接等同运算么?
0
回复
maychang
LV.6
9
2004-06-29 00:44
@css93
这不用你说我都知道,可是,这个分辨率你要搞清楚是什么的分辨率我们通常重视的是电源输出的精度问题,就如maychang所言,如果一个电源的精度要求0.1%,那么pwm精度至少要求10bit,可是,这不是一回事,前者是输出电压的精度,后者是pwm的精度,两者能够这么直接等同运算么?
是这样:
开关电源控制输出,方法是控制功率管导通的占空比.现在控制脉冲频率已定(周期已定),调整占空比就是调整脉冲有效电平的宽度.假定电源由于某种原因,例如负载变化,输出降低了1%,要调整脉冲宽度使输出稳定到原值,而脉冲宽度只能分成20份(有的资料上称粒度),显然无法调整.脉冲宽度只能增加或减少至少1份.
确实,脉冲宽度一旦增加,电源的输出也增加,于是调整电路又会将脉冲宽度降回来.等到电源输出又低了,调整电路还会使脉冲宽度增加,从而输出可以稳定在某值.但电源的输出实际上是波动的,波动的频率取决于调整电路的频率响应曲线和脉冲宽度的调整粒度.这一波动频率远低于开关电源的工作频率,输出滤波器很难将其滤除.
极端情况,我们不妨设想只有两个脉冲宽度,那就是有和没有(相当于1位).电源是否可以工作?当然可以,只不过输出必定大跳,但平均值仍是稳定的.其它的电器例如电冰箱,就是这样工作的.
PWM波的精度低(例如6位),输出平均值稳定但带有波动,用在充电器等设备上完全没有问题,但不能用于要求高的场合,例如给音频设备供电.
输出电压的精度当然与PWM波的精度(粒度)是两回事,但这两者有关联.
0
回复
css93
LV.1
10
2004-06-29 08:25
@maychang
是这样:开关电源控制输出,方法是控制功率管导通的占空比.现在控制脉冲频率已定(周期已定),调整占空比就是调整脉冲有效电平的宽度.假定电源由于某种原因,例如负载变化,输出降低了1%,要调整脉冲宽度使输出稳定到原值,而脉冲宽度只能分成20份(有的资料上称粒度),显然无法调整.脉冲宽度只能增加或减少至少1份.确实,脉冲宽度一旦增加,电源的输出也增加,于是调整电路又会将脉冲宽度降回来.等到电源输出又低了,调整电路还会使脉冲宽度增加,从而输出可以稳定在某值.但电源的输出实际上是波动的,波动的频率取决于调整电路的频率响应曲线和脉冲宽度的调整粒度.这一波动频率远低于开关电源的工作频率,输出滤波器很难将其滤除.极端情况,我们不妨设想只有两个脉冲宽度,那就是有和没有(相当于1位).电源是否可以工作?当然可以,只不过输出必定大跳,但平均值仍是稳定的.其它的电器例如电冰箱,就是这样工作的.PWM波的精度低(例如6位),输出平均值稳定但带有波动,用在充电器等设备上完全没有问题,但不能用于要求高的场合,例如给音频设备供电.输出电压的精度当然与PWM波的精度(粒度)是两回事,但这两者有关联.
谢谢maychang啦,还有一个问题就是
你所说的粒度到10位甚至12位,那么,所保证的电源精度约为0.1%
请问,怎样来进行这样的估算呢,我是说,已经知道了电源的精度,如何
大体上估计一下pwm的粒度呢
0
回复
2004-06-29 09:21
@css93
谢谢maychang啦,还有一个问题就是你所说的粒度到10位甚至12位,那么,所保证的电源精度约为0.1%请问,怎样来进行这样的估算呢,我是说,已经知道了电源的精度,如何大体上估计一下pwm的粒度呢
10位的单片机A/D口能检测到4mV左右的电压上降,
MAYCHANG说得很对,总是就在PWM调制,烦就烦在这里,所以作充电器时,这些恒流恒压的任务,是不会交给单片机的,我喜欢交给比较器,给一个基准源,然后来检测输出电压电流,让比较器自动调整,这种效果很好,
0
回复
maychang
LV.6
12
2004-06-29 10:48
@css93
谢谢maychang啦,还有一个问题就是你所说的粒度到10位甚至12位,那么,所保证的电源精度约为0.1%请问,怎样来进行这样的估算呢,我是说,已经知道了电源的精度,如何大体上估计一下pwm的粒度呢
由于开关电源脉冲宽度与输出并非线性关系,而且这个函数我们不知道,所以只能估计.
输出要稳定到0.1%也就是千分之一,PWM也至少应该能分辨到千分之一,就是10位,此时如前所说的波动如果存在也已经相当小.为了保险起见,分辨率大些更好.如果10位有困难,9位或8位不是不行,但要做好电源输出波动比较大的准备.例如开关电源输出到各设备,而各设备有线性稳压器(例如7805之类),则开关电源输出波动大些也无妨.
0
回复
2004-06-29 12:22
@maychang
由于开关电源脉冲宽度与输出并非线性关系,而且这个函数我们不知道,所以只能估计.输出要稳定到0.1%也就是千分之一,PWM也至少应该能分辨到千分之一,就是10位,此时如前所说的波动如果存在也已经相当小.为了保险起见,分辨率大些更好.如果10位有困难,9位或8位不是不行,但要做好电源输出波动比较大的准备.例如开关电源输出到各设备,而各设备有线性稳压器(例如7805之类),则开关电源输出波动大些也无妨.
这个靠数学建模啊,好多东西,只有找专学数学的专业的人来推,
我有一个同学就是数学专业的,我感觉,现很缺这种人才!!!
0
回复
css93
LV.1
14
2004-06-29 13:43
@maychang
由于开关电源脉冲宽度与输出并非线性关系,而且这个函数我们不知道,所以只能估计.输出要稳定到0.1%也就是千分之一,PWM也至少应该能分辨到千分之一,就是10位,此时如前所说的波动如果存在也已经相当小.为了保险起见,分辨率大些更好.如果10位有困难,9位或8位不是不行,但要做好电源输出波动比较大的准备.例如开关电源输出到各设备,而各设备有线性稳压器(例如7805之类),则开关电源输出波动大些也无妨.
明白了,非常感谢maychang,谢谢greatskymei
0
回复
2004-06-29 18:18
@css93
明白了,非常感谢maychang,谢谢greatskymei
哈哈,多多交流多多交流!!!
0
回复
woshihero
LV.4
16
2004-07-16 22:06
@一个好人
哈哈,多多交流多多交流!!!
greatskymei和maychang两位老大能不能说一下硬件电路呢?ieee上这方面的资料不少,但我找的资料基本上是只有原理啊,用dsp直接控制的较多,我猜是dsp(比如2407)一般都用几路pwm输出,不像51单片机要自己扩展外围电路.另外关于用单片机做D/A然后控制pwm芯片的资料就更少了,我真不知道该怎么做硬件电路,大哥们能不能给举个例子?万分感谢!
0
回复
2004-07-17 14:51
@woshihero
greatskymei和maychang两位老大能不能说一下硬件电路呢?ieee上这方面的资料不少,但我找的资料基本上是只有原理啊,用dsp直接控制的较多,我猜是dsp(比如2407)一般都用几路pwm输出,不像51单片机要自己扩展外围电路.另外关于用单片机做D/A然后控制pwm芯片的资料就更少了,我真不知道该怎么做硬件电路,大哥们能不能给举个例子?万分感谢!
1090047048.pdf

PWM作A/D转换!!
0
回复
2004-07-17 14:52
@一个好人
1090047048.pdfPWM作A/D转换!!
1090047115.pdf


用比较器进行高精度AD转换
0
回复
2004-07-17 14:52
@一个好人
1090047115.pdf用比较器进行高精度AD转换
1090047142.pdf


用比较器作AD转换源程序
0
回复
2004-07-17 14:53
@一个好人
1090047142.pdf用比较器作AD转换源程序
1090047179.pdf


∑-△ADC原理
0
回复
woshihero
LV.4
21
2004-07-26 15:34
@一个好人
1090047179.pdf∑-△ADC原理
感谢大哥!
0
回复
l_c_s123
LV.3
22
2004-08-13 13:38
maychang兄:现在有些电源像BUS Converter,他们的输出电压不调整,我觉得就可以用有pwm模块的单片机来作电源控制IC,它还可以完成所以的保护功能.你觉得呢
0
回复
maychang
LV.6
23
2004-08-15 11:12
@l_c_s123
maychang兄:现在有些电源像BUSConverter,他们的输出电压不调整,我觉得就可以用有pwm模块的单片机来作电源控制IC,它还可以完成所以的保护功能.你觉得呢
I_C_s123兄:
很抱歉,我不知道BUS Converter,也就不能提出看法.
这是交流-直流转换的设备么?
0
回复
l_c_s123
LV.3
24
2004-08-16 09:29
@maychang
I_C_s123兄:很抱歉,我不知道BUSConverter,也就不能提出看法.这是交流-直流转换的设备么?
不是的,是48V降压倒8V,9.6V和12V,起到隔离降压的作用,然后用POL来变换到5V,3.3V等各种电压.这是个电源的发展方向.
0
回复
maychang
LV.6
25
2004-08-16 18:47
@l_c_s123
不是的,是48V降压倒8V,9.6V和12V,起到隔离降压的作用,然后用POL来变换到5V,3.3V等各种电压.这是个电源的发展方向.
如果是这样,应该没有问题.
但这样的电源模块市场上很多,价格也不高.用单片机进行控制,成本上是否合算,还需要考虑.
0
回复
l_c_s123
LV.3
26
2004-08-17 11:08
@maychang
如果是这样,应该没有问题.但这样的电源模块市场上很多,价格也不高.用单片机进行控制,成本上是否合算,还需要考虑.
如果做模块电源的话,我个人认为还是可行的.起码它省掉了,控制IC,还有一大堆的保护电路,Enable电路,输入电压检测电路,对于那些对于电路板SIZE要求非常严格的application,我觉得它还是有较为优势的地方.
0
回复
maychang
LV.6
27
2004-08-18 23:20
@l_c_s123
如果做模块电源的话,我个人认为还是可行的.起码它省掉了,控制IC,还有一大堆的保护电路,Enable电路,输入电压检测电路,对于那些对于电路板SIZE要求非常严格的application,我觉得它还是有较为优势的地方.
不妨先做个电路设计,分析一下成本与性能,然后再考虑做电路板.
祝你成功!
成功之后别忘了告诉我们一声!
0
回复
l_c_s123
LV.3
28
2004-08-19 09:25
@maychang
不妨先做个电路设计,分析一下成本与性能,然后再考虑做电路板.祝你成功!成功之后别忘了告诉我们一声!
是啊,想做这个事,现在在选单片机呢,
0
回复
2004-08-25 19:53
我正在做课程设计,《单端反激变换器数字控制系统》,希望多多指教!
0
回复
maychang
LV.6
30
2004-08-25 21:41
@xiaogang1982
我正在做课程设计,《单端反激变换器数字控制系统》,希望多多指教!
共同研究,共同提高.
0
回复
l_c_s123
LV.3
31
2004-08-26 09:18
@xiaogang1982
我正在做课程设计,《单端反激变换器数字控制系统》,希望多多指教!
是用单片机做控制吗?现在怎么样了
0
回复