关于TI 的BQ系列电池管理芯片详细操作步骤。这款芯片功能还是很强大的,具体的我就不介绍了,查看datasheet。
本文介绍主要是通过模拟IIC读取BQ27510数据。
1、模拟IIC:之所以用模拟IIC是应为比较灵活一点,便于调试。对于模拟IIC可以看IIC通信协议写相关的函数;一般如果在调试IIC时用示波器看数据不稳定,示波器闪屏,一般是延时不够造成的。模拟IIC就不多介绍了,这个程序写起来还是很清晰的,资源也很多。
2、读取BQ27510数据函数编写:首先查看数据手册,COMMUNICATIONS部分,I 2 C INTERFACE。根据这部分时序结合模拟IIC编写对BQ27510内部寄存器进行读写的函数。
3、DATA COMMANDS部分:如下图所示0x08/0x09为读取电压命令(说明:之所以用两个字节的命令是因为电压测量范围为0~6000mV,而一个字节最大为256,两个字节为65535,其他命令原因一样);当2编写的对BQ27510读取函数是incremental read。只需要写入0x08命令后连续读取两个字节的数据,然后将两个字节拼接就可以了,就得到电压值了。也可以一个字节字节的读取,例如写入0X08命令得到一个字节的数据,然后写0X09命令得到一个字节的数据,然后拼接即可。读取其他数据方法一样。再提一句也可以写一个命令读完所有的数据。如写入0X02命令读30个字节数据,就可以读0x02、0x03.....。0x02往后29个字节命令的数据。
4、Extended Data Commands部分:如下图,扩展指令也可以读取所有的数据。SEALED ACCESS和UNSEALED ACCESS主要是设置也在扩展指令里0x61。每个指令的功能看datasheet。
例如要修改design capacity的值,需要直接对Dataflash的寄存器进行操作。操作流程如下:
1. 发送design capacity 寄存器的subcalss 到0x3E/0x3F(根据datasheet的Data Flash Summary的表格,design capacity是subclass,48。需要写入16进制)
W:AA 61 00
W : AA 3E 30 00
2. 发送需要修改的寄存器offset到0x40~0x5F之间,design capacity的offset是10,给0x40+10, 即0x4A,假设为2000mAh
W: AA 4A 07 D0
3.发送checksum到0x60,(需要按照新的0x40~0x5F之间的值进行计算
W:AA 60 new_checksum
源码就不发了,应该已经很清楚了。