bq25703电源管理芯片电池充放电管理快充芯片PD充电宝芯片

您所在的位置:网站首页 电源管理芯片容易坏吗 bq25703电源管理芯片电池充放电管理快充芯片PD充电宝芯片

bq25703电源管理芯片电池充放电管理快充芯片PD充电宝芯片

2024-07-11 21:57| 来源: 网络整理| 查看: 265

序言:

    写这篇博客的主要原因是因为公司的产品涉及到电池充放电管理,而且充电电压和电池电压可能会有多种组合,针对这种设计需求,发现目前流行的PD快充协议正好是多级电压,所以在TI支持PD快充的芯片中选择支持多节电池充放电管理的芯片。基于上述原因,选择了国内比较容易买到,价格也适中的bq25703。

    从了解芯片到Demo板调试基本完成,林林总总共历时大约1个月,整理成博客也是为了日后有个参考。

    好了,不多说,踩坑的日志开始~

涉及到的链接:

 

介绍bq25703:

官方的介绍大家可以参考芯片的DataSheet,我就不复制粘贴了,重点功能如下:

支持1~4节锂电池充电,或者其他自定义充电电压(1.024V~19.2V),自定义充电电流(0.064A~8.128A);支持3.5V~24V宽电压输入无论是否充电状态,都可以向系统提供自定义电压(这里有坑,后面会说);可以反过来向输入接口输出自定义电压(OTG功能),所以常被用来做快充充电宝电源管理芯片(这里有坑,后面会说)充放电等详细设置均通过内部寄存器的配置完成,使用I2C与控制芯片通讯

知道基本功能,下面介绍如何实现这些功能,附上Demo板的原理图截图,后面的设计都会根据这个图来介绍:

 

这个图和DataSheet中的推荐应用图完全一样(事实上也没有自由发挥的空间 (0.0))

简单介绍一下核心芯片bq25703外围电路的主要功能:

P1为电源输入口,支持3.5V~24V宽电压输入,一般接在TYPE-C的接口上,负责充电时的输入和OTG时的输出R14是自己放置的采样电阻,后面加上运放后,目的是为了用单片机ADC功能呢获取到充/放电的电流大小和方向ACP与ACN中间的采样电阻是BQ25703要求的,也是为了采集充放电电流,但实际似乎没有输出(后面详解)Q1,Q2,Q3,Q4和L3共同组成BUCK-BOOST升降压电路,也是整个电路的核心,所以电感的电流尽可能选择的大一点,当然尺寸也要考虑在内,做Demo板当然无所谓尺寸,但是日后设计成形产品时,为了能够整体散热,能够让导热硅胶尽可能贴合MOS、芯片、电感,最终电感的选型肯定是尽可能的薄SYS这个地方就是为整个系统提供自定义电压的地方,如果是在笔记本或者平板当中使用,就是为整个主板供电的地方BAT+就是接电池正极的地方,可以是1~4节锂电池,也可以是特殊电压R20采样电阻就是BQ25703检测电池充放电电流的地方R23+R24就是负责在电路中设置为几节锂电池充电,具体的设置方法后面会说,图上的配置是为两节电池(8.4V)充电

 

电池保护部分:

因为Demo板的设计采用了18650电池,而且是无保护板的18650,所以需要DW01KA+两个SC8205S的NMOS作为保护。

实际上,这样的保护板常常出现在锂聚合物电池上,那个跟买来的电池总是包在一起的小小的条状保护板,基本都是类似的设计,这样的设计可以实现:

防止过充,电池电压上升超过4.3V就会断开电流流入电池的通路以阻止继续充电,但是放电依然畅通防止过放,电池电压低于3.5V就会断开电流流出的通路,但是充电通路畅通防止过流,在电流超过2A就会断开电流流出通路,然后很快恢复,继续检测是否过流,反复如此

各部分电压电流检测,由单片机内部ADC采样完成,又快又准:

从上到下依次是:

外部接入的电流大小及方向检测外部接入电压检测电池电压检测电池充放电电流大小及方向检测

Q:电流检测在第二级运放的同相输入端为什么要接偏置电阻?

A:因为单片机的ADC只能检测0-5V,如果没有偏置电阻,那么至少有一个方向的电流是检测不到大小的,除非增加一路采样和运放,成本增加不说,还要多一路AD采样,编程和处理都会复杂;而且电流检测不需要太高精度,偏置后,两个方向都可以检测到电流大小,编程也方便

Q:为什么电压采样还要用运放,而且是直接电压跟随,并没有放大?

A:这里的运放主要起到保护作用,单片机ADC引脚最高输入不能超过5V,否则有击穿风险,所以用运放隔离了采样电压,保护芯片

上位机通讯部分:

采用CH340C作为与上位机通讯的串口,是因为外部电路太简单(只有一个电容),没有晶振,没有容易摔坏的风险

主控芯片:

主控芯片用的是新唐的NUC029单片机,采用ARM-M0构架,50MHz主频,64K编程空间,支持串口升级,内部EEPROM

软件部分:

    bq25703这款芯片大部分功能都要通过I2C通讯,修改内部寄存器才能实现,所以务必需要至少一颗逻辑控制芯片负责通讯。

如果没有主控芯片,就连最基本的充电功能都无法实现(充电电流为0)

I2C的通信形式是标准,在网上有资料,大部分单片机也自带I2C接口,直接配置单片机寄存器就可以完成通讯

这里简单介绍一下通过I2C是如何控制bq25703

指令有两类:按地址写入数据,按地址读取数据

按地址写入数据:  开始→写地址+0→从机应答→写寄存器地址→从机应答→写寄存器数据→从机应答→结束

按地址读取数据: 开始→写地址+0→从机应答→写寄存器地址→从机应答→ 再次开始→写地址+1→从机应答→读取寄存器数据                                 →结束

读取数据都是一次一个地址读取的,写入数据大部分都是直接一次一个地址写入,但是如下4个寄存器,需要一次写入两个地址,而且必须遵循先写小端,再写大端的形式,且必须在一次I2C通讯中完成,通讯顺序如下:

开始→写地址+0→从机应答→写寄存器基址(偶数地址)→从机应答→ 写低位寄存器数据→从机应答→写高位寄存器数据→从机应  答→结束

需要这样操作的特殊寄存器如下:

ChargeCurrent(0x02,0x03)充电电流MaxChargeVoltage(0x04,0x05)充满电压OTGVoltage(0x06,0x07)反向供电电压InputVoltage(0x0a,0x0b)最小输入电压  

详细的寄存器表在DataSheet里有详细说明

上位机软件配合调试:

因为为大量的寄存器需要配置,那么如果每次试验数据都是使用串口调试,不够直观,也不够方便。

在TI官网上发现一个这个软件,是IT官方制作的,支持全系列芯片的寄存器管理软件,为什么我不用这个软件而是自己写呢?因为这个软件需要配套一个调试工具,类似烧录器,已经做好的调试板在官网也有,但是价格实在比较感人,最终决定自己写上位机软件,配合单片机,自己定的协议进行调试,所以这个工具用上,但是可以用来参考

 

自己做的开发板使用CH340C串口转USB设备,通过USB线与电脑相连,在系统中识别为CH340设备

通过串口调试工具,测试进行测试,确定所有寄存器都可以写入并且读取到对应的值,那么就开始上位机的编写

其实编写图形化软件,作为一个软件小白,似乎VB,MFC,QT等才是最优先的选择,但是,既然都是从头开始,为什么不选一个更加大胆的选择呢?

最终决定使用 Electron 开发上位机软件,效果如下

左侧可以看到所有的寄存器都被显示在表格里,而且通过颜色区别出当前的状态,点击可以改变寄存器的数值,实测下来方便了很多

实际调试:

那么硬件软件都准备好了,就开始激动人心的测试吧~

我这边的硬件测试环境除了Demo板以外,还有一个DC-DC的升降压可调模块作为输入,用来模拟DP快充的多级电压

插上电池 插上供电 调整输入为12V 插入上位机USB线 看到调试工具红红绿绿的小方块一个一个出现时,成就感还是很高的

紧接着发现充电电流是0A,VSYS为7.6V(与电池电压相同),电池也没有输入和输出电流

拔掉电池后,VSYS输出为6.14V

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3