Other Parts Discussed in Thread: BQ25792, TPS25751
Tool/software:
This is a follow up to another post I made titled "BQ25792: BQ25792 I2C appears to lockup when USB-C power is removed and restored quickly" Since that post I have added the ability to monitor the I2C traffic between the TPS25750 and the BQ25792. It was initially thought that there was a problem between the TPS25750 and the BQ25792 communications, but this is clearly not the case.
Our system uses a microprocessor to periodically query the BQ25792 via I2CW and I2CR tasks on the TPS25750 for voltages and charger status. Normally everything works fine and we are able to communicate with both chips. Intermittently the TPS25750 will return a status code of 0x03 signaling "Task Rejected" for a I2CW or I2CR task and after that no other I2CW nor I2CR tasks will complete successfully. It's as if the I2C "passthru" on the TPS25750 is broken. The only way to get out of this mode is to remove the load on the BQ25792 (essentially powering off our unit). During this failure mode the I2C lines between the TPS25750 and the BQ25792 are both in the high, pulled up state with no traffic whatsoever passing over them. What is also interesting is that during this failure state, no communication between the TPS25750 and BQ25792 occurs. Normally there will be traffic when I plug and unplug the USB-C cable for example. During this failure state I can still read and write registers on the TPS25750. It appears that only the I2Cw and I2Cr tasks are affected.
In this scenario the BQ25792 does not have a battery attached but charging is disabled. Also the TPS25750 is not powering the system. Instead we are using the barrel connector input to the BQ25792. Sometimes however, we will get the same error when running from battery and plugging and/or unplugging the USB-C PD connection.
Questions: Is there a hold off time/delay before I can start querying the TPS25750 and using the I2Cw/I2Cr task commads after the unit powers up/load is connected to the TPS25750 and/or BQ25792? Is there any way to reset the TPS25750 to clear the reject task state?
Kind regards,
Paul