• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Digital Signal Processors (DSP) » C5000 Ultra Low Power DSP » C5000 Ultra Low Power DSP Forum » 120MHz & 150MHz Clock Settings for C5515 ezdsp?
Share
C5000 Ultra Low Power DSP
  • Forum
  • Announcements
Options
  • Subscribe via RSS
Top 6 Wiki Links
  • C5000 Main Wiki
  • C5000 Software
  • C5515 Boot-Image Programmer
  • CSL (including CSL 3.00)
  • C5000 Connected Audio Framework
  • Porting C5000 Teaching ROM to C5535 eZdsp
  • 120MHz & 150MHz Clock Settings for C5515 ezdsp?

    120MHz & 150MHz Clock Settings for C5515 ezdsp?

    This question is not answered
    MikeH
    Posted by MikeH
    on Apr 24 2012 12:38 PM
    Guru12685 points

    I am using the sample code below to set my PLL frequency. I have tried to add code for 120MHz operation but it does not seem to work. Can anyone offer suggestion on how to get from 100MHz (works OK) to 120MHz (clock runs at 100MHz).

    #define PLL_120M 1
    #define PLL_100M 0
    #define PLL_12M 0
    #define PLL_98M 0

    void InitSystem(void)
    {
    Uint16 i;
    // PLL set up from RTC
    // bypass PLL
    CONFIG_MSW = 0x0;

    #if (PLL_120M ==1)
    PLL_CNTL2 = 0x8000; //CGCR2
    PLL_CNTL4 = 0x0000; //CGCR4
    PLL_CNTL3 = 0x0806; //CGCR3
    PLL_CNTL1 = 0x8E4A; //CRCR1

    #elif (PLL_100M ==1)
    PLL_CNTL2 = 0x8000;
    PLL_CNTL4 = 0x0000;
    PLL_CNTL3 = 0x0806;
    PLL_CNTL1 = 0x8BE8;

    #elif (PLL_12M ==1)
    PLL_CNTL2 = 0x8000;
    PLL_CNTL4 = 0x0200;
    PLL_CNTL3 = 0x0806;
    PLL_CNTL1 = 0x82ED;
    #elif (PLL_98M ==1)
    // 98.304 MHz
    PLL_CNTL2 = 0x8000;
    PLL_CNTL4 = 0x0000;
    PLL_CNTL3 = 0x0806;
    PLL_CNTL1 = 0x82ED;

    #endif

    while ( (PLL_CNTL3 & 0x0008) == 0);
    // Switch to PLL clk
    CONFIG_MSW = 0x1;

    // clock gating
    // enable all clocks
    IDLE_PCGCR = 0;
    IDLE_PCGCR_MSW = 0xFF84;

    // reset peripherals
    PER_RSTCOUNT = 0x02;
    PER_RESET = 0x00fb;
    for (i=0; i< 200; i++);

    }

    I would also like to get 150MHz working. Any additional suggestions for 150MHz operation would be appreciated.

    Thx,

    MikeH

     

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Hyun Kim
      Posted by Hyun Kim
      on Apr 24 2012 13:20 PM
      Genius12695 points

      Hi

      For 120MHz:

      PLL_CNTL2 = 0x616E;
      PLL_CNTL4 = 0x0001;
      PLL_CNTL3 = 0x0806;
      PLL_CNTL1 = 0x8E48;

      For 150MHz, it must use external clock. This example uses 12MHz.

      PLL_CNTL2 = 0x613D;
      PLL_CNTL4 = 0x0001;
      PLL_CNTL3 = 0x0806;
      PLL_CNTL1 = 0x8F7B;

      Regards,

      Hyun

      ---------------------------------------------------------------------------------------------------------

      Please click the Verify Answer button on this post if it answers your question.

      Check out these great resources

      http://processors.wiki.ti.com/index.php/Category:C5000
      --------------------------------------------------------------------------------------------------------- 

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • MikeH
      Posted by MikeH
      on Apr 25 2012 07:04 AM
      Guru12685 points

      Hyun,

      I am a little confused by your values.

      1. If you set PLL_CNTL2 = 0x616E, you are setting 14-12 to 0x110, which are reserved bits according to page 30 of SPRUFX5D. Is this correct?

      2. As I mentioned, I am using the C5515 ezdsp, which uses the RTC clock (32768Hz) as its PLL input clock. Your values for 120MHz do not appear to the 32khz clock. Do they?

      3. Why do I need to use an external clock to achieve 120MHz? Why can't I multiply 32khz by 3662 to achieve 119,996,416 Hz (120MHz)?

      ====================================== update =================

      Never mind. I got it working.

      Thx,

      MikeH

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Santosh Waddi
      Posted by Santosh Waddi
      on Apr 25 2012 10:36 AM
      Prodigy50 points

      Mikeh,

           Can you please tell me how are you checking PLL frequency is 100 MHz or 120 MHz.

      Thanks

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • MikeH
      Posted by MikeH
      on Apr 25 2012 11:00 AM
      Guru12685 points

      Santosh,

      I use two methods.

      1. Since I am using the C5515 ezdsp, there is a test point that I can put a scope on to see the clock. The clock period for 100MHz is 10ns. The clock period for 120MHz is 8.3ns.

      2. I measure the execution time of an algorithm running on my board. I have measured its period to be ~1.3ms at 100MHz. When I change to 120MHz, its period drops to ~1.08ms.

      I hope this help.

      Thx,

      MikeH

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Santosh Waddi
      Posted by Santosh Waddi
      on Apr 26 2012 04:45 AM
      Prodigy50 points

      Mikeh,

            Thanks a lot.

            In your second method , how are you calculating execution time of the algorithm. Is there any option in Code composer studio to calculate execution time.

      Thanks.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • MikeH
      Posted by MikeH
      on Apr 26 2012 07:52 AM
      Guru12685 points

      Santosh,

      In the past I have used TI's DSP/BIOS in an attempt measure the duration of execution of code segments and algorithms. But it is quite complex and somewhat buggy leading to a lot of wasted time and frustration. Now I simply toggle extra GPIO lines and monitor them with a simple USB logic analyzer. Below is a screenshot of the USBEE logic analyzer. The bottom trace shows the GPIO lines being toggled to indicate when I enter and leave a certain section of code. It is a very accurate and simple way to make precise measurements.

       

      Thx,

      MikeH

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Santosh Waddi
      Posted by Santosh Waddi
      on Apr 26 2012 23:37 PM
      Prodigy50 points

      Thanks mikeh....

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Todd Anderson78572
      Posted by Todd Anderson78572
      on Jun 01 2012 07:38 AM
      Expert2750 points

      All:

      Where can I find definitions for configInfo.PLLCNTL1,  .PLLCNTL2, etc.?

      It does not appear that PLLCNTL1 has the same bit mapping as CGCR1 (section 1.4.4.1 of SPRUFP0c), especially MH?

      I have code that works,  but I would like to know why it works...

       

      Regards,

      Todd Anderson

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Diane Lim
      Posted by Diane Lim
      on Aug 30 2012 08:55 AM
      Prodigy250 points

      Hello,

      I try with no success to get 150MHz with an external 12MHz.

      I don't find why, and even if I used your configuration values, it doesn't work.

      When I power down the PLL, I get well the 12MHz, but when I power on the PLL, with any configuration, the SYSCLK_OUT peak is under 2V and the fequency is 179MHz.

      It seems to work not properly.

      Can I have some help on mly problem ?

      In your configuration values, why some bit are set otherwise they are reserved (in PLL_CNTL2 and PLL_CNTL1) ?

      Thanks.

      Diane

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Hyun Kim
      Posted by Hyun Kim
      on Aug 30 2012 12:42 PM
      Genius12695 points

      Hi,

      The CLOCK_OUT pin cannot provide full voltage range swing clock over 100MHz. 

      Regards,

      Hyun

      ---------------------------------------------------------------------------------------------------------

      Please click the Verify Answer button on this post if it answers your question.

      Check out these great resources

      http://processors.wiki.ti.com/index.php/Category:C5000
      --------------------------------------------------------------------------------------------------------- 

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Diane Lim
      Posted by Diane Lim
      on Aug 31 2012 02:25 AM
      Prodigy250 points

      Hi,

      Thanks for your reply.

      When I use your configuration for 120MHz or 150MHz. The frequency measured in CLOCK_OUT is the same and is almost 179MHz.

      Is it supposed to act this way ?

      Thanks and Regards,

      Diane

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Hyun Kim
      Posted by Hyun Kim
      on Sep 05 2012 09:56 AM
      Genius12695 points

      Hi,

      How about other frequency 100MHz? Just for checking for something right. Normally you should see almost correct frequency. Did you provide 1.4V at 150MHz on CVDD and PLL power supply?

      Regards,

      Hyun

      ---------------------------------------------------------------------------------------------------------

      Please click the Verify Answer button on this post if it answers your question.

      Check out these great resources

      http://processors.wiki.ti.com/index.php/Category:C5000
      --------------------------------------------------------------------------------------------------------- 

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Diane Lim
      Posted by Diane Lim
      on Sep 06 2012 03:10 AM
      Prodigy250 points

      Hi,

      For 100 MHz, I have the same problem: the SYSCLK_OUT peak is under 2V and the fequency is 179MHz.

      If I power down the PLL, I get the 12 MHz. So I think that my external oscillator12 Mhz works properly, but I don't understand why I don't success to use the PLL with the 12 MHz.

      Here on below the configuration I have used:

      For 100MHz,

      PLL_CNTL1 = 0x03E4;
      PLL_CNTL2 = 0x0074;
      PLL_CNTL3 = 0x0806;
      PLL_CNTL4 = 0x0000;

      For 120MHz,

      PLL_CNTL1 = 0x03E4;
      PLL_CNTL2 = 0x0060;
      PLL_CNTL3 = 0x0806;
      PLL_CNTL4 = 0x0000;

      And for 150MHz,

      PLL_CNTL1 = 0x03E4;
      PLL_CNTL2 = 0x004C;
      PLL_CNTL3 = 0x0806;
      PLL_CNTL4 = 0x0000;

      Even with your configuration, I get the same result.

      I provide 1.4V for CVDD and VDDA_PLL.

      With the 32.768KHz (when the CLK_SEL=0), I have no problem to get 100MHz or 120MHz, but it is limited to 120MHz and I whish to get 150MHz.

      Thanks for your help.

      Diane

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • MikeH
      Posted by MikeH
      on Sep 06 2012 07:25 AM
      Guru12685 points

      Diane,

      A couple of thoughts:

      1. I believe that only the C5505 can be operated up to 150MHz. Are you using a C5515 chip?

      2. If you are using the C5505 and want to operate at 150MHz, you must use the -15 variant. Take a look at this thread - http://e2e.ti.com/support/dsp/tms320c5000_power-efficient_dsps/f/110/t/182531.aspx

      3. Are you waiting for the PLL control register to stabilize after changing its value? My code (which came from TI demo code) includes the below code after changing the control registers.


      while ( (PLL_CNTL3 & 0x0008) == 0);

      I hope this helps.

      Thx,

      MikeH

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Diane Lim
      Posted by Diane Lim
      on Sep 06 2012 08:22 AM
      Prodigy250 points

      Hello MikeH,

      Thanks a lot. You bring me some response.

      To answer you:

      1. It's ok, I use the C5505.

      2. I get the -12 variant sample to test the C5505 and I power it at 1.4V. I didn't know that it could depend of C5505 partnumber. Where can I fin information about different partnumbers ?

      3. I use the CSl library and it seems that the program waits for the stabilization (within the PLL_getTestLockMonStatus() function)

      Diane

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    12
    TI E2E™ Community
    • Support Forums
    • Blogs
    • Videos
    • Groups
    • Site Support & Feedback
    • Settings
    TI E2E™ Community Groups
    • TI University Program
    • Make the Switch
    • Microcontroller Projects
    • Motor Drive & Control
    Other Communities
    • Deyisupport
    • Designsomething.org
    • beagleboard.org
    • TI on Element 14
    • TI on TechXchangeSM
    Other Technical & Support Resources
    • WEBENCH® Design Center
    • Product Information Centers
    • Technical Documents
    • TI Design Network
    • TI Technical Articles
    • TI Training

    All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

    Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

    Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
    TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

    TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
    embedded processors, along with software, tools and the industry’s largest sales/support staff.

    © Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
    Trademarks | Privacy Policy | Terms of Use