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.

BQ25121: Charging Done never occur

Part Number: BQ25121


Hi,

this is my configuration:

  // Reset all registers to default
  twi_tx_register_8(m_twi, BQ25121_ADDRESS, ILIM_B_UVLO_CR, 0x8A  );     //reg 9     

  // Set Reisters
  twi_tx_register_8(m_twi, BQ25121_ADDRESS, TS_CFMR,        0x08 );      //reg 2     // disable thermistor
  twi_tx_register_8(m_twi, BQ25121_ADDRESS, FCCR,           0x8C );      //reg 3     // set charging current to ~70mA
  twi_tx_register_8(m_twi, BQ25121_ADDRESS, TPCR,           0x86 );      //reg 4     // set termination current to 7mA 0x86
  twi_tx_register_8(m_twi, BQ25121_ADDRESS, SYS_VOUTCR,     0xBE );      //reg 6     // 2.8V out
  twi_tx_register_8(m_twi, BQ25121_ADDRESS, PBCR,           0x68 );      //reg 8     // After Reset, device enters Hi-Z mode
  twi_tx_register_8(m_twi, BQ25121_ADDRESS, VIN_DPM_TR,     0x42 );      //reg 11    // turn on 3h safety timer

Battery have 4.2V and after 1hour of waiting I still read Charging in progress State from Reg 0.

What is the problem ?

Edit:

1. In the same PCB with the same program but with BQ25121A instead BQ25121 everything works fine.What is wrong ?

2. Battery is 110mAh

  • Hi Marcin,

    Can you read out the registers after 1-2min of writing the values above? My suspicion is that the watchdog kicked in and turned the settings back to low charge current default of 10mA. 

    To keep the watchdog from resetting the registers, you will need to perform an I2C transaction (a write or a read) within 50s. The BQ25121A has the watchdog function disabled so it is likely that the settings never changed. 

    If you have a plot of ICHG or even VSYS (VSYS will go back to 2.5V) will confirm our theory. Schematic looks good.  

    Regards,

    Gautham Ramachandran

  • Hi, I checked this and BQ25121 don't reset after 50s. Btw, I communicate all time in interval 100ms with BQ25121 to check charging status and battery voltage.

    Other strange thinks I observe is that Termination Curent Register seems to dont work properly.

    I set 0x86 = 7mA Termination Current then BQ25121 never cut off charging, so Charging done never occur. I monitor charging current and it drops to 1-2mA verey very slow

    If I set 0xAB = 19mA Termination Current cut off charging on 4.8mA chrging current.

    My PCB board (UC + pherips) consume only 1mA at 2.8V

    What is the problem with Termination Current register? Should I set something else for proper work ?

    Marcin

  • Hi Marcin,

    Can you provide a register dump of all registers before termination was supposed to occur? If you have plots on VIN/ PMID VBAT and IBAT, it can provide more clue on why this is occurring. I would also recommend adjusting the 100ms to 30ms for debugging. 

    For termination setting- as long as no loops are actively reducing the charging current, you will see charging stop after the termination current target is reached. Another question- does the board with the BQ25121A show this behavior? .

    One other thing to watch out for is- if you have multimeter in series with the BQ, that can cause an incorrect CV point entry and possibly termination current readout. It is ideal if you have a sourcemeter to measure this on the battery side or if you can monitor VIN current and subtract the system current from it will work too. 

    Regards,

    Gautham