Other Parts Discussed in Thread: BQ25703A, , TPS65987
Greetings -
We have an embedded PC system with touch screen and SOM. It has an internal, smart, off-the-shelf rechargeable Li battery. Our system runs off the battery and uses USB-C with PD for charging and data exchange.
We are using the TPS65987D and the BQ25703A for the USB-C and PD functionality, and our design evolved from TIDA-01627. ADCIN1 is set with a ratio of 0.9.
We based the I2C master configuration of TPS65987D firmware off of SLVAE-18 (Configuring I2C Master for BQ25703A Battery Management Controller)
Charging/Discharging/USB OTG all work as expected. However, we have a problem with dead battery start up.
Whenever we would have our system start with a dead battery (VBAT = 0 due to battery internal fet cutoff for cell low voltage protection) and plug in USB-C to charge, our system would only charge to about 2%.
I have been using TPS65987D-90EVM connected to BQ25703AEVM (in the same manner as our design) to develop TPS firmware and test.
Using the EVM modules and running Battery Management Studio connected to the BQ part and TIs BQ gas gauge software to monitor our battery I have watched the BQ registers and would see addresses 0x02/0x03 be reset to zero (which was the cause of charging to stop). Further studying showed that rather than setting BQ addresses 0x00/0x01 to 0x820E, it was actually being set to 0xE20E. The watchdog timer was being enabled (as is default at power up).
At dead battery power up, I monitored the I2C bus between the TPS65987 and the BQ and I found that several I2C commands from the TPS were getting truncated. The register addresses and data were not present in the messages. These are the initial commands sent out as discussed in SLVAE-18. See the scope capture. None of the data elements are transmitted after the 0x6B address.
And then the first command that actually is sent correctly is some 300ms late setting the charging current:
Thus leaving the watch dog timer set and causing our system to stop charging. At approximately 175 seconds, the battery would stop charging. This behavior occurs on both the EVM setup and our system. The truncated messages are also the same. The above SLVAE-18 messages transmit correctly if we plug in a not-dead battery to a system (no USB-C power).
Issuing a cold reset to the TPS65987D from our SOM does fix the problem in that it reissues the POR commands to the BQ part. But that is not a reasonable solution as it would require turning on the whole system. A dead system should be able to be plugged in and charged with out some higher controller interactions, which I think is the intent of using the TPS/BQ parts.
The truncated messages seem like erroneous behavior on dead battery start-up. I would appreciate any advice to get the BQ configuration to implement correctly on dead battery start-up.
Thanks,
Dave