Other Parts Discussed in Thread: BQ25798
Tool/software:
Hi there—our design implements a TPS25750 with a BQ25798, both of which are controlled by an EC. The ADCINx pins of the TPS25750 are strapped such that AlwaysEnableSink mode is used.
To ensure our design can boot reliably, the EC waits for the battery voltage (Vbat) to exceed a minimum voltage (Vmin) before proceeding too far in the boot process. If Vbat is below Vmin, the EC waits for the battery to charge until Vbat exceeds Vmin. This procedure occurs very early in the boot process, well before any drivers are loaded and the TPS25750 is patched.
This implementation works reliably in the case of dead-battery recovery, as the PPHV switch of the TPS25750 is closed automatically, allowing the battery to charge. During factory assembly, however, the battery is installed first, and the PPHV switch is open. In this case, the battery cannot charge until the TPS25750 is patched.
Under normal circumstances, Vbat is well above Vmin at the time the battery is installed, and the device can boot immediately. If Vbat is below Vmin, however, this protection loop is entered, but never exits because Vbat cannot increase beyond Vmin. It seems there are three workarounds for this problem:
- Move the TPS25750 patching procedure into the bootloader, before Vbat is checked.
- Add a supplemental EEPROM such that the TPS25750 patching procedure is no longer necessary.
- Ignore Vbat if the
PP3switch
field of thePOWER_PATH_STATUS
register is not equal to 2'b11.
Options (1) and (2) are massive undertakings for us, and not feasible at this time. Option (3) introduces additional complexity and is not preferred. What we would prefer instead is a means to explicitly close the PPHV switch while the TPS25750 operates in patch mode, but the dead battery flag is not set.
Is there any 4CC command or hidden register that can be used for this purpose, perhaps as part of BIST? In case I can clarify my question or application, please let me know.