This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ25703A: No charge current.

Part Number: BQ25703A

你好,我使用12V适配器连接到输入电压,使用当前电压为11.9V的锂电池连接到电池端,VSYS端连接到我的主电路,对MCU等器件供电。

问题是连接12V适配器后没有充电电流。

以下是我的原理图。

我使用MCU能够读取到BQ25703的MANUFACTURER_ID为0x40,DEVICE_ID为0x78;

我设置了一系列参数

// 关闭watchdog,退出低功耗模式
I2C_Write_Register(0x01, 0x02);
I2C_Write_Register(0x00, 0x08);

// 关闭外部ILIM_HIZ设置
I2C_Write_Register(0x32, 0x37);

// 开启ADC采样
I2C_Write_Register(0x3A, 0b01010111);
I2C_Write_Register(0x04, 0xA0);

// 设置充电电压为14.496V(4S磷酸铁锂电池)
I2C_Write_Register(0x04, 0xA0);
I2C_Write_Register(0x05, 0x38);

// 设置充电电流为1024mA
I2C_Write_Register(0x02, 0x00);
I2C_Write_Register(0x03, 0x04);

// 设置输入电流限制为3000mA
I2C_Write_Register(0x0F, 0x3C);
I2C_Write_Register(0x0E, 0x00);

// 配置系统最低电压为9.984V(4S)
I2C_Write_Register(0x0D, 0x27);
I2C_Write_Register(0x0C, 0x00);

下面循环读取出一些寄存器参数用于调试,

下面是未接12V适配器,仅连接了12V电池的时候,读取出的参数(例,地址00h:数据0x08)

00h: 0x08; 01h: 0x02;  // 关闭watchdog,退出低功耗模式
21h: 0x20; 20h: 0x00. // Charger is in fast charger ??
04h: 0xA0; 05h: 0x38. // 充电电压为14.496V
02h: 0x00; 03h: 0x04. // 充电电流为1A
0ch: 0x00; 0dh: 0x27. // MinSystemVoltage电压为9.984V
0eh: 0x00; 0fh: 0x3C. // input current limit设置为3A
2eh: 0x40; 2fh: 0x78. // ManufacturerID 0x40 DeviceID() 0x78
24h: 0x00; 25h: 0x3C. // IIN_DPM 设置为3A
0bh: 0x00; 0ah: 0x00. // input voltage limit为0
33h: 0x02; 32h: 0x37. // Disable ILIM_HIZ pin to set input current limit

下面是连接了12V适配器,且连接了12V电池的时候,读取出的参数(例,地址00h:数据0x08)

00h: 0x08; 01h: 0x02;
21h: 0xA4; 20h: 0x00. // Charger is in fast charger ??
04h: 0xA0; 05h: 0x38.
02h: 0x00; 03h: 0x04.
0ch: 0x00; 0dh: 0x27.
0eh: 0x00; 0fh: 0x3C.
2eh: 0x40; 2fh: 0x78.
24h: 0x00; 25h: 0x3C.
0bh: 0x1E; 0ah: 0x00. // input voltage limit变为7.680V,我没有对这个寄存器进行设置。
33h: 0x02; 32h: 0x37.

连接了12V适配器后,适配器的输出电流为零,表示bq25703A没有为电池充电。

  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待

  • 希望尽快回复,感谢。

  • Please follow the user guide to start the charge function. 

    User guide bq2570x Evaluation Module PDF|HTML 12 May 2016
  • I followed this, write 0x02 to 0x00h and 0x0E to 0x01h ;

    Then write the current to 0x02H;

    But it still can not charge.

    What else can I do ?

  • Hi,

    It is probably related to the way you write. The BQ2570X is programmed by a word format, while you write in a single byte. 

    Try to change the sequence if any help. Big endian or little endian?

    Regards,

    Links,

  • I set the I2C peripheral correctly. The following image shows the ManufacturerID(0x2E) is 0x40 and DeviceID(0x2F) is 0x78

    Then I write write 0x0E to 0x01h and  0x02 to 0x00h with MSB first format.

    The logic analyzer shows that the transmission finished correctly as follows.

    Here is some debug information if any help:

    write to 0x6B ack data: 0x2E
    read to 0x6B ack data: 0x40
    write to 0x6B ack data: 0x2F
    read to 0x6B ack data: 0x78
    write to 0x6B ack data: 0x35 0x40
    write to 0x6B ack data: 0x01 0x02
    write to 0x6B ack data: 0x00 0x0E
    write to 0x6B ack data: 0x32 0x37
    write to 0x6B ack data: 0x3A 0x57
    write to 0x6B ack data: 0x04 0xA0
    write to 0x6B ack data: 0x05 0x38
    write to 0x6B ack data: 0x04 0xA0
    write to 0x6B ack data: 0x03 0x04
    write to 0x6B ack data: 0x02 0x00
    write to 0x6B ack data: 0x0F 0x3C
    write to 0x6B ack data: 0x0E 0x00
    write to 0x6B ack data: 0x0D 0x27
    write to 0x6B ack data: 0x0C 0x00
    write to 0x6B ack data: 0x21
    read to 0x6B ack data: 0xA0
    write to 0x6B ack data: 0x20
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x00
    read to 0x6B ack data: 0x0E
    write to 0x6B ack data: 0x20
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x21
    read to 0x6B ack data: 0xA0
    write to 0x6B ack data: 0x3B 0x60
    write to 0x6B ack data: 0x3B
    read to 0x6B ack data: 0x20
    write to 0x6B ack data: 0x2C
    read to 0x6B ack data: 0x8D
    write to 0x6B ack data: 0x2D
    read to 0x6B ack data: 0x8D
    write to 0x6B ack data: 0x29
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x2B
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x27
    read to 0x6B ack data: 0x8E
    write to 0x6B ack data: 0x21
    read to 0x6B ack data: 0xA0
    write to 0x6B ack data: 0x20
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x00
    read to 0x6B ack data: 0x0E
    write to 0x6B ack data: 0x01
    read to 0x6B ack data: 0x02
    write to 0x6B ack data: 0x04
    read to 0x6B ack data: 0xA0
    write to 0x6B ack data: 0x05
    read to 0x6B ack data: 0x38
    write to 0x6B ack data: 0x03 0x04
    write to 0x6B ack data: 0x02 0x00
    write to 0x6B ack data: 0x02
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x03
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x0C
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x0D
    read to 0x6B ack data: 0x27
    write to 0x6B ack data: 0x0E
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x0F
    read to 0x6B ack data: 0x3C
    write to 0x6B ack data: 0x2E
    read to 0x6B ack data: 0x40
    write to 0x6B ack data: 0x2F
    read to 0x6B ack data: 0x78
    write to 0x6B ack data: 0x24
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x25
    read to 0x6B ack data: 0x3C
    write to 0x6B ack data: 0x0B
    read to 0x6B ack data: 0x1E
    write to 0x6B ack data: 0x0A
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x33
    read to 0x6B ack data: 0x02
    write to 0x6B ack data: 0x32
    read to 0x6B ack data: 0x37
    write to 0x6B ack data: 0x20
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x21
    read to 0x6B ack data: 0xA0
    write to 0x6B ack data: 0x3B 0x60
    write to 0x6B ack data: 0x3B
    read to 0x6B ack data: 0x20
    write to 0x6B ack data: 0x2C
    read to 0x6B ack data: 0x8D
    write to 0x6B ack data: 0x2D
    read to 0x6B ack data: 0x8D
    write to 0x6B ack data: 0x29
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x2B
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x27
    read to 0x6B ack data: 0x8E
    write to 0x6B ack data: 0x21
    read to 0x6B ack data: 0xA0
    write to 0x6B ack data: 0x20
    read to 0x6B ack data: 0x00
    write to 0x6B ack data: 0x00
    read to 0x6B ack data: 0x0E
    write to 0x6B ack data: 0x01
    read to 0x6B ack data: 0x02
    write to 0x6B ack data: 0x04
    read to 0x6B ack data: 0xA0
    write to 0x6B ack data: 0x05
    read to 0x6B ack data: 0x38

  • Somehow, still not conform to the datasheet protocols.