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.

TMS320F28027: TMS320F28027 Oscillator behavior at "Reset from CCS" and "POR Reset"

Part Number: TMS320F28027
Other Parts Discussed in Thread: C2000WARE

Hi Team,

Need your expertise on our customer's query below. Posting on their behalf:

I am trying to understand what is going on inside TMS320F28027 after Reset. Particularly I am interested what happens to Oscillators and PLL. In SPRUFN6A on page 15 is written: "a boot that is initialized from a reset from Code Composer Studio may be at a different speed than booting by pulling the external reset line (nXRS) low.

The reset value of PLLSTS[DIVSEL] is 0. This configures the device for SYSCLKOUT = CLKIN/4 . The boot ROM will change this to SYSCLKOUT = CLKIN/1 to improve performance of the loaders. " For my products, I only plan to work from Flash memory. Could you explain, why "Reset from CCS" is different than "Reset from POR or nXRS pin"?

What is the role of f2802x_SysCtrl.c functions, when we talk about Oscillators and PLL? Do I always need f2802x_SysCtrl.c functions, when
my chip works from Flash? Boot ROM does something wrong, that's why f2802x_SysCtrl.c functions called?
Device_cal() is not always called in Boot ROM?
Device_cal() is only very little changes/trims OSC frequency,or changes it significantly?
Please clarify a bit what is going on after Reset.

Thanks in advance!


Kind Regards,

Jejomar

  • Jejomar,

    Could you explain, why "Reset from CCS" is different than "Reset from POR or nXRS pin"?

    This is how the chip is designed. CCS reset does not affect certain registers/bits. 

    What is the role of f2802x_SysCtrl.c functions, when we talk about Oscillators and PLL?

    These functions set up the operating environment of the device. They take care of the watchdog, enable peripheral clocks, configure PLL etc

    Do I always need f2802x_SysCtrl.c functions, when my chip works from Flash?

    You don’t have to use that file, but you need to take care of the tasks that file does. All the initialization functions an application would ever need are already there in that file, so you are better off using it than writing them on your own. 

    Boot ROM does something wrong, that's why f2802x_SysCtrl.c functions called?

    No, boot-ROM does nothing "wrong". 

    Device_cal() is not always called in Boot ROM?

    It is always called. 

    Device_cal() is only very little changes/trims OSC frequency,or changes it significantly?

    This is hard to say. The trimming magnitude changes from device-to-device. 

    Please clarify a bit what is going on after Reset.

    If you are new to C2000 or CCS, please review the workshop at https://training.ti.com/c2000-f2802x-microcontroller-workshop?context=1137791-1137785. TI has invested considerable resources to develop these self-paced workshops and most questions can be answered by reviewing the workshop material. The workshops are an excellent introduction to the basics of C2000 MCUs and the process of writing and running your first example. Good introductory videos about CCS are available at https://www.youtube.com/user/CodeComposerStudio

    In SPRUFN6A on page 15 is written:

    SPRUFN6A is obsolete. Correct document for this device is www.ti.com/lit/sprui09

  • Hi Hareesh,

    Many thanks for looking into this. We've shared the details of your response to the customer and they would like to ask further questions for clarity:

    1) In all those Multiday/One Day Workshops, JTAG Emulator places my app to RAM. Why they say " use Restart command directly after Reset CPU command"?
    2) OSC and PLL are set up at the entrance to Boot ROM? OSC and PLL are also set up in each boot loader inside Boot ROM? OSC and PLL are also set up in _c_int00 function? Can I see asm code in C2000Ware for Boot ROM and Runtime Support Library _c_int00 function and particulary see where OSC and PLL being setup?
    3) when I do the very first Lab ,where Peripheral Header Files are NOT used at all.The Lab ,where just two for() loops are written and one observes i,k integer vars in the Dubugger.The user learns basics of .cmd file there. I do Reset CPU+Restart and then single Step in the Debugger. Where,in that case, OSC and PLL are set up?


    Kind Regards,

    Jejomar

  • 1) In all those Multiday/One Day Workshops, JTAG Emulator places my app to RAM. Why they say " use Restart command directly after Reset CPU command"?

    Please refer to the Help menu in CCS. Also watch the CCS videos on YouTube.

     

    2) OSC and PLL are set up at the entrance to Boot ROM? OSC and PLL are also set up in each boot loader inside Boot ROM? OSC and PLL are also set up in _c_int00 function? Can I see asm code in C2000Ware for Boot ROM and Runtime Support Library _c_int00 function and particulary see where OSC and PLL being setup?

    Boot-ROM does not configure OSC/PLL. Boot-ROM source is available at C:\ti\c2000\C2000Ware_3_03_00_00\libraries\boot_rom\f2802x\v2_0\rom_sources. OSC & PLL are only setup through f2802x_SysCtrl.c functions.

     

    3) when I do the very first Lab ,where Peripheral Header Files are NOT used at all.The Lab ,where just two for() loops are written and one observes i,k integer vars in the Dubugger.The user learns basics of .cmd file there. I do Reset CPU+Restart and then single Step in the Debugger. Where,in that case, OSC and PLL are set up?

    It could be that OSC and PLL are not setup for that example. Subsequent examples would set them up for sure. all C2000ware examples do.

  • Hi Hareesh,

    Again, many thanks for your response. One final clarification from the customer, can we find Runtime Support Library _c_int00 function source code in C2000Ware?


    Kind Regards,

    Jejomar

  • Jejomar,

    The source for _c_int00 is not in C2000Ware, but rather can be found in the compiler tools folder, file boot.asm.  For example:

    C:\ti\ccs1010\ccs\tools\compiler\ti-cgt-c2000_20.2.2.LTS\lib\src\boot.asm

    Regards,

    David