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.

BQ25731: BQ25731 ChargeCurrent Start Up Behavior

Part Number: BQ25731
Other Parts Discussed in Thread: BQ25730


I'm attempting to create a design using the BQ25731 Battery Charge Controller paired with TPS25750D USB PD controller. The TPS25750D is configured in AlwaysEnableSink Dead Battery Mode, so that VBUS can power up the External MCU. Then the External MCU can configure the USB PD controller to negotiate a higher power draw. Once the voltage and maximum current has been negotiated, the external MCU will then configure the battery charge controller with the maximum voltages/currents from the USB PD controller and battery fuel gauge.

Simplified Block Diagram:

Simplified Diagram

I have two questions:

1. What is the default ChargeCurrent() of the BQ25731 device, as the datasheet has conflicting information.

Ideally for this application, the BQ25731 ChargeCurrent() should be 0A on startup, inhibiting charge until the External MCU configures the maximum permitted ChargeCurrent() by the battery, as well as maximum adapter current in the IIN_HOST register.

However, the datasheet has conflicting information on what the reset behavior is. The description for the ChargeCurrent() register states that upon POR it resets to 0, but the Reset value of the register encodes to 256 mA, which corresponds to the other information I can find online. Additionally, it states that a watchdog event resets the ChargeCurrent to 0, but elsewhere in the datasheet it states that watchdog events reset the current to 256 mA.

If this could be clarified, that would be great.

Datasheet Annotated

2. If the ChargeCurrent is in fact 256 mA, how can I configure this to be lower such that it won't break the USB specification for max power draw of 0.5W before negotiation, or ideally configure charge inhibit at startup.

My primary issue with this 256mA default behavior is that at startup, before the MCU has a chance to configure the BQ25731, it will begin charging the battery at 256 mA prior to External MCU intervention. My application uses a 5S battery, which could result in charging at over 5W prior to USB negotiation. However, the maximum permitted current draw before USB negotiation is 0.5W. This violates the USB specification, and could cause overcurrent protections to trigger or possible damage to older USB hosts if the External MCU is unable to configure the BQ25731 fast enough.

Additionally, if a failure occurs and the microcontroller is unable to communicate with the BQ25731 due to electrical or software issues in firmware, the charge controller will begin charging the battery, even if the fuel gauge is reporting that charging should not occur. This may result in additional protections triggering in the external battery pack, causing damage.

Do you have any recommendations for how I can ensure that charge is inhibited in the BQ25731 on startup, and will not begin charging until the External MCU properly configures the device?

Thank you

  • Hi,

    Thanks for pointing it out. Looks like there is a mistake in the description. The POR value is indeed 256mA. 

    You can take a look at BQ25730 which provides POR charge current of 0mA. It is similar to BQ25731 except BQ25730 has VSYS and BAT separated by an extra FET.

    Best Regards,


  • Thanks for the information. I've been reading up on the BQ25730 and see that the VSYS line appears to be intended for powering other circuitry, such as the microcontroller. According to the Power Up Sequence in 9.3.1 that the last step of being powered by VBUS is the "Converter Powers Up", does that mean that the BQ25730 enables buck/boost operation and puts voltage on VSYS? Is the VSYS voltage without a battery present equal to ChargeVoltage()?

    If so, what voltage will VSYS go to if CELL_BATPRESZ is set to battery removal, as the ChargeVoltage() description only provides values for 1s - 5s.

    Thank you

  • Hi,

    Yes VSYS will have a voltage supplied by buck/boost operation. However, you do not have to attach any load there if you do not need it. As long as battery voltage is below VSYS_MIN the VSYS output will be at VSYS_MIN. When battery voltage rises above VSYS_MIN the voltage at VSYS will track battery voltage 150mV above battery. VSYS will be equal to ChargeVoltage() + 150mV only when battery is fully charged.

    If you have CELL_BATPRESZ =0V at startup then VSYS=3.6V as mentioned in datasheet table 9-2. If you put CELL_BATPRESZ =0V from a battery setting while the charger is already powered up, then VSYS will be at the value for the battery setting when it started up. 

    Additionally, you can use the CELL_BATPRESZ=0V at startup with BQ25731 as well because it will disable battery charging. However, because it requires the need of additional switch, I mentioned BQ25730.

    Best Regards,


  • Thank you for the additional information, it appears that using the BQ25730 with VSYS connected to the external MCU will work best for my application.