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.

CCS/UCD3138: Why can I operate UCD3138PFC64EVM-026 with original code of single phase mode in UCD3138CC64EVM-030 successfully, but Interleaved mode not?

Part Number: UCD3138
Other Parts Discussed in Thread: , TEST2

Tool/software: Code Composer Studio


Test UCD3138PFC64EVM-026 with original code in UCD3138CC64EVM-030,it can be shown on the bottom of Device GUI Firmware Download page,as below:

(I've exported the original code from UCD3138CC64EVM-030 as " single phase.xo ",also I scan  device in ROM mode first,and it can be found as " Found ROM v2 IC v3 ")

I downloaded PFC Firmware from and  followed SLUA677 trying to change the firmware into Interleaved mode:


And when I download the altered firmware , it tends to stay in ROM mode:

What I have modified is just the content shown in Pic.3 of system_defines.h. I've successfully download Interleaved firmware once before. So do I change the firmware incorrectly or any other actions of incorrectly operations? Please give me some advice.

Thank you. Your prompt reply will be highly appreciated. 

  • Also failed in changing the firmware into Single Phase mode ,which was downloaded from TI website.
  • you need go to project property, select: CCS BUild ->ARM Compiler->Advanced Options->Predefined Symbols, then change PFC_TYPE to 0.
  • Hi  Bosheng,

    I follow your advice and change the settings in Predefines symbols,"PFC_TYPE=0"

    But the UCD still stays in ROM mode.

    I use the function in GUI called"compare flash...",one file is exported from the oringinal UCD3138CC64EVM-030,the other is the simply-changed firmware downloaded from TI website.

    It shows huge differences.

    I doubt if it needs to do anyother changes to  the downloaded firmware.Could you give me some advice?

  • have you recompiled the code after you changed the project property setting?

  • Hi Bosheng,thanks for your reply.

    I have recompiles the code after changing the settings.

    Problem still comes that the UCD stay in ROM mode.

    I think it is not the problem of the GUI.So I open the compiled "PWR026_PFC_UCD3138.x0"(Single phase mode),and compare it to the right code "Single phase.x0",I found differences.

    The Single Phase.x0 has DeviceID and actual checksum,which is also be  found in the GUI "compare flash"function.

    The changed firemare's .x0 just doesn't have 7ffc-7fff actual checksum ,and the blank space isn't filled with ffff.

    So I think maybe my way of using CCS is wrong,or I ignore to add or change some part of the firmware.

  • Now I can write checksum by (in GUI) 1. scan in ROM; 2.Checksums -> Recre... (calculate and write the checksum); 3.FLASH -> Export Fl... (export the .x0 from the IC).
    Open the changed .x0, I can see that the checksum is already written.
    However,the UCD stay in ROM mode after downloading the .x0 even it has correct checksum and DeviceID.

    Now the only differences between Single Phase.x0 and the changed .x0 are the values in Program Flash of Pic.3 above from 0x10003 to 0x17FFF.

    Single Phase.x0 test2.x0
    Has Program Flash? Yes Yes
    Actual Program Flash Checksum 0x00519177 0x005187F3
    Calculated Program Flash Checksum 0x00519177 0x005187F3
    Has Data Flash? Yes Yes
    Data Flash Checksum 0x0007AC88 0x0007AC88

    Program Flash Differences

    .(too many diffreences)
    Address 0x14A110xFF0x70
    Address 0x14A120xFE0x46
    Address 0x14A130x140xC0
    Address 0x14A160xFF0xFE
    Address 0x14A170xD00x14
    Address 0x14A1B0xFF0xD0
    Address 0x17FFE0x910x87
    Address 0x17FFF0x770xF3

    Data Flash Differences
    No differences

    So the key to this problem is in the firmware alteration or the settings of CCS?
  • the original code in UCD3138PFC64EVM-026 was released a few years ago, we have some updates after that. When you download the PFC source code from TI website, it is the latest one, that's why if you compare the .x0 files, they show some difference, but the PFC performance is the same.

    Which version of CCS do you have?, you need to use CCS6.1

    you need select "write program checksum" when you download the code. Also, you need plug the -030 control card into the -026 EVM board, otherwise the floating pin may trigger the "rom back door" function inside the code to send UCD back to ROM mode.


  • Great!It works!
    Thanks for your reply,Bosheng. It seems that the 030 card must be pluged to 026 EVM while burning the firmware. I will checkout the pins about "rom back door" function.