搜索
bottom↓
回复: 32

参考个开源的Type-C接口平衡充,也做一个充电器

  [复制链接]

出0入8汤圆

发表于 2020-8-12 18:28:20 | 显示全部楼层 |阅读模式
STM32G070系列有个支持 TypeC PD接口的外设,曾经买过十几个STM32G071B-DISCO,用它来验证过PD是否可以通过。


为了验证G071的的双口TypeC功能,做了一个小板,用了STM32G071G8U6N





验证了,同时两路PD是可行的。

下面就打算脑洞一下,PD最高电压不是20V吗,刚好妥妥的4S\3S\2S平衡充啊,寻思做做点什么呢。有日逛GitHub,遇到给开源项目,也是用G071实现的,就是这哥们用了一个TI的电池管理IC BQ25703A不好搞定,心里就开始念叨了。想想要是用G473,buck/boost全部搞定,就可以省掉这货了,可惜自己对数字电源不了解,B-G474E-DPOW1看了好像也没啥心得,只能想想啦。




后面又刚好遇到我一个客户用G0 给东莞一个很大的电动工具厂商定做一个电动工具的电池快充+逆变方案,用G0的TypeC PD库,非要去掉里面跑的FreeROTS,这不是难为人吗?好说歹说,安抚了下来,搞得我还背锅被ST 美国看这个客户的销售给投诉(当然我的客户也是无心的,我就扛了)。  在沟通的国产中,看到他用的是上海南芯的SC8813,找遍了网络,结果找不到资料,万能宝也找不到店铺。嗯,不好玩。
前段时间,知道有个熟悉的哥们去了艾睿,心思又动了,拿到了5片BQ25703A,先尝试自己做个玩玩。
当然我没兴趣原样做一个,前面那么折腾就没啥意思啦。看TI官方的文档,如果要实现双向,就只能要2个BQ25703A,不合算,先走第一步吧,加上一个TFT。做出来平衡充,估计就要做电调了,要不充满电的电池没东西放电也是个苦逼的事情。

目前的草图,很多参数没标,可能电路某些地方还有问题,还待改进。
目前纠结是用原图的ADC直接采样电池电压,还是电路复杂一点加几个LM358来采样,犹豫中。



LCD屏就不贴了,128x64,标准SPI点阵屏,手上有百来个,顺手就用它了。
PCB尺寸就用DM542步进驱动器的外壳来了,刚好做的PowerSTEP01的驱动器留下一些,散热也方便,带上外壳挖个洞,也好放LCD




关键的关键,开源的方案资料
主页:  https://hackaday.io/project/1617 ... ipo-battery-charger
GitHub: https://github.com/AlexKlimaj/LiPow-Firmware
Firmware   

            https://github.com/AlexKlimaj/LiPow-Hardware
Hardware

他做的硬件








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出590入992汤圆

发表于 2020-8-12 18:53:28 | 显示全部楼层
板子不错,很漂亮。

出0入12汤圆

发表于 2020-8-12 19:43:37 | 显示全部楼层
期待大作

出0入25汤圆

发表于 2020-8-12 20:07:45 | 显示全部楼层
lz  没看懂。 你到底要做一个什么东西。  

老外的东西我看懂了。 都是玩rc的。  他要用 pd 来对 lipo (2-4s)进行充电。  感觉也是一个伪需求。现在外场用 620 充电 是很快的。

本人玩固定翼  加 穿越 :)

出0入8汤圆

 楼主| 发表于 2020-8-12 21:49:48 | 显示全部楼层
刚才看了一下,一套STM32G071B-DISCO在ST官网的价格是65$,一次性申请公司订购了10套。一台艾斯特 ISDT 608AC 200W在淘宝看到350的价格,没去特意比较。 两者价格差不多,如果仅从金钱的角度,我只要淘了350块钱,什么都不用做,而且还比我现在磨叽要达成的目标要的结果更好。

但有时真不是这么简单计算,最初的想法是想看看STM32G0的PD协议,到底做得怎样,就顺带测试做了一个小板。PD目前最大就100W输出功率,问题是能实现100W的适配器还很难找到,大多都是单路最大65W,我用的X1 Carbon,除去原装的2个65W,我还买了紫米的一个65W方便出差用,在大功率的就没发现合算的。 我当然知道现在拿Type C接口去做航模的4S还不知道要等到猴年马月才能充满。如真要做这个产品,我肯定先找电源工程师,用ST那个250W的STNRG01数字电源方案产品化了去(支持的客户已经有成功案例,相信自己做不会太难,只是看如何控制成本),然后再搞个比ST更便宜的国产MCU,带个SPI接口的小尺寸TFT。问题是我不是做产品啊,我只是想了解一个PD协议,不动手做点什么,哪终究只是纸上啊。

其实最开始的想法是用Type-C接口,9V或15V输出,给我的N810电池快充,买了2个非原装的 RAVPower电池,不知为啥平时静置总是掉电厉害,家里大小领导总是抱怨周末出去没拍几张就没电。用RAVPower自带的两路充电器,想想MiniUSB口,时间等不及啊。家里的小领导说不准什么时间就要出去浪浪,要是改改带个紫米的2000mAh的Pro 移动电源,不是正好合适吗。
说到底就是做个玩玩,分享一下东西而已,所以无需认真。至于说用那啥 ST MCU 太浪费,那就不在我考虑的范围。
哪怕就是上面我说的改 RAVPower充电器,我都可以直接用更简单的电路 STUSB4500 + STM8S030F3P6来做,嫌弃STUSB4500贵,可以用国产充电宝用的协议IC,会更便宜也更简单不是吗。

出0入0汤圆

发表于 2020-8-13 07:57:35 | 显示全部楼层
真心赞下,板子很漂亮

出0入42汤圆

发表于 2020-8-13 08:05:56 来自手机 | 显示全部楼层
板子很漂亮

出5入0汤圆

发表于 2020-8-13 08:14:10 | 显示全部楼层
板子拍的很漂亮

出0入0汤圆

发表于 2020-8-13 08:40:58 | 显示全部楼层
LZ,能否普及一下什么叫 TypeC PD接口

出0入0汤圆

发表于 2020-8-13 08:54:20 | 显示全部楼层
收藏,谢谢分享

出0入0汤圆

发表于 2020-8-13 08:57:24 | 显示全部楼层
板子不错,好漂亮

出0入0汤圆

发表于 2020-8-13 09:05:13 | 显示全部楼层
在GitHub好早之前看到过~没怎么研究过

出0入0汤圆

发表于 2020-8-13 11:07:41 | 显示全部楼层
乞丐版2s平衡充,平时玩玩室内小无刷

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入53汤圆

发表于 2020-8-15 08:32:43 | 显示全部楼层
Grant 发表于 2020-8-12 21:49
刚才看了一下,一套STM32G071B-DISCO在ST官网的价格是65$,一次性申请公司订购了10套。一台艾斯特 ISDT 608 ...

支持你这种探索精神,有时做的东西并不是为了节省成本,

前段时间自家的小朋友幼儿园结业,给她做的语音小夜灯,买现成的也就15左右(当然没有语音), 语音都是他们小朋友和老师的录音(独一无二)

前后盖是3d打印,中间桶是去找人用圆筒车的,算算成本也要60+一个吧,35+个,所以lz我支持你

为了贴外层的装饰,还把手用热熔胶烫了一下(起了水泡)

放几张图片给lz看看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2020-8-16 05:20:13 | 显示全部楼层
学习了,板子不错

出16170入6148汤圆

发表于 2020-8-21 13:41:18 来自手机 | 显示全部楼层
打赏!

庆祝论坛“打赏”功能实施, 现在开始发技术主题,可以获得打赏
https://www.amobbs.com/thread-5735948-1-1.html

出90入0汤圆

发表于 2020-8-21 23:11:43 来自手机 | 显示全部楼层
zhcj66 发表于 2020-8-15 08:32
支持你这种探索精神,有时做的东西并不是为了节省成本,

前段时间自家的小朋友幼儿园结业,给她做的语音小 ...

哇,这个有多的卖吗?

出90入0汤圆

发表于 2020-8-21 23:12:51 来自手机 | 显示全部楼层
hackerboygn 发表于 2020-8-13 11:07
乞丐版2s平衡充,平时玩玩室内小无刷

这个是网上现成的还是自己做的?有卖吗?

出0入0汤圆

发表于 2020-8-24 14:37:44 | 显示全部楼层
学习了,看的出做的很用心!

出0入0汤圆

发表于 2020-8-24 17:17:20 | 显示全部楼层
板子很漂亮,实力派!

出0入0汤圆

发表于 2020-8-26 11:34:36 | 显示全部楼层
xuyapple 发表于 2020-8-21 23:12
这个是网上现成的还是自己做的?有卖吗?

自己画的玩的,需要的话我共享PCB文件

出0入0汤圆

发表于 2020-8-26 12:19:20 来自手机 | 显示全部楼层
zhcj66 发表于 2020-8-15 08:32
支持你这种探索精神,有时做的东西并不是为了节省成本,

前段时间自家的小朋友幼儿园结业,给她做的语音小 ...

给全班发了一个?

出0入53汤圆

发表于 2020-8-26 16:05:45 | 显示全部楼层
xuyapple 发表于 2020-8-21 23:11
哇,这个有多的卖吗?

全部自己搞的,只有那个桶子是 现成的切割的, 自己做不讲究成本, 估计成本大概在70左右吧,

出0入53汤圆

发表于 2020-8-26 16:06:49 | 显示全部楼层
本帖最后由 zhcj66 于 2020-8-26 16:08 编辑
huangqi412 发表于 2020-8-26 12:19
给全班发了一个?


一个小孩一个  30个 +3个老师=33个
给帮忙上螺丝得1个 送别人一个
总共做了35个 全部送出(白送的)

出0入0汤圆

发表于 2020-8-26 16:13:45 | 显示全部楼层
LZ的充电板真漂亮!

出0入54汤圆

发表于 2020-8-26 16:26:55 | 显示全部楼层
直接支持PD通讯可以啊。我记得PD1.0是FSK耦合到VBUS上,PD2.0后开始是使用专用的CC线通讯了,使用BMC编码,就是GO MCU内置了BMC编解码器是吧?好像PHY什么都一起做了?
之前为了驱动FUSB302,有看过PD2.0协议。

记得楼主还赠过我芯片,再次表示感谢。

出0入0汤圆

发表于 2020-8-26 17:19:59 | 显示全部楼层
楼主有兴趣一起做充电器嘛

出0入0汤圆

发表于 2020-8-26 17:21:41 | 显示全部楼层
hackerboygn 发表于 2020-8-13 11:07
乞丐版2s平衡充,平时玩玩室内小无刷

你这个有的卖嘛

出0入0汤圆

发表于 2020-8-31 18:26:56 | 显示全部楼层
yedashi 发表于 2020-8-26 17:21
你这个有的卖嘛

没有,自己做的玩的,就做了5片

出0入0汤圆

发表于 2020-9-7 17:33:59 | 显示全部楼层
BQ25703这个IC怎么配置啊?那个有配置号的能否发一份给我,谢谢

出0入8汤圆

 楼主| 发表于 2020-9-8 19:35:57 | 显示全部楼层
我重新画了硬件,增加了一个12864的TFT LCD,4层板,PCB才刚收到。下一步就是焊几台样机测试下了。
代码还没开始下,不过在顶楼我上传了GitHub那个开源的方案源代码,你可以去下来参考一下。
代码里面有个bq25703a_regulator.c文件都是驱动BQ25703A的函数,里面有个vRegulator函数是涉及初始化的代码,你可以瞧瞧。

main中
        /* Start the task that manages the regulator*/
        osThreadDef(regulator, vRegulator, REGULATOR_TASK_PRIORITY, 0, vRegulator_STACK_SIZE);
        regulatorTaskHandle = osThreadCreate(osThread(regulator), NULL);

bq25703a_regulator.c中
void vRegulator(void const *pvParameters) {

        TickType_t xDelay = 250 / portTICK_PERIOD_MS;

        /* Disable the output of the regulator for safety */
        Regulator_HI_Z(1);

        /* Disable OTG mode */
        Regulator_OTG_EN(0);

        /* Check if the regulator is connected */
        regulator.connected = Query_Regulator_Connection();

        /* Set Charge Option 0 */
        Regulator_Set_Charge_Option_0();

        /* Setup the ADC on the Regulator */
        Regulator_Set_ADC_Option();

        uint8_t timer_count = 0;

        for (;;) {

                //Check if power into regulator is okay
                if (Read_Charge_Okay() != 1) {
                        Set_Error_State(VOLTAGE_INPUT_ERROR);
                }
                else if ((Get_Error_State() & VOLTAGE_INPUT_ERROR) == VOLTAGE_INPUT_ERROR) {
                        Clear_Error_State(VOLTAGE_INPUT_ERROR);
                }

                //Check if STM32G0 can communicate with regulator
                if ((Get_Error_State() & REGULATOR_COMMUNICATION_ERROR) == REGULATOR_COMMUNICATION_ERROR) {
                        regulator.connected = 0;
                }

                Read_Charge_Status();

                Regulator_Read_ADC();

                timer_count++;
                if (timer_count < 90) {
                        Control_Charger_Output();
                }
                else if (timer_count > 100){
                        timer_count = 0;
                }
                else {
                        Regulator_HI_Z(1);
                }

                vTaskDelay(xDelay);
        }
}


里面涉及的函数在bq25703a_regulator.c都有原型定义,你可以看看。
具体的功能说明要等我这边硬件出来开始调试软件了,可以交流交流。

自己做的硬件,3D照,单面贴,还没贴器件。













本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2020-9-8 20:10:36 | 显示全部楼层
不错,应该有更简单的思路

出0入8汤圆

 楼主| 发表于 2020-9-18 16:44:07 | 显示全部楼层
yedashi 发表于 2020-8-26 17:19
楼主有兴趣一起做充电器嘛

要看你打算做成啥样子的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 18:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表