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: PMBus_ALERT# be asserted when read MFG_DATE

Part Number: UCD90120A

Hi Sir,

We found the PMBus_ALERT# pin of UCD90120A would be asserted when read the block length of MFR_DATE register(0x9D).
Here is our reproduce flow:

Step 1: Make sure no error status in STATUS_WORD(79h)
(0x68 is i2c address of our UCD90120A)
root@ubuntu:~# ipmitool i2c bus=2 0x68 0x2 0x79
 00 10
00000000 00010000

Step 2: Read the block length of MFR_DATE(9Dh)
root@ubuntu:~# ipmitool i2c bus=2 0x68 0x1 0x9d
 06
00000110

Step 3: Check error status in STATUS_WORD(79h)
root@ubuntu:~# ipmitool i2c bus=2 0x68 0x2 0x79
 03 10
00000011 00010000

Do you have any idea of this scenario?
Thanks!

  • Hello

    MFR_DATE is a block command. since you only read the first byte instead of the complete message, device will return the length but also set the CML bit to tell that the transaction is not a valid based on the PMBus Spec.

    If you want to avoid such, please read the complete message in one transaction .

    Regards

    Yihe

  • Hi Yihe,

      The weird thing is we also read 0x9B data with one byte but the PMBus_ALERT# did not be asserted at all.

    0x9B(MFR_REVISION) is also a 12bytes block according to doc. SLVU325F.

    command: ipmitool i2c bus=2 0x68 0x1 0x9b

    Thanks

  • Hello

    MFR_REVISION supports up to 12Bytes, but it does not mean that it will always have 12 bytes available to read

    Do you ever configure the MFR_REVISION? if you have MFR_REVISON configured, it will trigger alert pin when reading one byte only.

    Regards

    Yihe

  • Hi Yihe,

      Actually we had configured both MFR_Date and MFR_Revision as below figure.

    Do you see any difference to cause this problem we encountered?

    What I saw is we used all 6 chars of MFR_Date and only 2 chars of MFR_Revision.

    Thanks

  • Hi Yihe,

      We have tried to fill all 12chars of MFR_Revision and the test result is same as what we saw in MFR_Date. which is PMBus_Alert# be asserted if not read the entire block.

    Our question is this a limitation of UCD90120A or defined behavior from standard(PMBus)?

    Thanks

  • Hello

    The communication protocol of UCD is following SMBus spec. which is defined at section 5.5 of SMBus http://smbus.org/specs/smbus20.pdf. PMBus is also following the same.

    Reading one byte is not defined as a valid protocol in the spec. Invalid communication protocol will trigger alert pin.

    Regards

    Yihe