BQ25622E: SYSTEM powering from Battery when External supply connected. But supplementing not required.

Part Number: BQ25622E

Tool/software:

We have an odd situation on our project. Let me explain the setup. 

External supply is >12V 

Input current limited to 2A.

Only things on the SYSTEM rail is a cellular modem directly connected. (2V-5.5V accepted range) 

And an STM32 via a 3.3V regulator. 

The modem when active will draw on average about 200-300mA at its voltage level, with occasional 2A very mS long "short" spikes. 

The STM32 when active uses bellow 10mA.

We have the BQ configured to charge the 18650 cell to 4.1V.

Here's the bulk reg settings code. 

void BQ25622Driver::setup()
{

  // Configure registers (as per your original settings)

  _log.noticeln("[BQ25622] Resetting BMC Regs");
  writeRegister8(BQ25622Register::ChargerControl2, 0b1'1'00'01'0'1);

  _log.noticeln("[BQ25622] Setting Charge Current Limit to 1A");
  writeRegister16(BQ25622Register::ChargeCurrentLimit, 0b0000001101000000); // 1A charge current


  setChargeVoltage(4100); // value in mV

  _log.noticeln("[BQ25622] Setting Input Current Limit to 2A");
  writeRegister16(BQ25622Register::InputCurrentLimit, 0b0000010111110000); // 2A input current limit


  _log.noticeln("[BQ25622] Setting Input Voltage Limit to 6V");
  writeRegister16(BQ25622Register::InputVoltageLimit, 0b0001001011000000); // 6V input voltage limit


  _log.noticeln("[BQ25622] Setting Pre-Charge Current to 300mA");
  writeRegister16(BQ25622Register::PreChargeControl, 0b0000000011100000); // 300mA pre-charge current


  _log.noticeln("[BQ25622] Setting Termination Current to 100mA");
  writeRegister16(BQ25622Register::TerminationControl, 0b0000000001001000); // 100mA termination current


  _log.noticeln("[BQ25622] Configuring Charge Control 0 register");
  writeRegister8(BQ25622Register::ChargeControl0, 0b00000110);


  _log.noticeln("[BQ25622] Setting Charge Timer Control");
  writeRegister8(BQ25622Register::ChargeTimerControl, 0b01001100);


  _log.noticeln("[BQ25622] Configuring Charger Control 1");
  writeRegister8(BQ25622Register::ChargerControl1, 0b101000'00); // first two bits control the watchdog that caused charge current to reduce. Setting this to 0 disables watchdog
  _log.noticeln("[BQ25622] Configured Charger Control 1");
  _log.noticeln("[BQ25622] Host Watchdog disabled");

  _log.noticeln("[BQ25622] Configuring Charger Control 2");
  writeRegister8(BQ25622Register::ChargerControl2, 0b0'1'00'01'0'1);


  _log.noticeln("[BQ25622] Configuring Charger Control 3");
  writeRegister8(BQ25622Register::ChargerControl3, 0b000'0'1'1'00);


  _log.noticeln("[BQ25622] Configuring Charger Control 4 with 3A peak battery output");
  writeRegister8(BQ25622Register::ChargerControl4, 0b10'0'00'0'00);


  _log.noticeln("[BQ25622] Configuring NTC Control 0");
  writeRegister8(BQ25622Register::NTCControl0, 0b01011101);


  _log.noticeln("[BQ25622] Configuring NTC Control 1");
  writeRegister8(BQ25622Register::NTCControl1, 0b00100101);


  _log.noticeln("[BQ25622] Configuring NTC Control 2");
  writeRegister8(BQ25622Register::NTCControl2, 0b00111111);

}

As you see most of it has its byte values hard coded. 

We have the system setup on a bench power supply.

The main issue is there are times we are seeing the current draw appear 0 on a PSU with three decimal places. It appears the system is drawing off the batteries rather than the external supply.

At these times we know the cellular modem is in its continuous mode, so it should be drawing roughly 60mA at the PSU. This is well bellow the 2A current limit setting. So the BQ shouldn't be supplementing the SYSTEM supply. 

But at these times the SYSTEM appears to be fully supplied off the battery.

Its possible the battery is a little over 4.1V at times. And we wondered if the BQ is favouring the battery over the external supply to discharge it to the 4.1V level. 

We also usually see this 0 current on the PSU when we attach the STLink to program the stm32 and connect to it.

Its an official STLink, and its 3.3V pin is for detecting voltage level, and does not supply voltage. 

I think first we need a better understanding of how the BQ would treat a battery thats slightly over the target voltage but within the cells chemistry range. 

But also why the BQ appears to be powering the system at times, even with an external supply is attached. 

Or what scenarios would cause it to happen. 

At the moment its not breaking our product, but it is throwing loads of question marks we need to understand first before we're comfortable to move forward. 

  • Hi Simon, 

    Thanks for reaching out via E2E. Please see my comments below. 

    When battery is slightly over full charge voltage setting, in your case 4.1V, charge is suspended if it was not already terminated and the BQ25622E applies an internal 30mA sink current at BAT pin in an effort to reduce battery voltage. The buck converter will remain on so input source supplies SYS. 

    If battery voltage continues to increase it will begin to source some of SYS load and if it continues to increase buck converter will eventually turn off and battery will be only source for system until battery voltage reduces. 

    The main issue is there are times we are seeing the current draw appear 0 on a PSU with three decimal places. It appears the system is drawing off the batteries rather than the external supply.

    Can you please provide a register dump from the BQ25622E when it appears system is drawing power from battery even when input supply is connected so I can review?

    Best Regards,

    Garrett