Other Parts Discussed in Thread: TPS25750
Tool/software:
I am working on a design with a BQ25730 handling the charge and discharge of a Li-Ion 5S battery pack. It's in tandem with a TPS25750 PD interface. The BQ is configured and managed through a discrete microcontroller. The system is powered off of the Vbus node through either the BQ's OTG output or the PD bus. We have logic in place to enable/disable OTG depending on the presence of a suitable adapter.
This configuration is working well with two exceptions. The first is that the actual charge current is exactly half of that set by the ChargeCurrent() register when ChargeCurrent > 0. We've confirmed that we're using 10mΩ shunts, and we've set RSNS_RAC and RSNS_RSR appropriately. Setting them to 5mΩ does not change the behavior. We can and are working around this in our software config but I wanted to provide this info in case it's a clue to our second, larger problem. Our second problem is the fact that when ChargeCurrent() is set to 0 or CHRG_INHIBIT is set to 1, we get a large, unregulated current into our battery pack. Monitoring the Vsys node while this overcurrent condition is occurring shows the voltage bouncing off the ChargeVoltage() limit of 21V every 13us or so. Lowering the ChargeVoltage() setting changes the voltage that the Vsys node bounces up to. Additionally, we have a hardware current limit set on the ILIM_HIZ pin which is not being respected in this condition, even if EN_EXTILIM is set to 1.
In all of the documentation I can find the ChargeCurrent() and CHRG_INHIBIT registers are hard controls, so can you point me towards why they wouldn't be terminating charging in my design? If needed I can share my register map.