主题中讨论的其他器件: EV2400
您好!
我将使用 BQ25883 串联为2个 LiFePO4充电、我认为有必要对寄存器进行编程、如下所示
#define BQ25883ID (0b00011000)
void BQ25883_init (void){
uint8_t v;
V = i2c_read1字节寄存器(0x6B、0x25)& 0b01111000;
if (v!= BQ25883ID){
while (1);
}
V = i2c_read1字节寄存器(0x6B、0x05)&(~(BIT4 | BIT4)); //禁用 WD 计时器,安全装置[1:0]='00'
I2C_write1字节寄存器(0x6B、0x05、v);
V = i2c_read1字节寄存器(0x6B、0x06)&(~(BIT2 | BIT3))| BIT1; //再充电阈值 offset=300mV (200mV+100mV 偏移)、预充电至快速充电阈值5.6V、充电器被禁用
I2C_write1字节寄存器(0x6B、0x06、v);
V = i2c_read1字节寄存器(0x6B、0x07)&(~(BIT0 | BIT1 | BIT2 | BIT3)); //最小系统电压为6.0V (SYS_MIN[3:0]='0000')
I2C_write1字节寄存器(0x6B、0x07、v);
v = i2c_read1字节寄存器(0x6B、0x01)&(~(BIT0 | BIT1 | BIT3 | BIT4))|(BIT2 | BIT4); //快速充电电流为1A (ICHG[5:0]='010100')
I2C_write1字节寄存器(0x6B、0x01、v);
//终止电流和预充电电流默认为150mA、不需要寄存器 mod
I2C_write1字节寄存器(0x6B、0x00、0b00101000); //电池充电电压为7.2V、VREG[7:0]='00101000'
V = i2c_read1字节寄存器(0x6B、0x06)| BIT3; //再次启用充电
I2C_write1字节寄存器(0x6B、0x06、v);
}
我验证了 I2C 接口在板上工作、代码在 BQ25883_init ()之外执行。
但是 、在 BQ25883_init ()之后、充电电流保持在~300mA、 微控制器没有任何调试功能、因此我没有验证它处于哪个充电阶段。 我检查了自主模式下的 BQ25883 (我没有 EV2400)、充电电流也为~300mA。
我必须错过一些简单的东西。 可以在这里提供帮助吗?
非常感谢
Don