一、电量计是什么
电量计IC 采集电芯电压、电芯温度、电芯电流等信息,通过库仑积分和电池建模等计算电池电量、健康度等信息,通过I2C/SMBUS/HDQ 等通信端口,与外部主机通信。
二、通信方式SMB
SMBus 和 I2C的主要差别是与各种时序要求相关。下面列举最重要的方面:
- SMBus 定义一个最小总线时钟频率 FSMB, 10 KHz。I2C没有明确任何最小总线时钟频率。
- 除了维持有效的总线吞吐量,该SMBus协议参数还可作为一个简单的检测总线空闲条件(除了或代替检测每个STOP条件)和实现比特位超时的方法。
- SMBus 定义一个数据保持时间,即从 SMBCLK 下降沿之后,SMBDAT仍然必须维持至少300ns有效。这在 I2C协议中定义的保持时间为0。* * SMBus 时钟最大频率定义为100 KHz。I2C提供多种不同速率模式操作,Standard模式最高频率达到100 KHz, Fast模式为400KHz,Fast Plus为1 MHz,而 High-speed高达到3.4MHz。
- SMBus 定义一个时钟低电平超时 TTIMEOUT,最大为35ms。I2C并没有明确指定任何超时限制。
- SMBus 明确 TLOW:SEXT,即SMBus 从设备的累积时钟低扩展时间。I2C没有类似的规定。
- SMBus 明确 TLOW:MEXT,即SMBus主设备的累积时钟低扩展时间。I2C没有类似的规定。
三、通信盒子
TI目前提供了两款通信盒子(EV2300 ,EV2400),供不同的电量计IC与上位机通信。通信盒子上提供了SMB , I2C , HDQ 三种通信接口,不同的电量计IC 可以根据自己的通信方式,选择不同的接口。 EV2300 在接入64 位电脑系统时要单独装驱动。点击下载 EV2400 在接入电脑时会自动装驱动, 它兼容性更广,兼容使用EV2400。
四、BQSTUDIO
BQSTUDIO 是 TI 官方提供的上位机软件,通过专用通信盒子,与电量计IC 相连,能够读取电量计IC 测量到的数据。打开BQSTUDIO ,如果在左下角提示No free adapters are available for use on this system ,如果确定usb 线没异常,应该就是通信盒子(EV2300)的驱动没装。
正常打开BQSTUDIO 的显示如下:
在BQSTUDIO 工具栏可以选择Advanced Comm SMB , 可以给电量计IC ,发送命令,read word,write word等等。
我这里没有深入研究BQSTUDIO 的功能。我自己通过mcu 读取电量计数据时,没读取成功。这里我的目的是为了捕获通信盒子和电量计的IC 的通信过程,用以优化我代码中的bugs。
修复代码的问题点
这里捕抓了通信盒子和电量计的通信过程
分析了一下,发现与自己代码中的不同点在于。我代码中在第9个sck 周期,等待电量计IC 回复的时间太短。延长一下这个时间,问题解决。
|