切换到宽版
  • 14010阅读
  • 109回复

开源!STM32数字电源控制器 [复制链接]

上一主题 下一主题
离线fantasyboy
 

发帖
84
M币
4076
专家
20
粉丝
13
— 本帖被 發騷友 设置为精华,作者+3000M币+5专家(2018-12-08) —
先放正面照镇楼



这个控制器,真的是说来话长。记得当时刚玩电子的时候,很是羡慕别人的高级仪器,特别是可调电源。
当时在各大论坛上也看了不少大神的作品,想着自己做一个,无奈自己水平太差,就一直放着了,从大一到大四,总算是做完了。
一开始的时候,只想做一个简单的可调电源,但是人总是贪婪的,后面又想着做数控的,然后学单片机,一步一步的,方案也换了好几种,最后做出了这个通用的控制器。虽然做的不是特别的好,但自己也算是比较满意了吧,算是对自己有了一个交代。下面开始简单的介绍一下这个控制器吧。
正面照如上图,很简洁,一个LCD12864,一个EC11旋转编码器,一个复位按键,所有的操作都可以通过这个旋转编码器完成。
背面如上图,元件基本都在背面了。主控芯片为STM32F103RET6,选择这个芯片的原因是它有DAC,之前用PWM模拟DAC做过感觉不是很好,这次就直接用DAC了。供电部分,使用LM2596降压(用2596纯粹是因为耐压高)到5V,然后TL431产生3.3V电压经运放跟随后给系统供电。这里把电源部分设计的比较复杂是因为该芯片的ADC和DAC的基准引脚都是接在电源引脚的,所以干脆就把电源调的比较准确。电流采样部分,运放用的TP09SR,效果一般吧,失调电压有点大(200uv左右),胜在便宜。四运放MCP6004一半负责电压跟随,一半负责控制电源。这一版我引出了很多的IO口,包括2通道ADC,SPI,IIC,UART,TIMER,可以很方便的进行扩展,比如外扩TFT彩屏,按键等。
控制器有两个电压采样通道和两个电流采样通道,其中各取一路作为后级控制使用,冗余一路可作他用。
这个控制器,我设计的时候是把它设计成通用的,可以控制UC3842/TL494之类的开关电源,也可以控制各类BUCK/BOOST芯片,还可以控制电子负载,玩法很多,大家可以自行发掘。下面我就用这个控制器控制XL4015和LM2596这两个BUCK芯片构成数控电源。.
XL4015
XL4015是一款国产的BUCK芯片,最大36V输入,5A输出,性能尚可吧。

把原来板子上的反馈部分去掉,FB引脚,地线和输出接到控制器上就可以了。

开机默认参数我设置的是10V/1A,这时的输出电压UT61E显示10.002V,控制器显示在9.99-10.01V之间跳动。
细心的朋友会发现这时有0.01A的电流,其实这是运放的Offset Voltage造成的,实际使用中没有影响。

调节到我设定的最低电压2V,此时UT61E显示2.015V,控制器显示在1.99-2.01之间跳动。

设定到最大值31V,此时UT61E显示30.93V,控制器显示在30.98-31.02之间跳动。
可以看出,在整个控制范围内线性度并不是特别好,可能是STM32ADC/DAC的问题,可能是运放的问题,也有可能是UT61E就不准,由于没有专业仪器,就不深入研究了,反正这个样子也够用了,用的都是便宜元件能有这个效果算可以了。
下面是恒流测试:

先从最小开始,10MA点LED,可以看到效果还是可以的,实际UT61E显示在7-10MA跳动。

20MA,有点误差。

40MA,还不错。

上大功率的LED,0.5A恒流,UT61E显示0.504A,控制器显示在0.49-0.51之间跳动。

电炉丝作为负载,1A恒流,精度不错。

2A恒流,还可以。

3A的时候,电炉丝都有点发红了。

4A依然准确,电炉丝红了。
图片限制,接楼下。

本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共33条打赏M币+402专家+8
sckocn M币 +1 優秀文章 前天 17:28
huaweiwx M币 +20 厉害了! 12-13
皮卡丘の星空 M币 +13 - 12-13
nnbuchicao M币 +8 看显示器让我想起了宠物小精灵 12-12
rallyezhang 专家 +1 支持原创 加油 12-11
rallyezhang M币 +20 支持原创 加油 12-11
200birds M币 +20 - 12-10
weizaisifang 专家 +1 優秀文章 12-10
weizaisifang M币 +20 優秀文章 12-10
dzb M币 +20 原創內容 12-10
离线fantasyboy

发帖
84
M币
4076
专家
20
粉丝
13
只看该作者 1楼 发表于: 11-30
接楼上
中途吃了个饭回来继续更新
控制LM2596:

同样的,去掉原来的反馈电路,接到控制板上。

设置10V,UT61E显示10.002V,控制板显示在9.99-10.01之间跳动。


最低电压和最高电压,情况和XL4015差不多的,线性度不是特别好。



LM2596在小电流下控制精度不如XL4015,具体原因我也不是很清楚。



大电流下控制精度倒是还不错,不过这货最大就3A电流,而且效率还低。
从控制器对这两个模块的控制情况来看,总的效果差强人意,毕竟这东西成本才30左右,要啥自行车。
前面放的图都是V2.3版本的,在这之前还有V1.1/V2.1以及没有打样的V2.2版本,V1和V2版本原理图上做了修改,换了一部分元件,下边放一下调试过程吧。

这是最开始的时候进行ADC的调试,因为要用到规则组的多通道转换,所以使用了DMA来进行传输,用着还是很方便的。

这是V1.1的板子控制XL4015,当时还在做电压控制,界面也没有完善。

电压控制做好时两个表的对比,UT61E读数比VC921偏小。

0.5A的恒流,V1.1版本的电流采样运放用的AD623,很精准了,就是成本比较高,所以第二版换成了TP09SR.

恒压16V。



这几张图片是当时在实验室里改了电压采样电阻控制UC3842方案的电动车充电器,当时没有进行校准,电压偏差较大,但电流偏差比较小。

V2.1版本,当时换了屏幕,选用了坛友老王家的1.8寸12864,显示效果非常棒,但是在设计的时候出了点问题。设计的时候,我是把液晶屏的RST和STM32的RST放在一起的,一开始测试的时候怎么都不行,想到可能是复位时间不够,于是加大了复位电路的电阻和电容,能用了,但是,过了几天之后换了一块屏又不好用了,复位时间长也不好用了,没办法只能把液晶屏单独复位。

V2.1版本时的0.5A恒流。
V2.1版本和V2.3版本相差无几,只是修改了一下布线,修正了几个BUG。
开源资料什么的就放在下一楼了。
[ 此帖被fantasyboy在2018-11-30 20:52重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共13条打赏M币+201
sckocn M币 +1 優秀文章 前天 17:29
rallyezhang M币 +20 優秀文章 12-11
rainbowriver M币 +1 謝謝分享 12-10
dzb M币 +20 謝謝分享 12-10
zzy_85569381 M币 +20 论坛多一些楼主这样奉献的人更精彩 12-10
wjhwpp M币 +13 謝謝分享 12-09
xuyaz M币 +13 - 12-08
benli M币 +20 優秀文章 12-08
ifm M币 +20 優秀文章 12-08
goodanytime M币 +20 原創內容 12-08
12
离线fantasyboy

发帖
84
M币
4076
专家
20
粉丝
13
只看该作者 2楼 发表于: 11-30
多占了一楼,这一楼就放资料什么的吧。



先放上原理图,可能不是很清楚,附件里面有PDF高清版的。
关于开源:
开源作品,仅用于电子爱好者研究学习使用,未经作者许可不得用作其他任何用途!
这个控制板,从开始做到现在,花了我不少时间和精力,虽然做的不是特别好。开源的目的是希望大家能够互相学习,并能够在此基础之上做出改进,共同进步。程序方面,感觉自己写的并不是很好,而且现在功能很少,自动校准和参数设置等功能都没有加上去,后面有时间再慢慢填坑吧。打样的板子还有一些,会送出一部分,也希望大家能够参与进来,开发出更多地玩法。
更新一下,建了一个交流群,第一版和第二版的bug板子还剩下一部分在群里送了,同时也欢迎大家加群共同交流学习。群号:三九123五九41
最后,贴上资料。


本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共32条打赏M币+467专家+4
kirsuze M币 +8 優秀文章 昨天 23:18
sckocn M币 +1 優秀文章 前天 17:29
ksd M币 +30 谢谢开源分享,功能很强大! 12-12
cg198298 M币 +5 謝謝分享 12-10
dzb M币 +20 期待套件开团 12-10
zhwj8025 M币 +13 謝謝分享,点个赞 12-10
sonj M币 +20 开源的必须支持 12-10
adsnet M币 +8 優秀文章,谢谢分享。 12-09
1591208937 M币 +8 出点套件吧手比较残想要做不出来 12-09
newnet1234 专家 +1 謝謝分享,支持开源,相信会越做越好的 12-09
离线amo73

发帖
838
M币
1387
专家
9
粉丝
27
只看该作者 3楼 发表于: 11-30
不错,支持开源!
在线xueyunmichen

发帖
144
M币
106
专家
1
粉丝
7
只看该作者 4楼 发表于: 11-30
强势插入 支持一下 不知楼主怎么解决直接控制FB引脚产生的震荡 导致恒压带载时 出现空载 与带载电压不一致
我试过 直接控制ATC9102 空载时明显可听见电感发出声音 带载时 输出电压高于空载电压(纹波过大导致)
本帖最近打赏记录:共2条打赏M币+10
2545889167 M币 +5 自激了 调馈路 保证稳定裕度足够才行 12-01
hellodoraemo M币 +5 歡迎探討 11-30
离线fantasyboy

发帖
84
M币
4076
专家
20
粉丝
13
只看该作者 5楼 发表于: 11-30
回 xueyunmichen 的帖子
xueyunmichen:强势插入 支持一下 不知楼主怎么解决直接控制FB引脚产生的震荡 导致恒压带载时 出现空载 与带载电压不一致
我试过 直接控制ATC9102 空载时明显可听见电感发出声音 带载时 输出电压高于空载电压(纹波过大导致) (2018-11-30 18:57) 回 xueyunmichen 的帖子

你是不是没有加积分电容?
离线fantasyboy

发帖
84
M币
4076
专家
20
粉丝
13
只看该作者 6楼 发表于: 11-30
回 amo73 的帖子
amo73:不错,支持开源![表情]  (2018-11-30 18:39) 回 amo73 的帖子

感谢支持  字数补丁
在线xueyunmichen

发帖
144
M币
106
专家
1
粉丝
7
只看该作者 7楼 发表于: 11-30
回 fantasyboy 的帖子
fantasyboy:你是不是没有加积分电容? (2018-11-30 21:14) 回 fantasyboy 的帖子

加了 各种容量的 22p 47p 220p 1000p 2200p 4700p 10000p 22000p 都不行
离线fantasyboy

发帖
84
M币
4076
专家
20
粉丝
13
只看该作者 8楼 发表于: 11-30
回 xueyunmichen 的帖子
xueyunmichen:加了 各种容量的 22p 47p 220p 1000p 2200p 4700p 10000p 22000p 都不行 (2018-11-30 21:19) 回 xueyunmichen 的帖子

我的积分电容用的1UF
另外,有些BUCK模块的FB引脚需要一个下拉电阻才行
离线hed

发帖
159
M币
63
专家
0
粉丝
19
只看该作者 9楼 发表于: 11-30
高手,这是高手