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.

UCD9248 Programming Through I2C

Other Parts Discussed in Thread: UCD9248, TMP421

Hi,

I was trying to use I2C protocol to program my UCD9248 devices. I started with a simple action, e.g. to change the voltage margining from nominal (default)  to margin high (act on faults), but the device has no response. Could you please help me to confirm if the below sequences are correct?

1. Slave address = 0x68

2. addr = 0x0 (PAGE), wdata = 0x0 (select page #0)

3. Slave address = 0x68

4. addr = 0x1 (OPERATION), wdata = 0x98 (on margin high - act on fault)

I'm using the same protocol for TMP421 device, and it works well so far. That's why wondering if my sequence of writing to UCD device has any issue.

Thanks,

Elaine

  • Hi Elaine,

    UCD9248 uses PMBus protocol. It may be different than TMP421. The documentation can be found here:
    www.ti.com/.../sluu337.pdf

    You can use Fusion GUI to assist your debugging. There is a SMBus/SAA Tool under Tools menu. You can send commands manually to the device to verify the script. If a script doesn't work, you can use Fusion GUI to do the same task, and use the PMBus Logging tool under Tools menu to see the transaction sent by Fusion GUI.

    Regards,
    Zhiyuan
  • Hi Zhiyuan,

    Thanks for your reply.

    Apologize if I ask very simple question, could you share with me the difference between PMBus and the TMP (I2C?)?

    I've tried to use the SMBus/SAA tool, and write data through I2C. 

    I do receive ACK, but failed to observe any change on the UCD device (target is to change the UCD device with addr of 0x68 to operate on margin high).

    Attached the screenshot of the tool.

  • PMBus is a higher layer protocol based on I2C and  SMBus protocols. UCD9248 supports PMBus 1.1. 

    pmbus.org/.../OlderSpecifications

    I see the ALERT# line is asserted when you send the operation command. Is there any OV/UV fault/warning generated? You can see it in Fusion GUI -> Monitor and Status tab.

    You can use Fusion GUI interface to control margin high/low. If Fusion GUI can do it but your script cannot, you can check the PMBus log to find out the exact transaction sent by Fusion GUI. If Fusion GUI cannot do it, there must be other reasons on the board or in the configuration.

  • Hi Zhiyuan,

    I am able to get the SMBus/SAA tool working and controlling the voltage margin through I2C write.

    I did check the PMBus log, and it looks to me the transaction same as what I've described to you in the earlier post.

    I am looking into opportunity to automate my system including controlling the UCD device, that's why I'm trying to use own script instead of Fusion GUI, which is manual work.

    Since my script (I2C) is usable for TMP, do you have any idea that what's the difference between UCD device and TMP device?

    Then I might be able to make the modification to my script based on that?

    Thanks a million!

    Regards,

    elaine

  • I'm not familiar with TMP devices. So I cannot comment. Sorry. Please refer to the PMBus command reference I provided earlier.

    Fusion GUI can export I2C script for configuration. Go to File -> Export. It will help you generate script.
  • Thanks Zhiyuan.

    I will try to export the script.