Cannot get first two source PDO capabilities accurately for STUSB4500
Hi,
I have issues to get the source PDO capabilities by STUSB4500. My power source has 4 source PDOs as below:
- 5V, 3A
- 9V, 3A
- 15, 3A
- 20, 3A
But I most time got below:
- 5V, 4.19A
- 9V, 2.88A
- 15, 3A
- 20, 3A
Verifying the PD message registers, I got:
0x30 1 2 3 4 5 6 7 8 9 a b c d e f
00 66 07 7D 4B 1A EC 20 D1 02 00 2C B1 04 00 2C
41 06 00 ED F1 E2 0C 00 00 00 00 00 00 18 E3 00
I picked up the message register data as below
0x33 7D 4B 1A EC <--- PDO0 data is stored here temporary
0x37 20 D1 02 00 <--- PDO1 data is stored here temporary
0x3B 2C B1 04 00 <--- This is 15V, 3A for PDO2
0x3F 2C 41 06 00 <--- This is 20V, 3A for PDO3
I think my register reading may not be fast enough, but from USB-C PD sniffer, I cannot find any PD message that can overwrite the register 0x33 to 0x3A. All of the PD message ObjCounts is 0, except the source cap message, which has ObjCounts 4(4 source PDOs).
My questions are:
- Is there a way to reliably read the source capabilities?
- How/Why are the register 0x33-0x3A overwritten?
- If there are PD messages that overwrite the registers 0x33-0x3A, what are the messages?
- If the ObjCounts is 0, it should not write anything to RX_DATA_OBJ1_0(0x33) registers, right?
It would be ideal that STUSB4500 can store source capabilities to some fixed registers forever, until new source cap PD message comes.
Thanks,
Winston
