站内搜索
发作品签到
专业版

UPS_FLAYBACK

工程标签

3.5k
0
0
5

简介

充电电压和充电电流可调节的带在线式 UPS 功能的 12V 开关电源。工作的时候,对电池进行充电的同时,为负载供电。停电后,电池立即为负载供电。

简介:充电电压和充电电流可调节的带在线式 UPS 功能的 12V 开关电源。工作的时候,对电池进行充电的同时,为负载供电。停电后,电池立即为负载供电。
星火计划2025

开源协议

GPL 3.0

创建时间:2025-04-22 12:48:21更新时间:2025-05-19 14:19:20

描述

为什么要做一个 在线式 UPS 的 开关电源


在 直接并联电池当 UPS 的12V 低压供电系统里,如果使用 12v 电池充电器直接对负载供电并且并联一个电池,则无法控制电池的充电电流。充电电流会被动的设置为 充电器的输出电流 - 负载消耗电流。而如果负载消耗电流波动较大,例如负载最大可消耗 10A 电流的情况下,就需要配置 10A 的充电器,这意味着电池最大必须接受 10A 的充电电流,不然负载如果不消耗那么大电流,电池充电速度过快就会缩短寿命。而如果不配置 10A 的充电器,那么可能会在极端情况下,即使没有停电也会导致电池越用越没电。

 

因此,我们需要设计一种特殊的充电器,它只有一路 12V 输出,但是却可以同时监控负载和电池的电路。对负载进行过流保护,对电池进行恒流充电。
它的输出电压会维持在恰好满足负载的供电,并且对电池进行恒流恒压模式充电。也就是说,如果设定充电电流为 1A 。那么充电器会恰好输出电压使得电流 = 1A + 负载消耗电流。如果电池已经进入恒压充电阶段,则正好输出电池满电电压。即便负载的电流从 0A 到 10A 变化,也不会用更大的电流对电池充电。
这样的 UPS ,在电池亏电的情况下,就不会盲目的以最大电流模式输出,以期电池能吸纳剩余电流。也不需要特意配置一个小功率充电器限制电池充电电流又导致极端下电池边充边掉电。
而是可以恰到好处的按设定电流充电,而不管充电器本身的电流输出能力是多少。
充电器为两路并联的 12V 输出。2个输出在内部是并联的,由同一个变压器绕组供电。只是使用了2个采用电阻分别采样两路输出电流。其中一路接电池,另一路接负载。
接负载的那路电流采样主要起一个限流保护作用。 接电池的那路电流采用,则用于实现 恒流恒压 充电。
分流原理是 电流的内阻极小,因此充电器和电池之间微小的电压差可以在电池上产生很大的电流;因此充电器通过精细的调整电压,可以在保证负载供电的情况下,调节电池的充电电流。
UPS 的原理是,电池和输出实际上是并联的,因此停电后,电池会立即放电为负载供电。中间没有任何切换延迟。
应用限制: 负载需要能接受锂电池直接供电。因此需要适应锂电池满电到空电的电压变化(12.6v - 10v ),不能需要绝对稳定的12V供应。
 
 

研发历程和一些设计思路

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。

设定完毕后,关机。然后再接上负载。开机,再插入电池(这一步是为了避免电池对开关电源里的大滤波电容充电导致打火)。

 

演示视频  https://www.bilibili.com/video/BV1WrESzVEAx 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
反激快速设计器.xlsx
68
2
firmware.hex
26
克隆工程
添加到专辑
0
0
分享
Logo GIF0
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航