This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UCD90120A: (F3h) Mfr Specific status: I2C readout vs. Fusion GUI mismatch

Part Number: UCD90120A

In Fusion, on the tab "Status Registers", there is the table "MFR_STATUS Rail#1".
When I press the button "Start Polling" and got the updated values, then "Stop Polling" to be able to access I2C with my microcontroller:

  • in Fusion: bit #6 is on: "LOG_FULL"
  • I write I2C to set the current rail to #1, i.e. write 1 payload byte (0) with command 0x0.
  • do a I2C read of command 0xF3, length 4 bytes
    • bit #2 is on: "Seq ON Timeout".
  • No other bits are 'on' in either case
  • it is both in the same byte (first one), so it can't be an issue of wrong byte order.
  • I followed the code calls, in the debugger, down to the bare I2C library to confirm that it's exactly those bytes being sent, i.e. no code bug elsewhere
  • I am successfully reading other status commands, logged faults, peaks, via the same method / code, everything perfectly matching what Fusion GUI shows
  • so I don't think there's a general error somewhere in my i2c code

EDIT:
Just to be sure, I now unplugged the TI USB interface ribbon cable from the header with I2C, to put a logic analyzer on it.
The following I2C decoded sequences were captured by the logic analyzer:

For setting the active rail to #1 (i.e. page = 0)
Start
W addr 0x5b ack
W data 0x00 ack
W data 0x00 ack
Stop

Now reading the Mfr Status:
Start
W addr 0x5b ack
W data 0xf3 ack
repeat start
R addr 0x5b ack
R data 0x04 ack   # i.e. bit2 is '1', instead of bit6 that Fusion shows
R data 0x00 ack
R data 0x00 ack
R data 0x00 Nack
Stop


What could be the cause for Fusion seeing a different value on MFR_STATUS than my read from 0xF3 gets?