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: Custimized BOOT GUI

Part Number: UCD3138

Hi Amiel,

Hope you're doing good, and happy thanks giving day!

Currently I'm using TI c2000 controller(F28002x) device to control PFC in primary side, and UCD3138 in secondary side to control LLC.

Now I'd like to update primary side MCU's firmware via PMBUS interface, this requires to send data to UCD3138 by Pmbus firstly, then UCD3138 translate it into UART and send it to primary side MCU. But currently UCD3xxx Device GUI only support to parse UCD3xxx devices' hex/x0 file, can you help to add customized boot options on GUI that users can configure what range of memory to be parsed and download?

In addition, if using fusion API to realize this feature, which examples can be used as start point to realize this feature?

And the fusion API user guide released by TI is written in about 10 years ago, is there a new version that can be shared with TI users? 

Thanks,

Jack

  • Hello Jack,

    I looked at the examples and there was an example called "DifferentInterfaces.cs" I think you can use this.  Really the lines of code that I'm thinking about for your case are below. I think even the SAA adapter API would be sufficient.  At this level you will have full control over the data, but you will need to prepare the blocks, so you would need to parse the firmware file to get the data and then you can use these low level APIs to send the data.  Pretty much all the functions you have in the SAA adapter, which should be all that you need to download the firmware you are talking about.  For parsing you can look up the many examples online on how to read a file and then line by line you can write the data using the saa apis below.  I think this should be a good direction to take.

    // This is the low-level interface into the USB adapter (aka SAA)
    var saa = SMBusAdapter.Adapters[0];

    // Perform lower-level SMBus calls with a 3rd device that is not a PMBus device but does
    // support SMBus
    //
    // Arguments are address, comnmand code, block
    saa.Write_Block(32, 0x9C, "0x44414C4C4153");

    // Same thing as above, but passing the block as an array of bytes
    byte[] block = new byte[] { 0x44, 0x41, 0x4C, 0x41, 0x53 };
    saa.Write_Block(32, 0x9C, block);

    // Now, do the same thing but through even lower level I2C interface;
    // NOTE: do not add PEC byte; the SAA adapter adds this if PEC mode
    // is enabled at the SAA level
    saa.I2C_Write_Generic("0xFC9C0644414C4C4153"); // could also pass a byte array

  • Amiel,

    Thanks for supporting here, I will try your proposal.