
UPS_FLAYBACK
简介
充电电压和充电电流可调节的带在线式 UPS 功能的 12V 开关电源。工作的时候,对电池进行充电的同时,为负载供电。停电后,电池立即为负载供电。
简介:充电电压和充电电流可调节的带在线式 UPS 功能的 12V 开关电源。工作的时候,对电池进行充电的同时,为负载供电。停电后,电池立即为负载供电。开源协议
:GPL 3.0
描述
为什么要做一个 在线式 UPS 的 开关电源
在 直接并联电池当 UPS 的12V 低压供电系统里,如果使用 12v 电池充电器直接对负载供电并且并联一个电池,则无法控制电池的充电电流。充电电流会被动的设置为 充电器的输出电流 - 负载消耗电流。而如果负载消耗电流波动较大,例如负载最大可消耗 10A 电流的情况下,就需要配置 10A 的充电器,这意味着电池最大必须接受 10A 的充电电流,不然负载如果不消耗那么大电流,电池充电速度过快就会缩短寿命。而如果不配置 10A 的充电器,那么可能会在极端情况下,即使没有停电也会导致电池越用越没电。
研发历程和一些设计思路
DIY 作品和量产产品最大的区别就是,量产考虑的成本问题和 DIY 考虑的成本问题,很多时候并没有可比性。
例如量产的时候,考虑会最大化的利用好磁芯的能力。而 DIY 的时候,考虑的是能否使用现有的变压器。
因为变压器打样100元起步。如果能使用现成的磁芯,哪怕超规格了也比打样一个完全合适的磁芯更便宜。
量产的时候,要追求极限参数吃尽器件冗余,而 DIY 的时候,反而选择“基础库里的电容”都比选择便宜1毛钱的电容更划算。
因此,在设计的时候,我会无脑选择 基础库。只有当用到扩展库的时候,才会考虑仔细的计算参数,以免浪费元件的性能。
因此在设计阶段,我第一件事情不是去规划电路设计,而是先考虑购买合适的现货的开关外壳和反激变压器。当我找寻很久后,最终确定了一个合适的外壳,然后根据这个外壳,就定死了 PCB 的大小。原计划是把 pcb 设计为 10x10以内,但是找不到合适的外壳。而 7x4 大小有合适的外壳,但是太小了,实在做不到。
所以最后退而求其次的选择了 130x98 的外壳。有了外壳后,就整体的限制了 高度。 所以所有的元件都要低于 30cm 高。

因此原以为可以使用的 PQ3230 变压器,也退而求其次选择了 PQ2620 的变压器。PQ2620 为啥不是我最中意的变压器规格呢?因为 PQ2620 属于略微超纲才能支持 12V5A 功率。
之所以在 PQ3230 和 PQ2620 之间做了抉择,是因为这两个都能买到 12V 的现货变压器。也就是不需要打样定制。也不需要自己绕制。不过对于希望自己绕之变压器的人,附件里我也提供了一份我自己研究出来的 反激变压器快速设计器 。可以依据这个快速的设计变压器。
下面是购买的变压器截图,复刻的话可以根据这个买到心仪的变压器。
在等待变压器和外壳到货前,就着手开始原理图的绘制了。
电路的原理我在原理图里加了很多注释,相信应该讲的非常明白了。
关于次级同步整流。原理图上会说是 5A 电流较大,所以使用同步整流。其实不是很对。因为100V耐压的肖特基的压降 0.6V, 过 5A 电流也只相当于 3W 的发热。
其实主要原因还是因为,我想这样的一个设计,可以用在更大电流的地方。比如 5V 10A 的场合。如此就只需要更换整流 MOS 管即可。与其等将来某天用到的时候再学习同步整流,不如现在就用上同步整流。5A 也正好是同步整流和肖特基整流的一个分界点。因为计算发热的时候是按 5A@0.6V 计算,但是,实际上这个是临界导通模式工作,因此峰值电流会超过 15A。所以实际上需要 100V20A 的肖特基进行整流。并不比同步整流便宜到哪里去了。
关于PFC。由于设计功率低于 70W,再加上是 DIY 项目,没有 CCC 认证的需求,因此省略了 PFC 电路。虽然实际上我很想加 PFC ,但是考虑到没做过 PFC ,有翻车的风险。这可是比赛项目,翻车了糟糕了。所以等以后我再做非星火计划的 V2 版本(大概率会是 48V3A )的时候加 PFC 。
关于防浪涌。60W 的电源,其实整流后使用 100uF 的电容滤波就可以了。但是我为了稳妥起见,用了2个 100uF 的电容。这样滤波电容就到了200uF了。200uF 的电容,上电浪涌就很大了,需要进行抑制。通常 60W 的电源会使用 NTC 电阻进行上电防浪涌。但是我主要考虑到,这个设计是要“向上兼容”。也就是同一份原理要能向上兼容更大的功率。而更大功率的开关电源,都得使用继电器+电阻的方式。所以,我也使用了继电器方案。对于 DIY 项目来说,最大的成本是打样费用(工程费,换料费)而不是元件费用,因此多几个元件的设计并不增加多少 打样成本 :) 反而可以让你的设计向上兼容,将来做更大的功率也有经验了。最初我让继电器的线圈使用 12V 输出的电吸合。但是画完板子复盘的时候,突然发现,如果市电停电了,岂不是继电器还在靠电池在吸合。因此,直接改成由辅助绕组供电继电器。不过随之带来一个辅助绕组的功耗增大的问题。而且辅助绕组电压是会随着负载剧烈变化的。
关于电压和电流调整。最初的设想中,我使用的是单片机 DAC 产生模拟电压然后注入 TL431 的1脚的方式来控制输出电压这样的方案。
tl431 看到的反馈电压,是 输出电压经过分压电阻分压后的电压和 DAC 的输出电压的叠加。
但是这套方案被我很快否决了。因为这意味着 单片机要先于 pwm 控制器启动。否则输出电压可就成了未定义行为了。
单片机要先于 pwm 控制器启动,意味着我需要一套独立的辅助电源。这样就需要2个变压器,2个反激控制器了。翻车的风险是非常大的。
于是,就改成了目前这样的。由可调电阻设定电压和电流。单片机+屏幕只是作为一个显示作用的存在,并不参与电源的控制。
可能电压的调整用户会觉得有个万用表也可以。砍掉屏幕可以降低成本。但是电流的调整,如果使用万用表,就需要先接上电池,然后调节旋钮直到充电电流达到预期。而有了这个屏幕,就可以不接电池的情况下就直接通过旋钮设定电流。因此,屏幕和单片机其实是有必要的,不是可选项。
成品照片欣赏
嘉立创刚刚寄过来时的背面,贴的非常好。

正面都是插件。除了变压器,剩下的都插上了。

焊上变压器后,装到外壳里,严丝合缝。

接下来是封面的图片,装了一个电池,并且固件已刷入一个初版。
屏幕显示在放电中

最后是装在外壳里,工作中的照片:

固件代码
以往我的硬件开源项目只提供编译好的固件,并不开放固件的源码。这次我把固件的源码也一并开源。
固件的源码放在 github 上托管 https://github.com/microcai/upsflyback
附件里也会上传一份编译好的固件。
固件的下载方式是使用 STLink/DAP-Link , 用探针夹夹住编程口刷入。如果使用 PYLink 编程器则可以使用 普冉 的官方 刷机工具。如果是使用 DAP-Link 则需要使用 pyocd 或者 openocd ,或者是下载源码后使用 IDE 刷入。推荐使用 vscode + PlatformIO 插件。
安装好 PlatformIO 插件后,打开工程,然后选择 Upload 命令即可。
使用
接口从左到右分别是 地线,火线,零线 , 输出正,输出负,XT30电池插头,屏幕,待机按钮,电流调节旋钮,电压调节旋钮。
其中待机按钮在屏幕下方。在电池供电的时候,为了节约电池,默认会息屏休眠。按下按钮唤醒。
市电供电的时候,屏幕会常亮。按下按钮可以强制息屏。
调节的时候,先接通市电,不要接电池和负载。然后调节电压调节旋钮。直到显示的电压为电池的充电限制电压。例如磷酸铁锂为 14.4V,铅酸为 13.8V,三元锂为 12.6V。
接着,调节电流旋钮,设定充电电流。一般设定为电池容量的 1/10。比如 3000mAH 的电池,就设定充电电流为 0.3A。
设定完毕后,关机。然后再接上负载。开机,再插入电池(这一步是为了避免电池对开关电源里的大滤波电容充电导致打火)。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程

评论