• 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 » Microcontrollers » MSP430™ Microcontrollers » MSP430 Ultra-Low Power 16-bit Microcontroller Forum » MSP430F5834A FLL and DCO
Share
MSP430™ Microcontrollers
  • Forum
  • Announcements
  • E2E Wiki
Options
  • Subscribe via RSS
MSP430 Resources
  • MSP430 Product Folder
  • MSP-EXP430G2 - MSP430 LaunchPad Value Line Development kit
  • MSP430 Getting Started Guide
  • MSP430 Microcontroller Projects
  • More Resources >
  • Forums

    MSP430F5834A FLL and DCO

    This question is not answered
    Charlie Bisbee
    Posted by Charlie Bisbee
    on Dec 30 2011 13:28 PM
    Prodigy40 points

    I cannot get the DCO / FLL to operate at the desired frequency.

    1) I cannot set UCSCTL0 to estimated values.  Each time I set it it changes.  Seems input should only come from FLL.  I have SCG0 set (bit value 1) which is supposed to disable the FLL.  I note also that the code in  void Init_FLL(uint16_t fsystem, uint16_t ratio) from the TI F5xx_F6xx_Core_Lib has the same problem.  There USCTL0 is set to 0.  adding code to read it back immediately and it is not 0.  The code in the TI example is

     __bis_SR_register(SCG0);                                 // Disable FLL

      UCSCTL0 = 0x0000;                                           // Set DCO to lowest Tap 

      nTest=UCSCTL0                                                // added to test UCSCTLO reads back 0x14F8

     

     

    2) It seems the lock condition of the FLL / DCO should be given by the following (assuming DCORSEL is set to the proper range)

    DCO freq  /   prescale (FLLD) / divider (FLLN)  =  FLLREFCLK / divider (FLLREFDIV)

     

    This is not working properly.  Could it be related to UCSCTL0 is not close.  It seems that it should not change when SCG0 is set. 

    5834A FLL DCO
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Bernhard Weller
      Posted by Bernhard Weller
      on Jan 02 2012 07:03 AM
      Genius4915 points

      Have you tried that on multiple chips or only on one?

      I tried to recreate the problem, but it's working fine for me, I can set and read back 0x0000; just fine.

      --------------------------------------------------------------------------------------
      Use the verify answer button to mark your questions as solved.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Jens-Michael Gross
      Posted by Jens-Michael Gross
      on Jan 03 2012 06:48 AM
      Guru140405 points

      There is a chance that FLL and CPU are updating the UCSCTL0 register at the same time, resulting in a racing condition. It may happen when a reference clock is received (and therefore a register update is triggered) in the middle of a CPU operation that alters the same register. It's possible (but not confirmed to ever have happened) that the newly written value is not used for the update then, but the previous value.
      But even if this will ever happen, it is more than unlikely to happen all the time. And not with FLL disabled.
      On 5438 non-A, there was the UCS5 erratum, which caused the FLL not to accept changes to UCSCTL0-2 when a register was written more than once during one reference cycle. However, this erratum is no longer lsited for the 5438A.

      One also not likely possibility is that your register definitions point to the wrong physical address. Then you're trying to alter a memory location that might be read-only. (and the TI code would be linked to the wrong addresses too, so having th esame problem).

      It would be interesting to see the actually generated assembly/binary code. And check the register address.

      _____________________________________
      Before posting bug reports or ask for help, do at least quick scan over this article. It applies to any kind of problem reporting. On any forum. And/or look here.
      If you cannot discuss your problem in the public, feel free to start a private conversation: click on my name and then 'start conversation'. But please do so only if you really cannot do it in a public thread, as I usually read all threads. And I prefer to answer where others can profit from it (or contribute to it) too.

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Charlie Bisbee
      Posted by Charlie Bisbee
      on Feb 17 2012 19:34 PM
      Prodigy40 points

      Thanks for the replies.

      I have got this working.  I started over and rewrote all of the code.  Along the way I developed a spread sheet that calculates values for the desired clock speed.  Using the TI library was not working for me.  Perhaps my fault.  Anyway so as to help others I am attaching the Excel file.  It does have macros and I cannot guarantee it but it works for me.  Instructions are in the file.  When I use the generated values to set up the DCO and FLL, I get good results. 

      I still cannot get the DCO to lock correctly with FLLN =1 so the macros will not allow this as a result.  What happens is that the oscillator may start but will often jump frequencies.  Not very good if you are dependent on the frequency.  Note this is repeatable on the MSP - EXP430F5438 board.  I am using XT2 as FLL source and some higher freqency crystals.  Perhaps I will change in the final board.

      The file has macros.  I tested download by pasting the link into my browser.  Upload of xlsm files is not allowed.  Soo don't know what moderators might do or if others can download.  Hope to help.

       

      6114.DCO_Calculations.zip

      Thanks

      Charlie

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Justin Reina
      Posted by Justin Reina
      on Apr 15 2012 17:48 PM
      Intellectual655 points

      great data, found very useful. was getting frustrated with not being able to set DCO tap bits and MOD bits as they kept getting reset by FLL. Asserting SCG0 disabled the FLL and allowed me to update the DCO tap bits.

      Thanks for info, and spreadsheet.

      -Justin

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    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