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.

UCD3138: UCD3138 project template for PMBUS

Part Number: UCD3138

Hi team,

One of my colleagues was asking if there were any fully assembled project templates for the UCD3138 that can compile over the PMBUS. Currently he is using an example project and modifying it for each new project.

Do we have anything we can send him to make this easier?

Thanks,

Nate

  • If you want a simple code that just does PMBus, which is what I think you are saying, you can use the training codes, which are here:

    The first lab has almost nothing else in it but PMBus. 

  • This went to email, and the answer above closed it.
  • Hi, I am also looking for PMBus code, but for UCD3138A. Is there any simple training lab code for UCD3138A?  

         

  • I think that the training codes may actually be designed so that you can change to different processors.

    Even if they are not, the UCD3138A is pretty much compatible with the UCD3138.  There are some specific details, like minimum dead times, that are described in the UCD3138A Migration Guide, but they don't affect basic PMBus function.  So you should be able to use the UCD3138 training labs on the UCD3138A

  • Thank you for the quick reply!

    I checked that the Lab_1 hello world is only designed for UCD3138, UCD3138A64, UCD3138064 and UCD3138128. I tried to build lab_1 in CCSv6.2.0 and set UCD3138 as the active target. Then, I downloaded the .x0 file to my UCD3138A evaluation board (UCD3138ACCEVM149). It indicated that "Download completed without error" first, then it said "No PMBus devices responded to a DEVICE_ID request" as shown in the screenshot below:

    Firstly, I just ignored this issue, and tried to use the memory debugger function. But I found that all the content in the string is 0.

    Why there is no PMBus devices responded to a DEVICE_ID request? Is it because I use the UCD3138 code in UCD3138A evaluation board?

    Also, I downloaded the LLC example code which is designed for UCD3138A. And I found that in the PMBus code, there are many differences compared with Lab_1, and also contains many LLC system information, as in the system define.h, variables.h, etc.

    It seems like the PMBus code is combined with system information. Is there any standard PMBus code so that I can create a new simple project and imported the PMBus function easily?

    Thank you in advance!

  • You're probably making the standard mistake. Here's some code from the training labs with comments:

    have you connected the Fault 3 pin to ground? There's a backdoor checksum clear and reset that will occur if Fault 3 floats high:

    //---------------------------------------------------------------------------
    // IMPORTANT: READ BELOW, OR CODE MAY NOT EXECUTE CORRECTLY
    //---------------------------------------------------------------------------
    // tie pin FAULT3 to ground for normal operation
    // tie pin FAULT3 to 3.3V to clear checksum
    if(GioRegs.FAULTIN.bit.FLT3_IN == 1)
    {
    clear_integrity_word();
    }

    I miss this sometimes myself.


    Now for your next question, you need to study the LLC code to look at the PMBus command implementation, but it will vary in your application.

    You can start with the training labs, and add things, or you can rip things out from LLC as well. I actually made the original training lab code by the second method.
  • Thank you again for the quick reply! I am stuck for a while. Really appreciate your useful information!

    I tied pin FAULT3 to ground this time. After download the .x0 file,  there is still "No PMBus response" issue and ROM can not be detected anymore as shown in the following screenshot:

    Also I can not enter the memory debugger mode because there is no ROM connected:

    I clicked the "DEVICE_ID" and detailed device information popped up. Then, I click "Command Program to jump to ROM", but failed, and error information is NACK as shown below. What's the reason for these issues? Thank you in advance!

  • For the UCD3138 family of devices please use the Fusion Digital Power Studio GUI.  The Fusion Digital Power Designer is not for UCD3138.  

    www.ti.com/.../fusion-digital-power-studio

  • OK, I will try the power studio GUI. But I saw from the training video that I need to use the fusion digital power designer for UCD3138. Following is the link and screenshot. Does that outdated?

    https://training.ti.com/ucd3138-digital-power-tools-installing-ucd3138-device-gui?cu=841391

  • Yes that is correct.  It is outdated.  

  • Thank you so much!
  • Well at least it looks like you haven't programmed the checksum.  That's good.  Don't program the checksum until you are sure it's all working.  I suspect that the problem is that the compiler has changed on CCS 6 from what the original code was written with.  Sometimes this makes the file build settings get changed.  You need to go to CCS 6.x, get the files displayed, and right click on zero out integrity word.  

    Click on show build settings.  Then you want ARM compiler->Processor Options.  In Designate Code State, select 32 bits.

    I'm mystified by why it doesn't give you results on the first Device ID (the one from the download, but it does on the second one.  Maybe the GUI you're using asks too fast.

  • Thank you so much for your reply!

    Amiel told me yesterday that I need to use Fusion digital power studio GUI instead of Fusion digital power designer because digital power designer is no longer for UCD3138 family. I tried and finally it worked well. So I think maybe the video tutorial needs to be updated so that the beginners of UCD3138 will not get confused of these two software.

  • Hello Weijing, I have notified the video makers and they are looking at making this edit as well as some others.