Stm32F407读取BQ34Z100记录
BQ34z100是TI的电量计芯片,首先要使用EV2400,通过BatteryManagementStudio,配置电量计芯片的参数
BQStudio配置电量计芯片参数
Step1:新建工程
Step2:选择芯片型号
Step3:打开Data Memory窗口
Step4:读取参数
读取实际参数
Step5:配置电池组参数
锂电池组满电25.2V 3000mAh
Design Capacity 电池总容量 3000mA
Design Energy 电池的总能量 = Design Capacity * 单节电压(3.7V的*3.7,4.2V的 *4.2)
3000ma*3.7*6 = 66,600mWt
而Design Energy最大值位32767.所以要与DesignEnergy Scale配合设置使用
DesignEnergy Scale 这里设置为15,Design 配置为66,600/15 = 22200
Step6:配置串联电池数量
配置串联电池数量 6
Step7:VOL_SEL置位
点击 pack configuration 弹出上面的pack configuration ,点击VOL_SEL使变为红色,此项不置1,后续电压参数无法校准。
点击write to Data Memory,保存设置
Step8:Qmax Cell 0设置
配置Qmax Cell 0 电池组是3000mAh配置为3000mAh
Step9:Voltage Divider设置
Voltage Divider设置: 由于我选择的是32V的分压档所以 Voltage Divider设置为37364 ,16V 为19182和48V 55545档需要对应的修改
档位 | Voltage Divider |
---|
16V | 19182 | 32V | 37364 | 48V | 55545 |
Step10:实际参数校准
实际参数校准
万用表测量一下电池两端电压,校准一下电压值,电流值校准也可通过实际测量进行校准。
输入校准值后点击 Calibrate Gas Gauge 按钮确认校准。
Step11:RESET
至此,配置完后点接右边的RESET按钮,完成所有配置。
如果在调试中出线这个图标 我在配置过程中遇到过上面的标志通过点击下面的UNSEAL_FULL_ACCESS命令消失,但是RESET后依然有锁标志,而且参数无法配置,但是能够读取,下面状态栏显示读取和写入的比较失败 解决方法
从官网下载BQ34Z100的固件重新烧写进去
2.程序调试问题
BQ34Z100读取电池电压EV2400的时序图
发送指令 起始,0xaa,等待应达,0x08,等待应答,延时100uS,起始0xab,延时150uS
接收1字节,延时100uS,接收1字节,停止
1、BQ的iic与常见的iic有很大区别,中间会有延时,而且BQ芯片会将SCL芯片的引脚拉低,使主控的SCL引脚无法拉高,只有等到BQ释放SCL后,主控才能将SCL拉高,
2、用STM32F407的芯片设置为开漏并外接上拉10K电阻,不能够读取BQ的电压,用示波器测量使能口看到SDA引脚BQ有数据输出,但是STM32F407无法读取电量信息,
解决方法:在读取数据前将引脚改为输入模式就可以正常读取数据,读取数据后改回开漏输出模式。
- BQ iic的SCL周期最好20uS以上,VE2400可以到10uS
4、STM32F407在发送完一字节数据后,最好检查下SCL的状态,只有BQ释放后SCL才会拉高 读取数据前将引脚改为输入模式就可以正常读取数据,读取数据后改回开漏输出模式。
- BQ iic的SCL周期最好20uS以上,VE2400可以到10uS
4、STM32F407在发送完一字节数据后,最好检查下SCL的状态,只有BQ释放后SCL才会拉高
|