2024-02-16 11:55 AM
I am trying to set-up power management for a USB charging point using an STUSB4710 (i.e. dropping the allowable current for certain PDO when less power is available). My main issue at this point is that the I2C commands required to get this set up are unclear.
The documentation for the I2C communication is deficient in any details on the I2C configuration (all the registers are given with no details on what is in them) and the "stusb47_registers - public.pdf" available on this forum lacks a lot of detail for certain registers as well. From a github source (https://github.com/usb-c/STUSB4700_PowerSharing) I found some code that indicates how the 32 bit PDO registers need to be written, at least for the STUSB4700:
0-9: Max_Operating current
10-19: Voltage
20-21: PeakCurrent
22-24: Reserved
25: DataRoleSwap
26: Communication
27: ExternalyPowered
28: SuspendSuported
29: DualRolePower
30-31 FixedSupply
according to the same firmware the max operating current is the actual value*100, while the voltage is the actual value*20, all other field are never addressed.
I have the following questions about this:
1. is the above description of the registers correct?
2. if so, can bit 20-31 be assumed 0?
3. If I change the PDO settings, how can I force a renegotiation between the chip and a connected device to use the new settings?
4. is there any document that can provide more explanation on how to interface with this chip?
Thanks!