
撰写此博客的主要原因是因为该公司的产品涉及电池充电和放电管理,并且充电电压和电池电压可能有多种组合. 响应于该设计要求,发现当前流行的PD快速充电协议是正确的. 它是多电平电压,因此在支持PD快速充电的TI芯片中,请选择支持多单元电池充电和放电管理的芯片. 由于上述原因,我选择了bq25703,它在中国相对容易购买并且价格适中.
从对芯片的了解到演示板的调试,Lin Lin共花费了大约1个月的时间,并将其组织成一个博客以供将来参考.
好吧,事不宜迟,踩坑的日志开始了〜
官方介绍,可以参考该芯片的DataSheet,我不会复制粘贴,主要功能如下:
支持1〜4个锂电池充电,或其他自定义充电电压(1.024V〜19.2V),自定义充电电流(0.064A〜8.128A);无论充电状态如何,均支持3.5V〜24V宽电压输入,可为系统提供自定义电压(有凹坑,将在后面描述);可以依次向输入接口输出自定义电压(OTG功能),因此通常用作快速充电电源银行电源管理芯片(此处有Pit,将在后面进行介绍). 通过内部寄存器的配置完成,并使用I2C与控制芯片进行通信
了解基本功能后,下面介绍如何实现这些功能. 附上演示板原理图的屏幕截图. 根据该图将介绍以下设计:

此图片与DataSheet中推荐的应用图片完全相同(事实上,没有免费播放(0.0)的空间)
核心芯片bq25703电路的主要功能简介:
电池保护部分:


由于演示板的设计使用18650电池,并且它是不带保护板的18650,因此需要DW01KA +两个SC8205S NMOS作为保护.
实际上,这种保护板经常出现在锂聚合物电池上. 始终用购买的电池包裹的小条形保护板基本上是类似的设计. 该设计可以实现:
每个部分的电压和电流检测都是通过单片机的内部ADC采样完成的,快速而准确:

从上到下分别是:
问: 为什么需要在第二级运算放大器的同相输入端连接一个偏置电阻来进行电流检测?
A: 因为单片机的ADC只能检测0-5V,所以如果没有偏置电阻,则至少在一个方向上不能检测到电流,除非在所有采样和运算放大器上都加上了这样就增加了成本,更不用说如果需要再进行一次AD采样,则编程和处理将很复杂;电流检测不需要太高的精度. 偏移后,可以在两个方向上检测当前大小,并且编程也很方便
问: 为什么需要一个运放进行电压采样,它是不带放大功能的直接电压跟随器?
A: 此处的运算放大器主要用于保护. 单芯片ADC引脚的最大输入不能超过5V,否则有击穿的危险,因此采样电压由运算放大器隔离以保护芯片

主机的通信部分:

CH340C用作与主机通信的串行端口,因为外部电路太简单(只有一个电容器),没有晶体振荡器,也没有容易掉落的风险
主控芯片:

主控芯片采用Nuvoton的NUC029单片机,采用ARM-M0架构,主频50MHz,64K编程空间,支持串口升级,内部EEPROM
Bq25703该芯片的大多数功能必须通过I2C进行通信充电宝芯片,并且可以修改内部寄存器来实现它,因此至少一个逻辑控制芯片必须负责通信.
如果没有主控制芯片,即使是最基本的充电功能也无法实现(充电电流为0)
I2C的通信形式为标准形式. Internet上有信息. 大多数单芯片计算机还具有自己的I2C接口. 直接配置单片机的寄存器即可完成通信.
这里简要介绍了如何通过I2C控制bq25703

指令有两种: 按地址写入数据,按地址读取数据
按地址写数据: 开始→写地址+ 0→从机响应→写寄存器地址→从机响应→写寄存器数据→从机响应→结束
按地址读取数据: 开始→写入地址+ 0→从站响应→写入寄存器地址→从站响应→再次开始→写入地址+ 1→从站响应→读取寄存器数据→结束
读取的数据一次读取一个地址,大多数写入的数据一次直接写入一个地址,但是随后的4个寄存器需要一次写入两个地址,并且必须先跟随写小尾数,然后编写big-endian形式充电宝芯片,并且必须在I2C通信中完成它,通信顺序如下:
开始→写地址+ 0→从站响应→写寄存器基地址(偶数地址)→从站响应→写低位寄存器数据→从站响应→写高位寄存器数据→从站响应→结束
需要此操作的特殊寄存器如下:
详细的寄存器表在DataSheet中进行了描述
由于需要配置大量寄存器,因此对每个测试数据使用串行调试并不直观且不方便.
在TI的官方网站上找到了一个


该软件由IT正式生产,并支持用于所有芯片的寄存器管理软件. 为什么我不写这个软件呢?因为该软件需要配备类似于刻录机的调试工具,所以现成的调试板也可以在官方网站上找到,但价格确实令人不寒而栗,最终决定自己编写高级计算机软件,与微控制器配合,并设置调试协议,因此可以使用此工具,但可以作为参考
自制开发板使用CH340C串行端口连接USB设备,通过USB电缆连接到计算机,并在系统中被识别为CH340设备.

通过串行调试工具进行测试,以确保所有寄存器均可被写入并读取相应的值,然后开始写入主机
事实上,在编写图形软件时,作为软件白色,似乎VB,MFC,QT等是最可取的选择,但是由于它们都是从一开始就开始的,为什么不选择一个更大胆的选择呢?
最后决定使用Electron开发主机软件,效果如下

在左侧,您可以看到表中显示了所有寄存器,并且按颜色区分了当前状态. 点击更改寄存器的值,可以更方便地进行测量.
然后准备好硬件和软件,让我们开始令人兴奋的测试〜
除了演示板之外,我这一边的硬件测试环境还具有DC-DC升压和降压可调模块作为输入,以模拟DP快速充电的多电平电压
插入电池,插入电源,将输入调整为12V,插入主机的USB电缆,并逐一查看调试工具的红色,红色,绿色和绿色小方块
然后发现充电电流为0A,VSYS为7.6V(与电池电压相同),并且电池没有输入和输出电流
拔下电池后,VSYS输出为6.14V
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-279225-1.html
甲午海战北洋水师舰也不少
#吴亦凡1106生日快乐##吴亦凡##吴亦凡BadGirl#吴亦凡新歌首唱BadGirl
有着不属于这个年龄的成熟