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.

TMS320F28388D: F2807 to F28388D Migration Issue

Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE,

Hello,

I'm migrating my application from F2807 Piccolo device to F28388D Delfino device and I have many debugging problems when I call "InitSysCtrl()" initialize function.

For example when there's "F28x_usDelay(2000)" function calling, I have this error message: 

Break at address "0x3fe96f" with no debug information available, or outside of program code.

If I commented this code line, issue doesn't go away, but it's transmitted to other code lines of "InitSysCtrl" software module. If I eliminated "InitSysCtrl()" initialize function, issue goes away, but this isn't possible.

Thank you

  • Hi,

    Have you tried C2000Ware example to see if that works fine ? What hardware you are using ?

    Regards,

    Vivek Singh

  • I use TMS320C2000 microcontrollers development tools (dock and soc) with code composer 10.2.0 and C2000ware_3_04_00_00. All F2807 files in the project have been replaced with F28288 relative files. The project is compiled and linked correctly.

    I have this code. Indicted "InitSysCtrl()" function is content in "F2838x_sysctrl.c" file.

    static void MAIN_vInit(void)
    {
    InitSysCtrl();

    InitGpio();

    DINT;

    InitPieCtrl();

    IER = 0x0000;
    IFR = 0x0000;

    InitPieVectTable();

    InitCpuTimers();

    }

  • Hi,

    What hardware you are using and what is the clock source ? Did you try any C2000Ware example from F2838x folder to see if that works ok ?

    Regards,

    Vivek Singh 

  • Hi Vivek,

     

    I am working with the TMS320F28388D controlCARD (https://www.ti.com/lit/ug/spruil8b/spruil8b.pdf?ts=1632147238148&ref_url=https%253A%252F%252Fwww.google.com%252F).

     

    I uploaded the code on the flash memory of CPU1 by means of  the on-board USB Debug Probe TI XDS100v2.

     

    Software application crashes within the TI library function “InitSysCtrl()”.

     

    Specifically, by means of the step by step debugger I verified that the code stalls on the execution of “PollX1Counter()” because  the “ClkCfgRegs.X1CNT.all” register counter is always to 0 (it never saturates).

     

    Consequently, the application code remains locked forever within the following while-loop:

     

    PollX1Counter(void)

    {

        Uint16 loopCount = 0;

     

        //

        // Delay for 1 ms while the XTAL powers up

        //

        // 2000 loops, 5 cycles per loop + 9 cycles overhead = 10009 cycles

        //

        F28x_usDelay(2000);

     

        //

        // Clear and saturate X1CNT 4 times to guarantee operation

        //

        do

        {

           //

            // Keep clearing the counter until it is no longer saturated

            //

            while(ClkCfgRegs.X1CNT.all > 0x1FF)

            {

                ClkCfgRegs.X1CNT.bit.CLR = 1;

                ClkCfgRegs.X1CNT.bit.CLR = 0;

            }

     

            //

            // Wait for the X1 clock to saturate

            //

            while(ClkCfgRegs.X1CNT.all != 0x3FFU)

            {

                ;

            }

     

            //

            // Increment the counter

            //

            loopCount++;

        }while(loopCount < 4);

    }

     

    Although I am using the TI library function InitSysCtrl(), it seems that the 25 MHz external oscillator XTAL is always turned off. Why does it happen?

     

    In order to verify if my electronic board is broken, I uploaded the code on a new TMS320F28388D control card but the result is the same.

     

    As you suggested, I also executed the C2000 code example “device_support\f2838x\examples\cpu1\timer\timer_ex1_cputimers.c” without success. The problem still remains…

     

    Waiting for a your feedback.

    Best regards,

    MiK

  • That is very strange. That is just a simple counter to count the free running clock. We have two version of controlCARD. Old version had 20MHz as default clock where is new one has 25MHz as default clock. Not sure which version you have but still there should be a clock hence it should not be stuck in that loop. There is a test point (TP6) to check that clock. Can you probe that to see if clock is running ? If not then I have to refer this to our hardware expert. 

    Regards,

    Vivek Singh

  • Vivek,

    yesterday I have already verified in the test point, with my oscilloscope, that the clock is present and its frequency is exactly 25 MhZ.

    I think your hardware experts need to be alerted.

    We need to complete this migration from Piccolo to Delfino to make available our battery chargers and auxiliary services control and management software applications.

    Ciao 

  • If clock is running then I don't see any reason why it should not work. I am assuming you are connected to CCS. Can you view this counter register in CCS Register view in continuous refresh mode and see if you see the value changing at all ? I am looping our SW team as well as HW team also provide their comment on this.

    Regards,

    Vivek Singh

  • On my board there is resistor R43 and the measurement was performed on pin c28x.

    On this pin there is a 25 MHz clock signal.

    The TP6 pin is on the left, in correspondence with the missing resistor (see figure).

    We can make a measurement there too.

    But what does the SW / HW team suggest we do?

  • Did you try to look at the counter value in CCS register view as I requested in last post?