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/UCD3138A64OEVM-662: Training projects and test firmware for UCD3138A64OEVM-662

Part Number: UCD3138A64OEVM-662
Other Parts Discussed in Thread: UCD3138, UCD3138064

Tool/software: Code Composer Studio

Hi, I recently purchased this eval board UCD3138A64OEVM-662. Starting with the user guide, I downloaded and installed the Fusion softwares and CCS 9.0.1. The guide  prompts firmware download and training project in CCS V5. Where can I obtain the firmware and training project for this Eval  kit? Thank you 

Bobby.

  • an expert will help you soon, due to the holiday season, please allow a delayed response

  • I'd recommend you use CCS 6.2.  You should be able to download it from here:

    https://software-dl.ti.com/ccs/esd/documents/ccs_downloads.html

    I assume that you are referring to the training series here:

    https://training.ti.com/ucd3138-digital-power-training-series

    The link to the programs is provided on the page above.

    here it is:

    http://www.ti.com/tool/UCD-TRAINING-LABS

  • Ian, thanks for the respond. Does CCS 6.2 support Win 10 64 bits? it doesn't look like it does. Will I be able to use CCS 9.0.1?

    Bobby.

  • I just checked, and I'm using 6.2.0.48 on Windows 10, 64 bit with no problems.  I'd suggest using exactly that version.  There are some tricky things that we have to do to use all the features of the ARM core and the UCD that are somewhat dependent on the details of the compiler.  Mainly there are some spots where we stick some assembly into the middle of the C code, mostly in the software interrupt.   Those tend to break down when you move away from the version we're working with.  

  • Hi Ian,

    I am able to download the program to the flash. But, when I went back and clicked on DEVICE ID, it said no device found. Can you what did I do wrong?

  • First of all, I would suggest NOT writing the checksum, to avoid locking the device up.

    There is also some other code to avoid locking the device up.  It's in main:

    // 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();
    }

    Hopefully that's whats happening.  If you tie the Fault 3 pin to ground, you should be able to run the code.  

    You should be able to search for device in ROM mode and find it.  

  • I thought the option DO NOT write program checksum (stay in ROM) is checked would prevent the locking up the device. I just compiled the training lab1 as is. The code you suggested is included in the main.c. Do I need to strap J14 pin 2 &3?

  • Here is the main.c code:

    //###########################################################################
    //
    // FILE: main.c
    //
    // TITLE: main
    //
    // NOTES:
    // 1)

    //###########################################################################
    //
    // Ver | dd mmm yyyy | Who | Description of changes
    // ======|=============|======|==============================================
    // 1.00 | 05 May 2015 | CH |
    //
    // Texas Instruments, Inc
    // Copyright Texas Instruments 2008. All rights reserved.
    //###########################################################################
    #define MAIN 1

    #include "system_defines.h"
    #include "Cyclone_Device.h"
    #include "pmbus_commands.h"
    #include "pmbus_common.h"
    #include "pmbus_topology.h"
    #include "variables.h"
    #include "functions.h"
    #include "software_interrupts.h"
    #include "cyclone_defines.h"
    #include "stdio.h"

    void main()
    {
    // enable JTAG
    MiscAnalogRegs.IOMUX.all = 0;

    //---------------------------------------------------------------------------
    // 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();
    }

    #if (UCD3138|UCD3138064)
    MiscAnalogRegs.CLKTRIM.bit.HFO_LN_FILTER_EN = 0;
    MiscAnalogRegs.CSTRIM.bit.RESISTOR_TRIM =23; //28;
    #endif

    init_pmbus(0x58); // initialize PMBus handler
    strcpy(A_string,"Hello World.");

    for(;;)
    {
    pmbus_handler();
    }
    }


    //#pragma INTERRUPT(c_int00,RESET)

    void c_int00(void)
    {
    main();
    }

  • You're right, you are doing the right thing with the checksum in your screen shot above.  

    Yes, it looks like you could put a strap between pins 2 and 3 of J14.  I didn't even know those jumpers were there.  I have always just put a jumper between J5 pins 5 and 6.  Whichever you like apparently.  

  • I will try it in a little bit. Is there a training offer somewhere that I can attend? thanks