Been chasing this problem far too long:-(.
Right now, just a UCD9090 and PIC (master). After power is sequenced up and no failures I can read the ARA no problems, of course the UCD9090 does not ACK since there is no alert. I can read status, voltages, etc. without any issues.
If I cause a supply failure, the UCD asserts PMBALERT#. 2 things I don't understand. 1) if I read STATUS_WORD before reading the ARA, the status is what I expect (8801h). But if I read ARA first and then STATUS_WORD I get 8803h, and reading STATUS_CML is 80h indicating "invalid command". I don't understand why reading the ARA causes the "invalid command" status to show up. I have tried reading the ARA with and without the PEC byte, but for some reason adding the reading of the PEC byte results in a timeout during a following STATUS_WORD described more below.
2) If I read the ARA with PEC byte after the PMBALERT# is asserted, then read STATUS_WORD, I seem to get a timeout on the first one, but a second STATUS_WORD completes in a normal time. The message looks like S-Add-wr-Ack-0x79-Ack-RS-Add-rd-Ack then the UCD9090 stretches the clock to cause a timeout. If I don't read the ARA with the PEC byte, this timeout behavior does not happen, but I still get the "invalid command" status described in #1 above.
Also odd to me is that reading the ARA does not de-assert the PMBALERT# as I would expect. I have to either reset the UCD9090 or send CLEAR_FAULTS to de-assert the PMBALERT# output.
I get the same behavior when I do this with the USB interface and have compared the transactions with a logic analyzer, so it is not related to the PIC.
Any guidance is appreciated.