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.

PMBus Alert Line inconsistancy

I have UCD90xxx sequencers on an I2C/SMBus and it is working very well except for one case. When a sequencer pulls the alert line and I send the ARA the sequencer returns its address as described but does not release the alert line as the documentation says it should. These sequencers are on EVM development boards if that is relevant.

When I use the SMBus Tools in the Fusion GUI connected via USB. After multiple "receivebyte" commands to the ARA (12d) I can get the sequencer to drop the line.

Anyone have any information on this?

TIA, Ted

  • Hi Ted,

    It might be because the MFR bit is set indicating a new detail in the logged fault. Even though you clear the fault the MFR bit still doesnt get cleared indicating that there is a new entry in the fault log and you need to do something about it. Clearing the logs must release the line. I'll double check this and confirm on it.

    Thanks, Spandana

  • Spandana,

    Thanks for the info. Yes, clearing the faults does cause the alert to be released but if the faults are still there it is reasserted. We have several sequencers on the bus and if more than one has a fault it would not be possible to find any other than the one with the highest priority address. If the sequencer would release the alert line after responding to the ARA I could then find the others.

    I will check the MFR bit to see if that has an effect on this behavior. Also, please let me know anything you find out.

    Thanks, Ted

  • Ted,

    There is an Errata on the alert response protocol for these devices.

    Specifically, if two or more devices report an alert (via the SMBALERT# signal) to the host and the host issues an Alert Response Address command (a Receive Byte command with address 12), the device with the lower PMBus address will win the arbitration and its address will be the one received by the host.  The device with the higher PMBus address will be unaware that it lost arbitration, and the next command to the device with the higher PMBus address will be ignored.  If the host sends a third Alert Response Address command and this device wins the arbitration, then the host will receive the higher address in response.

    A simple workaround for this issue is to follow any Alert Response Address command with a PMBus STATUS_WORD command using the address that was received in the Alert Response message.  Since this address will not be the address for the device that lost arbitration, it will clear the PMBus hardware for that device, allowing it to respond to the next Alert Response Address request on the PMBus.

    Hope this helps, Thanks

  • Spandana,

    I wrote some code to do this but the sequencer did not release the alert line. If I clear the faults it does release the line. According to the documentation it is supposed to release it when I do the ARA "receivebyte" procedure. It does return its address but doesn't release the line. I can't tell if it is releasing it and then reasserting it because the faults are not cleared.

    How can I find out about the MFR bit that you talked about in your first response. Maybe clearing that bit would solve the problem but I don't understand how it works and wither I can clear it via a command.

    Thanks, Ted