切换到宽版
  • 28495阅读
  • 151回复

STM32直接控制MOS的极高效率的电源设计 [复制链接]

上一主题 下一主题
离线gavinfree
 

发帖
2056
M币
765
专家
10
粉丝
28
— 本帖被 香瑶 设置为精华,作者+3000M币+5专家(2017-07-18) —
鉴于目前大家常用的开关电源工作效率都不太高的现状,我和@2545889167 深感痛心,并且决定打造一款极高效率的双向DC-DC电源,它使用stm32f334作为主控,直接产生高频pwm控制mos管的通断,并配合同步整流,达到极高的工作效率。



先来两张电源总体的图片。至于工作效率,来一张降压的图展示一下。


输入30.17V,电流0.706A,输出20.76V,电流1.0036A,于是可得降压效率为97.8%,效率还OK吧。再来一张升压的图片


输入16.70V ,电流1.858A, 输出30.78V,电流 0.9962A,效率98.82%。这两张是我们这个电源极高工作效率的一个缩影。一般来说,对于16~36V的输入,工作电流1~2A,降压效率都在95%以上,升压效率略高,在96%左右。1L先简单解释这个电源的原理,2L将详细介绍。这个电源采用双向半桥拓扑结构,结构极其简单,仅由两个mos管,一个电感,一个mos驱动芯片组成。mos驱动芯片型号为ucc27211,TI家的,mos驱动电流最大4A,典型应用电路为


这款芯片内置自举二极管,因此,外部元件极其少。事实上,我们电源的实际电路就如上图所示,只是变压器的地方是一个电感而已。实际电路图在2L有介绍。这个电路的核心为pwm的产生和mos管的选择。因此,我们选择了意法半导体专门为工业应用设计的334型号来作为主控,产生高频pwm。mos管方面,应当选择导通电阻小的mos管,这个电源设计中,我们选择了irf3205,8mOhm的导通电阻,使得我们电源的热损耗极其小。

1L的简介到此为止,详细介绍请移步2L。
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共32条打赏M币+488专家+1
cushion 专家 +1 - 10-26
powell007 M币 +13 認真發帖 08-10
jsycwnw M币 +13 謝謝分享 07-26
wjhwpp M币 +9 謝謝分享 07-21
eros8269 M币 +13 謝謝分享 07-19
枫林雪影 M币 +20 謝謝分享 07-19
kkdkj M币 +20 謝謝分享 07-19
denglei M币 +20 原創內容 07-19
邓穿石 M币 +8 - 07-19
366261061 M币 +30 原創內容 07-18
离线2545889167

发帖
11522
M币
46462
专家
225
粉丝
4484
只看该作者 1楼 发表于: 07-16
谢楼主邀。

这个电源呢,算是上一个DC-DC玩耍的入门贴:
分享最近折腾几片DC-DC芯片的经验,QC3.0快充原理(TPS61088 SX1308 PT4103)http://bbs.mydigit.cn/read.php?tid=2134373
的进阶版本。


这次是楼主哥们和我花了一个多星期一起折腾的一个由单片机直接控制pwm的数字双向DCDC电源。
第一部分先大概讲讲buck和boost的原理
这是一个最基本的buck降压电路

BUCK电路是一种降压斩波器,降压变换器输出电压平均值总是小于输入电压。
从电路可以看出,电感L和电容C组成低通滤波器。
mos管作为一个开关,当开关导通的时候,电感电流增加,电感储能
开关关闭的时候,D2续流二极管给电感维持电流,同时电感电流减小,电感释能,负载电流靠电容储能和电感中减小的电流供应。

由于二极管总存在压降,当电流大的时候,二极管上的功率损耗极大,因此有了同步整流的方法。用导通电阻低很多的MOS替代了肖特基,以提高转换效率
用mos代替了二极管以后,需要一对互补的PWM信号进行驱动,在同一个时间内只能有一个mos是导通的,而且因为mos管关断有一定的时间,所以需要设置适当的死区来防止上下管同时导通导致短路炸管


boost电路


boost电路,是一种常见的开关直流升压电路,它可以使输出电压比输入电压高。
在充电过程中,mos导通,输入电压流过电感和mos,电感电流增加,电感里储存了一些能量(整流二极管防止vout电流倒灌)
放电时,mos断开,由于电感的电流保持特性,流经电感的电流不会马上变为0,而是缓慢的由充电完毕时的值降低。而原来的电路已断开,于是电感只能通过新电路放电,即电感开始给电容充电,电容两端电压升高,此时电压已经高于输入电压了。所以得到了升压。

同样的的,整流二极管也有是有压降的,为了减少损耗,可以用mos代替二极管

那么,如果吧图四左右镜像颠倒,会发现其实和图二几乎是一样的。所以说,这样一个半桥电路是可以正向降压 反向升压的。
坛友们玩疯了的kis3r33改升压也是这样一个一模一样的道理。


--------------------------我是分割线-----------------------------



数字电源是以MCU或DSP为核心控制器的电源,本方案是采用STM32F3单片机34R8为核心,做一个双向dcdc,高压侧大约为24-38V,低压侧大约为15-21V,效率达95%以上。
与数控电源不同的地方是,数控电源中的单片机并不做pwm核心,而是只是改变了dcdc芯片的反馈环路来实现的控制压流。


数字电源的优点:可移植性强,可扩展性强,功能丰富,灵活。
可扩展性强:由于MCU有很多IO口,可以方便的接入保护、通信、显示、特殊要求等功能。
功能丰富:相比于普通的dcdc芯片,要增加实现恒压恒流等控制是非常麻烦的(比如电池充电),而数字电源可以直接控制pwm的占空比来实现各种需求。
灵活:电源拓扑结构可以灵活设计,可以半桥,全桥,LLC,等等各种情况。耐压限制只受限与mos,选择合适的mos就可以达到要求
扩展通信功能:由于单片机内置有UART,I2C,SPI协议,可以通过引出IO口,来实现数控功能。例如电压电流信号输出、上位机控制等等。


缺点:精度低、抗干扰能力弱。
精度低主要是受限于pwm的定时器主频不可能太高。
开关电源产生的电磁干扰较强,可能会影响MCU,导致死机。


我们选择的主控芯片stm32f334是意法半导体专门为数字开关电源设计的单片机。
其内核为72MHz ARM Cortex-M4,带浮点运算fpu单元和数字信号处理dsp单元
这货内部集成一个高精度定时器。主要是主频72mhz倍频2倍再倍频32倍得到72mhz*2*32=4.608GHz的定时器时钟
那么它的PWM最小分辨率就可以达到217ps(皮秒)而且最多可以产生10路高精度pwm波
而且有为控制电源开关而优化的PWM控制器内置关断功能、死区(dead-time)控制、同步支持和安全功能。
两个超高速5Msps(0.2µs)12位模数转换器(ADC),采样时间最低21ns,用于电压电流同步测量。
三个超高速比较器,模拟输入异常,响应时间为25ns内可以关断pwm输出,有助于保证电源工作安全。

引脚和stm32f103完全兼容,本来可以买48脚的更便宜,但是考虑到64脚可以直接焊接在之前绘制的核心板上面
核心板1.5发布:http://bbs.mydigit.cn/read.php?tid=1706936
主控芯片的价格大约在20多大洋的样子(数量不多的话),相比与DSP更有性价比




MOS驱动芯片我们选用了TI出品的UCC27211 驱动器
该驱动器峰值输出上拉和下拉电流为4A,并且上拉和下拉电阻小至0.9Ω,可以用尽可能小的开关损耗来驱动大功率 MOS管。输入结构可以直接处理 -10 VDC,这提高了稳健耐用性,并且无需使用整流二极管即可实现与栅极驱动变压器的直接对接。


为啥要用mos驱动器呢,这里稍微多嘴几句,首先单片机直接驱动mos是不现实的,驱动电压低且驱动能力弱。
为了快速的开启和关断,就需要专用的驱动芯片。
驱动芯片能提供强有力的4A推拉电流来开启和关断mos(给mos的结电容快速放电),之前实测irf3205和ucc27211配合gs电压上升仅50ns,下降100ns+
对于半桥拓扑的上半桥,一般选用的还是nmos而不是pmos。那是因为低内阻大电流的pmos非常非常贵。
那么高侧的nmos驱动就面临一个蛋疼的问题,就是要告电平导通,本来已经比驱动芯片电源电压高了,需求的10几v的电压哪来呢?那就得电荷泵自举电路(图中红圈)来实现




两只mos用了便宜又好用的irf3205

耐压符合要求 内阻8m欧够低



电感值计算
开关频率选用100khz
简单计算电感值


[ 此帖被2545889167在2017-07-18 18:50重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共14条打赏M币+233
powell007 M币 +13 謝謝分享 08-10
jsycwnw M币 +13 - 07-26
kkdkj M币 +20 謝謝分享 07-19
邓穿石 M币 +8 - 07-19
kirsuze M币 +30 码字辛苦了 07-17
亚历山大 M币 +13 謝謝分享 07-17
mousebat04 M币 +22 buck和boost原理讲解好评。我原来以为是升降压电路,原来需要反过来才能升压。 07-16
newnet1234 M币 +13 謝謝分享。高转换效率可能并非取决于MCU,若非精力富余,MCU应该做它该做的事,PWM或仍是交给专用芯片 07-16
老攻 M币 +30 一下就理解了这些东西,受益匪浅 07-16
飞向狙沙 M币 +20 優秀文章 07-16
12
离线2545889167

发帖
11522
M币
46462
专家
225
粉丝
4484
只看该作者 2楼 发表于: 07-16
继续
设计的总电路图(高清晰的看附件)


实物过程图拍的不多,各位将就看看了哈


首先是吧功率部分做了个小板进行验证性测试
板子上就只有电感电容mos和驱动芯片


此时得到的效果是这样的


输入32V 0.469A 输出14.47V 1.0045A 效率96.8%

原理验证没问题以后就找了片大号的洞洞板吧东西全部集成安装上去了
正面长这样子 其中左上为电压偏高的电源(写着IN) 右侧为偏低的电源(写着BAT)
右边中间写着个5V是辅助电源供电(这个板子上的单片机、屏幕、mos驱动芯片和运放等芯片是没有从主电源上取电的,需要供额外的辅助电源5V)
(但是这个5V实际上消耗电流也就不到100mA的样子,主要是屏幕和单片机耗电大户,但是就算从主电源上降压取电也不会对效率有特别太大的影响,最多走个百分之零点几)


板子背面 全部用堆锡焊接就不飞线了
左上角是max471电流取样芯片
左边之间有个ams1117给单片机降压供电


电压调节使用了pi算法(比例积分),没有加微分(详细操作内容看附件代码)

部分效率参数
输入35.61V 1.10A  输出19.32V 2.009A 效率99.1%
输入29.40V 1.32A  输出19.11V 2.007A 效率98.93%
输入30.76V 0.705A  输出20.76V 1.003A 效率98%

输入16.70V 1.858A  输出30.78V 0.9962A 效率98.93%



尝试用恒流控制充锂电池



当然过程不是那么一帆风顺
炸了一大堆mos和好几片mos驱动芯片(几大洋一片好心疼哟)


过程中踩过的坑和大家分享一下,以防后来人少被坑

1、ucc27211这个芯片相当的脆弱
供电电压说是典型12V但是实际上12V非常容易烧,烧了的现象就是vcc直接对地短路
建议稍微降低一点点供电电压
还有就是ucc27211和mcu必须良好稳定的共地。稍微共地不好驱动芯片就烧了(所以最好不要用劣质杜邦线,直接焊接比较稳妥)

2、为了驱动高侧管子,需要加一个电容到驱动芯片HS和HB之间
之前用了个0.47uf的电解电容,结果老是出现gs震荡


出现gs震荡,常规思维是加大g级的驱动电阻。
可是再怎么加都没有明显的改善,后来才发现其实是自举电容不对造成了问题。那里应该用一个0.1uf的瓷片电容更好。换上以后整个世界都清静了,gs波形始终都是直上直下的开启与关断方波。


3、出现异常的时候,应该是关断两个mos的输出,吧pwm全部停掉 拉低引脚。
一开始为了图方便吧占空比直接设置为0了,结果导致下桥变成了直接长时间导通,电容中的余电直接就吧mos给炸了。

4、死区时间设置的也应该合理,我们在这上面炸了两对管。



最后是喜闻乐见的程序和原理图附件





先说一下啊,这个程序并不是一个完整版的程序,算是一个半成品demo?
发出来给也是算是抛砖引玉给大家一个参考,不建议拿来就直接用
首先就是各自的电路参数设计的不同,开关频率,死区时间,pid参数这些都得根据自身情况来计算、测量并进行合理的调整,直接套用的话有可能工作的并不好。
其次就是三个程序中都没有做任何的保护功能,也就是说只有简单的恒压或者恒流。对于过压,欠压,过流,过热等等一切情况都没有给予考虑和处理。这样直接用是非常不安全的。很容易boom
电池充电测试强烈建议不要去玩,一旦失控非常非常危险。要玩也必须采用带保护板的电池,并且熟悉电池的特性和操作规范

本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共27条打赏M币+376专家+4
powell007 M币 +13 謝謝分享 08-10
jsycwnw 专家 +1 謝謝分享 07-28
jsycwnw M币 +13 謝謝分享 07-28
daqing26 M币 +1 牛a与牛c之间的人 07-26
wslab M币 +8 好帖,先回复mark一下慢慢看 07-23
yanchao130 M币 +30 優秀文章 07-21
trg13 M币 +20 謝謝分享 07-21
wjhwpp M币 +9 謝謝分享 07-21
ifm M币 +20 優秀文章 07-19
枫林雪影 专家 +1 做得很好15年全国大学生电子设计竞赛就有双向DCDC变换这道题,很相似,仿佛时间又回到了那四天三夜。。。。 07-19
离线zy1313113a

发帖
1360
M币
1507
专家
2
粉丝
33
只看该作者 3楼 发表于: 07-16
二楼呢?五个字

内容来自Android手机客户端

离线gavinfree

发帖
2056
M币
765
专家
10
粉丝
28
只看该作者 4楼 发表于: 07-16
2L玩游戏去了,帮他占一楼
离线djliubo

发帖
969
M币
1341
专家
4
粉丝
17
只看该作者 5楼 发表于: 07-16
几个关键难题你是怎么解决的?

1,用的什么磁芯?几乎没有任何损耗也没有漏感。
2,不知道MOS的驱动波形你是怎么做的,想要MOS降低损耗,放大区时间要小,就必须给G极电容高速充放电,但你这个损耗也几乎没有。
3.工作频率多少?导通越低的MOS,G极电容越大,3205的Ciss有3000多PF,折腾到150K估计是极限了。
4,你那几个普通电容估计已经发热了吧?
另:可以看看输出带载的波形吗?
本帖最近打赏记录:共4条打赏M币+19
kirsuze M币 +1 1应该是拆机的高频磁性自己重新绕的环形。 2楼主用的UC27211专用驱动芯片 3楼主上的100k 4所以电容不需要用 07-17
亚历山大 M币 +5 歡迎探討 07-17
newnet1234 M币 +5 歡迎探討 07-16
仁杰 M币 +8 精彩回帖 07-16
离线hylg

发帖
2932
M币
1317
专家
4
粉丝
34
只看该作者 6楼 发表于: 07-16
不明真相,吃瓜围观。
离线2545889167

发帖
11522
M币
46462
专家
225
粉丝
4484
只看该作者 7楼 发表于: 07-16
回 djliubo 的帖子
djliubo:几个关键难题你是怎么解决的?
1,用的什么磁芯?几乎没有任何损耗也没有漏感。
2,不知道MOS的驱动波形你是怎么做的,想要MOS降低损耗,放大区时间要小,就必须给G极电容高速充放电,但你这个损耗也几乎没有。
3.工作频率多少?导通越低的MOS,G极电容越大,3205的Ciss有3000多P .. (2017-07-16 00:37) 回 djliubo 的帖子

mos驱动用ti的ucc27211,4A的驱动能力,开关速度非常快,方波波形直上直下。gs波形看一楼倒数第二张图是下桥波形


工作频率100k

按一楼测量数据,带载半小时,没有发烫元件。温度最高的mos微温

暂无图
离线胡奚曷

发帖
4362
M币
747
专家
30
粉丝
138
只看该作者 8楼 发表于: 07-16
3205的内阻不算最低,只能说性价比高,有一种MOS内阻更低,单片机可以直接驱动,忘记型号了,只记得是联想笔记本上的,表面是金属壳,感觉比较适合楼主

内容来自Android手机客户端

离线青木塬

发帖
88
M币
277
专家
1
粉丝
9
只看该作者 9楼 发表于: 07-16
15年国赛双向DC-DC电源就是用的那个拓扑电路,BUCK&BOOST听起来还是很亲切
本帖最近打赏记录:共2条打赏M币+6
denglei M币 +1 我很贊同 07-19
2545889167 M币 +5 正解。 07-16
快速回复
限80 字节
温馨提示:欢迎交流讨论,请勿发布纯表情、纯引用等灌水帖子;以免被删除
 
上一个 下一个