如题,现在已经能通过IIC采集到电池的单体电压和总电压,CC的值也能采集得到,现在的问题是:
1、在充放电过程中,如何利用CC的值,来计算出电池SOC,有什么具体的实现方案没有?谢谢了!
2、采集的2路温度,根据公式算出来的值和通过量温度传感器的电阻查找相应的温度值有10度左右的误差,什么原因会影响采样值?
Sheldon Cai:
1.可以考虑用bQ78350这个芯片, 这个芯片配合BQ76930能够完成SOC计算功能。保护 均衡等控制。谢谢!
yulin wang:
回复 Sheldon Cai:
谢谢你的答复,可是我们现有板子已经在调试了,目前改版不太现实,能不能就我现在的情况,给点算SOC的思路呢?谢谢了!
Richard Tang:
回复 yulin wang:
因为BQ76930本身带有库仑计,所以基本的思路就是采用MCU去读取930的库仑信息,进行电流的积分来计算容量,其他的就是考虑下温度, 负载变化还有电池自放电或者系统待机小电流的补偿问题等,这个就需要你们按照自己的思路来处理了。
电量的计量是一个非常复杂的算法,所以如果可能的话,还是建议采用配套的专门的电量计量芯片更好些。
yulin wang:
回复 Richard Tang:
谢谢你凌晨的回答,真心感谢,我还是有点疑问,你所说的 “读取930的库仑信息,进行电流的积分来计算容量”,我现在能读到CC的值,我是不是还要得到充放电时对应的电流值,然后 CC值和电流值积分?谢谢你了!!!!
Richard Tang:
回复 yulin wang:
这里可能有点混淆了,库仑积分就是电流对时间的积分,结果就是电量mAH。所以你要做的就是读取CC值,然后根据时间累加就可以了。
yulin wang:
回复 Richard Tang:
真心谢谢你,谢谢! 我还有个小疑问,你所说的根据时间累加,那么我应该多长时间累加一次呢?(已知:CC的值是250MS完成一次转换)
any sh:
回复 Richard Tang:
请问有没有bq76930 IIC和MCU通讯的demo?我的邮箱502565661@qq.com,不胜感激。
DZ_HY:
回复 Richard Tang:
你好,我使用的芯片是BQ76930003ATG4C5ZC,使用了一块BQ76930EVM板和EV300,在上位机上显示的地址是0X08,电压数据正常,现在我自己写了一个IIC程序(是使用MCU的IIC接口,不是模拟IIC程序),硬件环境是使用一块8位的MCU芯片和BQ76930EVM,将EVM的IIC接口与MCU的IIC接口接上,两块板共地,拔掉了EVM板上J14上的所有跳帽,这个程序测试读写支持IIC协议的AT24C02的EEPROM芯片正常,但是现在不能读取到BQ76930的电压数据,我写的地址是0x10,读的地址是11,急待解决。初始化BQ769芯片的寄存器写入的地址add[11] ={0x00,0x01,0x02,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b}; 在初始化寄存器中写入的配置数据data[11]={0x08,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0xAC,0x97,0x19};写入和读取的程序模块,现在没有数据出来,REGOUT是4.5V
for(i=0;i<11;i++) {WRITE_IIC(add[i],data[i]); delayms(5); }delayms(250);for(i=0;i<5;i++){readbuf[i]=IIC_read_one_byte(regadd[i]);delayms(5); }
DZ_HY:
你好,我使用的芯片是BQ76930003ATG4C5ZC,使用了一块BQ76930EVM板和EV300,在上位机上显示的地址是0X08,电压数据正常,现在我自己写了一个IIC程序(是使用MCU的IIC接口,不是模拟IIC程序),硬件环境是使用一块8位的MCU芯片和BQ76930EVM,将EVM的IIC接口与MCU的IIC接口接上,两块板共地,拔掉了EVM板上J14上的所有跳帽,这个程序测试读写支持IIC协议的AT24C02的EEPROM芯片正常,但是现在不能读取到BQ76930的电压数据,我写的地址是0x10,读的地址是11,急待解决。初始化BQ769芯片的寄存器写入的地址add[11] ={0x00,0x01,0x02,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b}; 在初始化寄存器中写入的配置数据data[11]={0x08,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0xAC,0x97,0x19};写入和读取的程序模块,现在没有数据出来,REGOUT是4.5V
for(i=0;i<11;i++) {
WRITE_IIC(add[i],data[i]); delayms(5); }delayms(250);for(i=0;i<5;i++){
readbuf[i]=IIC_read_one_byte(regadd[i]);delayms(5); }
xiong zhou3:
你好,你在测试BQ76930时,CC值跳动大吗?