BQ25792: When performing continuous ADC conversions when fast charging, readings are meaningless

Part Number: BQ25792
Other Parts Discussed in Thread: TPS25750

Tool/software:

In our product we configure the BQ25792 to perform continuous ADC conversions.  We also enable EN_IBAT in register 0x14.  For some reason when the charger is in fast charge mode the returned ADC measurements are meaningless.  For example, we read negative values for die temperature,  IBAT_ADC, VAC1_ADC, VAC2_ADC, and other voltages bounce around substantially often reporting obviously invalid measurements.   Our product uses both the USB-C PD input on VAC1 and a DC barrel connection on VAC2.  If I disable battery charging, the measurements return to reality and report believable values.  This seems to occur more often at the beginning of fast charge modes.   Another thing I noticed is that it seems to be more prevalent when the unit is powered from the DC barrel connector. 

Any help is greatly appreciated. 

Kind regards, 

Paul

  • HI Paul,

    We are not aware of any issues like that with the ADC, esp with the voltages.  The current measurements can vary some at very light load due pulsing currents in PFM. Also, the current measurements are very sensitive to layout, specifically the 0.1uF capacitors across PMID to GND and SYS to GND are critical.  Have you compared the measures with voltage meters measured as close to VACx pins as possible and/or current meters? 

    Regards,

    Jeff 

  • Hi Jeff, 

    This is very repeatable.  The maximum current we allow for 3S2P charging is 1.0A .  So when the charger is charging at this current, and the charger is running from the VAC2 input, the values are bouncing all over the place.  I have ADC measurements running continuously and conversion resolution is set to 15 bits. ADC averaging is disabled, in a nutshell reg 0x2E is set to 0x80 . 

    The 'ludicrous measurements' are not limited to VAC1 / VAC2. For example the BQ die temperature changes from positive to negative numbers.  For example, if charging is disabled and I read the TDIE ADC register (reg 0x41), I get a believable value: 0x005F = 95, then * 0.5 degrees per bit = 47.5 degrees C.   Now if I turn charging on and read the same register, I get 0xFF32 , and because it's 2's complement this is -206 * 0.5 = -103 degrees C which is obviously invalid.   I am reading these values manually using the TPS25750 I2Cr command.  I've also tried disabling EN_IBAT but this did not fix it. 

    The really weird thing is that if I am running from the DC barrel input (VAC2) it shows the bogus measurements.  But then if I swap over to USB-C PD (VAC1), the measurements are normal, i.e. believable.  Per your question, I have measured the voltages with a DMM on the board.  When I say the measurements are meaningless an example is:  VAC1 = 15.1V but the reading I get is 6.0V . 

    I have attached a clip of our BQ25792 schematic. 

    Regards, 

    Paul

  • Hello Paul,

    Are you able to switch the DC barrel input to VAC1 or the USB-C PD to VAC2?

    I'm curious if this if just related the DC barrel input or, if this happens with any source on VAC2.

    Best Regards,

    Christian.

  • Hi Christian, 

    It would not be easy to switch VAC1 with VAC2.  I'd have to switch ACDRV1 and ADCDRV2  and this board is fairly tight and is an 8 layer board. 

    Some more information:  For our application we are not using D+/D-, we are a sink only.   Do you think there could be any register setting that would cause this?  The DC barrel input is being fed by a high current supply (for testing), capable of >3A current.  When we are in this mode the BQ25792 die temperature is around 106 C.   I don't know what else I can tell you. 

    Regards, 

    Paul