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: LED_ex_Blinky hangs on InitSysCtrl(); line

Part Number: TMS320F28388D
Other Parts Discussed in Thread: SYSCONFIG

I am bringing up a new board with a TMS320F28388D microcontroller part and when I load the example program to blink the LED (LED_ex1_blinky), the code hangs during the execution of InitSysCtrl().  Specificially, when it reaches the loop that checks the clock frequency:

if (!VerifyXTAL(25)) {
      //
      // The actual XTAL frequency does not match OSC_FREQ!!
      // Please check the XTAL frequency used.
      //
      // By default, the InitSysCtrl function assumes 25MHz XTAL.
      // If a 20MHz crystal is used, please add a predefined symbol
      // "USE_20MHZ_XTAL" in your CCS project.
      // If a different XTAL is used, please update the PLL configuration
      // below accordingly.
      //
      // Note that the latest F2838x controlCARDs (Rev.B and later) have been
      // updated to use 25MHz XTAL by default. If you have an older 20MHz XTAL
      // controlCARD (E1, E2, or Rev.A), refer to the controlCARD
      // documentation on steps to reconfigure the controlCARD from 20MHz to
      // 25MHz.
      //
      __asm(" ESTOP0");
      while (1)
        ;
    }
 
I checked the clock (ASEGT-25.000MHz-GC ) and it is reading 25.0MHz +- 0.2MHz with a scope.  The clock looks like a clean sine wave and has a minimum of -0.6V to +3.7V.  Do you have any suggestions? 
 
Thank you in advance for any assistance.
  • Hello,

    I will take a look and reply in timely manner.

  • Hello,

    1. If you plan to use external crystal did you configure your device.h or clocktree to XTAL option?

    2. Is your oscillator configured as a single-ended clock source to X1 or as a crystal across X1/X2

       If single-ended: the signal must swing 0V to 3.3V (LVCMOS-compatible). Your -0.6V swing suggests improper AC coupling or missing DC bias.

       If crystal mode: 25MHz exceeds the 20MHz X1/X2 loop limit — you'd need to switch to a 20MHz crystal or redesign for single-ended input

       Ensure the software calls InitSysPLL() with XTAL_OSC_SE (single-ended mode) if using a 25MHz oscillator

    3. Is your VDD 1.2V stable. Do you have enough big decoupling capacitance on that rail as per datasheet?

  • I can't seem to find out how to set the clock tree on this project.  Unfortunately, I am learning the C2000 controller, CCS, and JTAG simultaneously and cannot find where this is changed.  As a work around, I commented out InitSysCtrl() and the chip works but at the incorrect frequency.  I know this because delay_us(500000) lasts for much longer than 0.5 sec.  I haven't measurement the delay but they are more like 5 sec.  How do you access the clock tree so I can set up the single-ended clock (25MHz) source and the PLL? 

  • Hello,

    I will get back to you once I am back in office middle of next week. Thank you for your understanding.

  • Hello,

    Clock tree is accessible through Sysconfig as part of GUI.

    Other option to change clocking is in device.h file from driverlib

  • Unfortunately, when I open an empty.sysconfig file, my GUI does not have the clock tree button (see below):

    All I get is the peripherals button.  

    However, when I do the empty.sysconfig example in the tutorial, I get all three buttons.

  • Hello Kent,

    Please import driverlib project example instead of bitfield. This should resolve your issue.