BQ25731: Unable to Change Charge Current over I2C

Part Number: BQ25731
Other Parts Discussed in Thread: BQSTUDIO, BQ4050, EV2400

Tool/software:

Hello,

I"m having some trouble setting the charging current of my BQ25731. I am trying to debug this in-circuit, and unfortunately do not have the eval board for this part or the USB/I2C adapter BQstudio needs to be able to interface with this directly.

I seem to be able to read/write all registers just fine, except for the Charge Current register (0x03/0x02). I am trying to set it to 5A, however, I am unable to even lower it to 128mA to simply demonstrate ability to interact with this register.

I believe none of the conditions that should reset this register are met.

  • CELL_BATPRESZ going LOW (battery removal)
    • This measures about 4.5V
  • STAT_AC is not valid(Adapter removal)
    • Screenshot below shows my debug printout showing this bit as (1) when charger is connected
  • RESET_REG is asserted and reset all registers
    • I am not asserting this and all other registers are maintaining values as I read the BQ25731 at 1Hz
  • Charge voltage is written to be 0 V
    • Screenshot below shows my debug printout showing this setting as 16800mV for my 4s battery which is correct
  • Watch dog event is triggered
    • ChargeVoltage is set and WDTMR_ADJ bits are cleared to disable the watchdog function almost immediately on startup

Here is a debug printout. "[CHRG] Charge stat ok: 1" refers to this output pin being high as read by this board's MCU.

Note that the reported ADC_VBAT and ADC_VSYS are a bit lower than reported by the separate BMS IC in the design (the BQ4050) - could this be symptomatic of an issue with my configuration? (ADC_FULLSCALE = 1, and I am using 64mV/LSB).

These transactions seem to be valid attempts to write to 0x02 and 0x03, but the readback shows the 0x0080 POR value reflected in the debug printout above. Note that these transactions are what I am using to enable the charger when +12V is applied to VBUS, hence also accessing Charge Option 0 MSB (0x01) and IIN Host (0x0E and 0x0F) to disable low power mode and ensure the IIN Host value is set to 8A.

Based on some reading on this forum it seems like the BQ25731 will reject settings that demand more charging output power than input power, so I have set the charger for a minimum voltage of 11V and an input current of 8A, and the behavior is the same. Are there any other conditions like this that I'm not considering that would somehow restrict writing the charge current?

Here is my schematic for reference. The 4s 21700 li-ion battery connection to VBAT is on another sheet.

Any insight would be greatly appreciated. I am hoping there is something simple or obvious I've just overlooked.

Thanks!

  • Hi, Aram,

    Your schematic looks correct! You really need a program tool such as EV2400. With BQStudio software, you can see the whole register maps and the status of the charger. 

    I saw the charger is IN FAST Charge , while means the charger is operating in charge mode, with a non-zero charge current. To enable the ADC channel for ICHG, you will need to config the ADC option register and set ADC_START bit. 

    Regards,

    Tiger

  • Hi Tiger,

    Thanks for going over it! We'll grab the EV2400 asap at this point...

    Yes, the charger is actually operating fine at the 256mA setpoint (though I have not yet tested if charging terminates at 16.8V as it should). I have the ADC configured to read all channels except for CMPIN and have set ADC_CONV for 1Hz continuous reading.

    For some reason the currents almost always read zero. Occasionally I will get a reading of a single ADC count but then it returns to zero. I am using 5mOhm resistors for my shunts and don't see anything visually wrong on the PCBA. This seems related to my low voltage readings, but I don't quite understand how.

    I just confirmed VDDA and VREGN are both at 6.08V.

    I'll probably hold off on testing this again until the EV2400 arrives unless you have any particular idea for things to try in the meantime.

    Thank you!
    Aram

  • Hi, Aram,

    Glad to help. The ADC is only 8-bit, the LSB is 128mA. The ADC is possible to return zero since the current sense signal is very low, 5mohm*0.256A=1.25mV. 

    Regards,

    Tiger