Hi:, 首先感谢大家对问题的关注,
我们的产品中使用了 BQ27542-G1,按照参考原理图设计的, BQ27542-G1 设计的最大计量是 14.5 Ah , 我们是 20Ah, 我在网上看到要做校准 ,第一次搞,很多术语都不懂,我需要的是: 充电标识以及放电时,剩余电量百分数 ,现在是容量不够,我想修改 Design Energy Scale ,能满足我的要求吗?
(1) 我在技术参考手册上看到 6.1.1.7 Design Energy Scale ,
For battery capacities larger than 6 Ahr, Design Energy Scale = 10
is recommended. 。 如 20Ah , 需要设置成 10 吗?
(2)一定需要EV2300+PC 侧电池管理软件才行吗? 我能否通过 I2C 直接写 flash的数据,行吗?
(3)我看到数据手册上有 Autocalibration, 是否还需要一个充放电的学习过程?
Star Xu:
1. 可以设置成10, 这样方便计算
2. 可以用单片机写值
3. Autocalibration 是在sleep mode进行
GuangHui fu:
回复 Star Xu:
1. 我理解 Design Energy Scale 就是一个刻度,缺省1, 支持 14.5Ah, 如果设置成 2,就可以支持 29Ah,这样理解对吗?
2. 正确设置 Design Energy Scale 后,还需要做下面两项吗(这是我在论坛上找到的)?
(1) 将所有mAh单位的配置,都配置成1/10,
(2). 校准电流的时候,实际用1A电流,校准的时候写100mA,这样电量计显示的电流,和容量值都为1/10.
参考链接:http://www.deyisupport.com/question_answer/analog/battery_management/f/35/t/92987.aspx
Hugo Zhang:
回复 GuangHui fu:
Design Energy Scale只能是1或者10,不能是其他数
GuangHui fu:
回复 GuangHui fu:
我用单片机 STM32 通过I2C 操作 data flash,. 代码是按 TI 的 MSP430 的exsample 来写的 . 写入的数据和
读取的数据比较,是一致的。但重新上电,Block A 还是初始值 00, 是有什么命令没有送吗? 程序如下:
// Write & read back 32 bytes of data in Manufacturer Info Block A for (i = 0; i < 32; i++) { TxData[i] = i; // Initialize data to be written } IIC_Write_One_Byte(bq27541CMD_DFDCNTL, 0);// BlockDataControl() = 0x00 IIC_Write_One_Byte(bq27541CMD_DFCLS, 58);// Write the subclass value IIC_Write_One_Byte(bq27541CMD_DFBLK, 0);// Select offset within the flash for (i = 0; i < 32; i++) // Compute the checksum of the block { sum += TxData[i]; // Calculate the sum of the values } checksum = (0xFF – (sum & 0x00FF)); // Compute checksum based on the sum IIC_Write_One_Byte(bq27541CMD_DFDCKS, checksum); // Write checksum value for (i = 0; i < 32; i++) // Write 32 bytes to Info Block A { IIC_Write_One_Byte((bq27541CMD_ADF+i), TxData[i]); } IIC_Read_Bytes(bq27541CMD_ADF,&RxData[0], 32); // Read the contents of the block for (i = 0; i < 32; i++) // Check if writes were successful { if (TxData[i] != RxData[i]) // Tx & Rx data values match? { sum=0 ;//error } }
TI中文支持网
