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.

Problem with configuring clock of 28377 MCU

I need some help with TI-RTOS, more specifically with setting up the system frequency of a 28377 MCU.
My starting point is the IPC code example for CCS6.1.0 and TI-RTOS 2.10.x.
The CPU1/2 projects compile and run great out of the box with TI-RTOS 2.10.1.38, XDC 3.30.6.67 and codegen tools 6.4.2.
As supplied, the code is configured to run at 102.5 MHz from the internal 10 MHz oscillator.
My ultimate goal is to run the CPU at 200 MHz for an external 20 MHz clock, but I already got stuck with the most simple baby-step:
When I change one line in the boot configuration to reduce the clock frequency from 102.5 MHz to 100 MHz, the MCU crashes:

Boot.SPLLFMULT = Boot.Fract_0;
Is there a known issue (which might explain why this project is configured for the odd 102.5 MHz)?
Has the bug identified in this thread been fixed in TI-RTOS 2.10.1.38?
Do you have a working example to run at 200 MHz from an external 20 MHz clock? 
Thanks!
  • Hi,

    The bug identified in this post (e2e.ti.com/.../1259579) is present in the kernel version shipped in TI-RTOS 2.10.1.38. It is likely that your app is crashing at higher frequencies because the wait states are incorrectly programmed due to the bug.

    You can try downloading the latest SYS/BIOS kernel which has the fix and update your project to use it.

    Step1: Download SYS/BIOS 6.41.02 release.

    Step2: Once the product is downloaded and installed, click on your project and open project properties.

    Step3: In "General" window's "RTSC" view, click on "Add" and point to the installed 6.41.02 release.

    Step4: Open "Order" view (next to "Products and Repositories" view) in the "General"->"RTSC" page and move the recently added entry to the top. Make sure it is above the currently installed SYS/BIOS product (that came with TI-RTOS). Once this is done, the newly installed SYS/BIOS kernel will be used instead of the one that came with TI-RTOS.

    Once the above steps are complete, try configuring the Boot module again (to run the core at 200MHz) and rebuild your example project.

    Hope this helps.

    Best,

    Ashish

  • Ashish,

    Thanks for your response. But in my case the MCU crashes when I lower the frequency (from 102.5 MHz to 100 MHz).

    Thanks,
    Beat
  • Hi Beat,

    At a frequency of 100MHz, the number of wait states should be 1 but the old boot module (with the bug) incorrectly programs the waitstates as 0. So, please move to the new SYS/BIOS product following the steps I mentioned in my previous post and rebuild your app. I expect the out-of-the box example to work correctly after that.

    Best,
    Ashish
  • Ashish,


    Thank you for your response.

    I followed your instructions and am now able to run the MCU at 200 MHz from the external 20 MHz crystal using these settings:

    BIOS.cpuFreq.lo = 200000000;

    var Boot = xdc.useModule('ti.catalog.c2800.initF2837x.Boot');
    Boot.bootCPU2 = false;
    Boot.configureClocks = true;
    Boot.OSCCLK = 20;
    Boot.SPLLIMULT = 20;
    Boot.SPLLFMULT = Boot.Fract_0;
    Boot.SYSCLKDIVSEL = 1;

    var Reset = xdc.useModule('xdc.runtime.Reset');
    Reset.fxns[Reset.fxns.length++] = '&ResetHook';

    With the following reset hook:

    Void ResetHook(Void)
    {
        EALLOW;
        ClkCfgRegs.CLKSRCCTL1.bit.XTALOFF=0;        // Turn on XTALOSC
        ClkCfgRegs.CLKSRCCTL1.bit.OSCCLKSRCSEL = 1; // Clk Src = XTAL
        EDIS;
    }

    Regards,

    Beat

     

  • Glad to know you got it working.