Other Parts Discussed in Thread: UCD90160, , UCD90160A, , UCD90120
Regarding UCD9090/A UCD90160/A
Situation:
On a UCD90160A, we recently saw the “Invalid Logs” bit set on all MFR-Status registers. This coincided with the Status-Byte = 0x01 and Status-Word = 0x1001. A power cycle of the unit did not clear any of these registers. On this device, we also have GPI faults enabled. If the GPI faults are disabled, all status registers go clear. Re-enabling the faults causes these registers to get set again. We have other products that use the UCD9090 device. When this error showed in the UCD90160A, I checked the UCD9090 devices. I discovered that the “Invalid Logs” bit was set on all MFR-Status registers but the Status-word = 0x1000 and the Status-Byte = 0x00.
Questions:
For the second case above (Status-word = 0x1000 and the Status-Byte = 0x00) – is this an illegal combination? That is, how can the LSB of the status-byte be 0 and a bit is set in the upper byte of the Status Word? Isn’t the LSB of the Status Byte supposed to be set to indicate whenever any bit in the upper byte is set? Or does this mean, if the Status-Byte is equal to 0x00, all other status registers be ignored regardless of what bits are set?
For the first case above, I understand that the checksum can get interrupted on a shutdown and therefore be corrupted. However, the faults that are being logged happen at time that the device is fully powered. So why would the fault logs get corrupted?
Question Regarding Fault Logging.
According to the PMBus Spec, if a fault is still present when the fault “bit” is cleared, the fault “bit” shall immediately be set again and the host notified in the usual means. My observation is that whenever a fault occurs and is cleared, but the fault is still present, the fault is not logged again. Is this the intentional behavior of all the UCD devices?