I'm trying to save time with multiple configurations (each config download takes about 1 min in my system). So I was using GPIO0 & GPIO1 to load multiple configurations. Because of memory limitations the TPS65982 can only utilize 0x400 bytes for configurations (0x2800-0x2BFF) in the flash, although 0x2800-0x2FFF is available. Don't know why the other 0x400 can't be used.
I used version 2.15 of the ApplCustomization tool to have 3 configurations sets, using virtual address of (DBG1)0, (DBG2)0, 1 (93.1kOhm); 0,0,2 (156k) and 0,0,3 (220k). I then change just the SinkCapabilities so that I ask for a single 5V PDO if GPIO0 or 1 fall, and a 5V/12V 2 PDO set if GPIO0 rises, and a 5V/20V PDO set if GPIO1 rises. This uses up 0x3F0 of the 0x400 space, so I can't have 4 config sets.
On the Misc config page I set the App Config Group1 settings as GPIO low transition to 0x1, and the GPIO high transition to 0x2. I set the App Config Group2 settings as GPIO low transition to 0x1 and GPIO high transition to 0x3. I set the Command channel to CMD3 in both App Configs. Then I set the 4CC Commands for both the rising and falling edges to 'ANeg'. I populated all 4 slots in each App Config with 'ANeg' to see if it would fix my problem.
Finally, under the GPIO Event Map register I set GPIO0 to 'Load App Config Set 1' as the mapped event, and GPIO1 to Load App Config Set 2.
I saved both the project and the binary files to low/all and then downloaded that to my board with a TPS65982 IC on it. I then connected to a TP65982 EVM board with the switches set to 0110 (6) so that it would advertised source capabilities of 5V, 12V, and 20V and powered up that board. I have a PD analyzer looking at the CC lines.
RESULTS:
When I toggle GPIO0, it switches between a 5V and 12V contract as it loads the different config and then sends the Aneg command. I see the GPIO0 switching as I probe and I see a trace on the analyzer that shows the request and the PSRDY as the EVM board switches between 5V and 12V.
BUT... If I try the same thing with GPIO1 it doesn't work. I probe the ball and see the GPIO1 line toggle high and low. I also use an Aardvark and the Host Interface Utility and read the Sink Capabilites register (0x33) toggle between one PDO of 5V and 2 PDOs of 5V and 20V. However, I don't see the PD traffic and the EVM board doesn't change the lights. I can using the HIT to send a 'ANeg' command after I toggle the GPIO1and then I see the PD traffic and it works. So for some reason, switching GPIO1 doesn't send the command, even though I see the configuration change?!? I have to manually send the command myself using the HIT. GPIO0 works fine and doesn't have this problem.
I changed the command channel on the AppConfigGroup2 (GPIO1) to CMD1 instead of CMD3 but this didn't help, I still don't see any PD traffic.
Is there a timing issue with the command channel? Do you see anything I have set up incorrectly in my programming? And why is only 0x400/0x800 of the flash part used for config?