TPS25751: System shuts down without battery connected

Part Number: TPS25751
Other Parts Discussed in Thread: BQ25798, , TPS25750

Tool/software:

Hi there,

We are using the TPS25751 together with the BQ25798 charger IC on a custom NXP-based board. The TPS25751 is configured to operate as both a source and a sink.

Our issue is that when running without a battery (battery not connected with board), the system shuts down immediately after loading the TPS25751 patch. With a battery connected, the system boots successfully. It seems the problem is related to the voltage switch that happens during fast charging.

Our requirement is that

1. Without battery connected : system should be able to boot from the USB-C power supply (through PD) even when no battery is connected. 

2.With battery connected : system should support fast charging as expected.

Currently, if we do not load the TPS25751 configuration patch, the system powers up correctly without the battery.

Could you advise which configuration settings are required to support both no-battery operation and fast charging when a battery is present?

Thanks,

Pratham

  • Hello,

    Could you advise which configuration settings are required to support both no-battery operation and fast charging when a battery is present?

    I would need to understand why the system is shutting down.

    Even without the battery the PD controller will attempt to write to the BQ25798 after the patch is loaded. 

    Does the BQ device still acknowledge the I2C writes (pd will think there is an error and shut down if NACK)?

    If you do not load the patch, then the device will operate based upon the dead-battery configuration defined by ADCINx.  Which configuration are you using? AlwaysEnableSink or NegotiateHighVoltage?  What minimum voltage do you require in the no-battery operation?

    Is there any other interaction with the PD controller, ie a MCU which clears the dead-battery flag or writes to any registers?

    In your system, can you withhold the configuration patch so that it is only available when the battery is present?  (if using an EEPROM tie to VIN_3V3 instead of LDO_3V3).

    Regards,
    Chris

  • Hi  

    Thanks for your prompt response,Here's the information you have asked for,

    If you do not load the patch, then the device will operate based upon the dead-battery configuration defined by ADCINx.  Which configuration are you using? AlwaysEnableSink or NegotiateHighVoltage?  What minimum voltage do you require in the no-battery operation?

     I have attached the snap from the schematic for your reference. The minimum voltage required in no-battery operation is around 5V.

    Is there any other interaction with the PD controller, ie a MCU which clears the dead-battery flag or writes to any registers?

    Yes, the PD controller is interfaced with the MPU over I2Ct for patch loading and register configuration, We are using the TPS25750 linux kernel driver for it.

    Here's the link for the driver (https://lists.openwall.net/linux-kernel/2023/08/20/86).

    In your system, can you withhold the configuration patch so that it is only available when the battery is present?  (if using an EEPROM tie to VIN_3V3 instead of LDO_3V3).

    Unfortunately, Our design does not support that. 

    Thanks and Regards,

    Pratham

  • Hello,

    The resistor divider on ADCIN2 is 200k/(200k+499K) = 0.286 and results in decode value of '4'. https://www.ti.com/lit/ds/symlink/tps25751.pdf#page=39

    This is not a valid decode value for ADCIN2.  https://www.ti.com/lit/ds/symlink/tps25751.pdf#page=45

    Can you change the ADCIN1 and ADCIN2 configuration for AlwaysEnableSink with the appropriate I2C address for your application?

    Also, can you monitor I2Cc on the PD controller?

    Thanks and Regards,
    Chris

  • Hi  ,

    Apologies for delayed response,

    Can you change the ADCIN1 and ADCIN2 configuration for AlwaysEnableSink with the appropriate I2C address for your application?
    -- We have made changes in the HW and configured both the pins as per highlighted values from the Table 8.2 


    The slave address is configured as 0x21 which is correct as per the Table 8-6 and Table 8-5. 

    Still we are having the same issue and the system is going down once it reaches for patch loading. Can you point me if I am missing any configuration in GUI tool to generate binary?

  • Hello,

    If the system is working with the battery but not working without, then can you explain the order of operation?

    (1) Upon connection the TPS25751 should be in a 'dead-battery' state.  Sink only

    (2) Power path is enabled powering the MCU, LDO_3V3 is available.  System is powered from VBUS. 

    (3) Once the configuration is loaded from the MCU, what other commands does the MCU send; clear DBfg , SWSr

    Can you point me if I am missing any configuration in GUI tool to generate binary?

    Can you confirm the preferred power role? If the power role preference is provider, then the PD will request a power role swap (even though there is no battery).

    Regards,
    Chris

  • Hi Chris,

    Can you confirm the preferred power role? If the power role preference is provider, then the PD will request a power role swap (even though there is no battery).

    Yes the preferred power role is set to Power sink.

    (2) Power path is enabled powering the MCU, LDO_3V3 is available.  System is powered from VBUS. 

    Yes, Its available.

    (3) Once the configuration is loaded from the MCU, what other commands does the MCU send; clear DBfg , SWSr

    After the configuration bianry is loaded, The driver sends the "PBMc" and system immediately goes down after that.

    Let me know if you require anything else.

    Best Regards,

    Pratham

  • Hello,

    Is it possible to read the boot flags after the PBMc is sent?  

    https://www.ti.com/lit/ug/slvucr8a/slvucr8a.pdf#page=35

    Maybe waiting ~25ms after PBMc is sent.  

    https://www.ti.com/lit/an/slvafv8a/slvafv8a.pdf#page=5

    Regards,
    Chris