• 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 » Stellaris® ARM® Microcontrollers » Stellaris® ARM® LM3S Microcontrollers Forum » LM3S9B96 USER_REG0 & USER_REG1 Registers
Share
Stellaris® ARM® Microcontrollers
  • Forum
Options
  • Subscribe via RSS
Helpful Stellaris® LM4F Series Links
  • LM4F Series
  • Stellaris PinMux Utility
  • Stellaris® LM4F120 LaunchPad
  • LM4F MCU Applications
  • LM4F MCU Video
  • ARM Cortex-M4F Whitepaper
  • Stellaris MCU Brochure
  • LM4F232 Eval Kit
  • Forums

    LM3S9B96 USER_REG0 & USER_REG1 Registers

    This question is not answered
    Ashok Modi50543
    Posted by Ashok Modi50543
    on May 01 2012 15:59 PM
    Intellectual925 points

    To All,

    I am refering to LM3S9B96 device.

    The following sections are copied from two different version of the LM3S9B96 data sheet.

    From manual: Stellaris® LM3S9B96 Microcontroller DATA SHEET January 14, 2011

    6.2.3.6 Nonvolatile Register Programming
    This section discusses how to update registers that are resident within the Flash memory itself.
    These registers exist in a separate space from the main Flash memory array and are not affected
    by an ERASE or MASS ERASE operation. The bits in these registers can be changed from 1 to 0
    with a write operation. The register contents are unaffected by any reset condition except power-on
    reset, which returns the register contents to 0xFFFF.FFFF. By committing the register values using
    the COMT bit in the FMC register, the register contents become nonvolatile and are therefore retained
    following power cycling. Once the register contents are committed, the only way to restore the factory
    default values is to perform the sequence described in “Recovering a "Locked"
    Microcontroller” on page 192.


    From manual: Stellaris® LM3S9B96 Microcontroller DATA SHEET January 20, 2012
    6.2.3.6 Non-Volatile Register Programming
    This section discusses how to update the registers shown in Table 6-2 on page 315 that are resident
    within the Flash memory itself. These registers exist in a separate space from the main Flash memory
    array and are not affected by an ERASE or MASS ERASE operation. With the exception of the Boot
    Configuration (BOOTCFG) register, the settings in these registers can be written, their functions
    verified, and their values read back before they are committed, at which point they become
    non-volatile. If a value in one of these registers has not been committed, any type of reset restores
    the last committed value or the default value if the register has never been committed. Once the
    register contents are committed, the only way to restore the factory default values is to perform the
    sequence described in “Recovering a "Locked" Microcontroller” on page 193.
    To write to a non-volatile register:
    ■ Bits can only be changed from 1 to 0.

    Page  335
    Register 15: User Register 0 (USER_REG0), offset 0x1E0
    Note: Offset is relative to System Control base address of 0x400FE000.
    This register provides 31 bits of user-defined data that is non-volatile and can only be committed
    once. Bit 31 indicates that the register is available to be committed and is controlled through hardware
    to ensure that the register is only committed once. Prior to being committed, bits can only be changed
    from 1 to 0. The reset value shown only applies to power-on reset; any other type of reset does not
    affect this register. The write-once characteristics of this register are useful for keeping static
    information like communication addresses that need to be unique per part and would otherwise
    require an external EEPROM or other non-volatile device. Once committed, the only way to restore
    the factory default value of this register is to perform the sequence detailed in “Recovering a "Locked"
    Microcontroller” on page 193.

    User Register 0 (USER_REG0)
    Base 0x400F.E000
    Offset 0x1E0
    Type R/W, reset 0xFFFF.FFFF


    Register 16: User Register 1 (USER_REG1), offset 0x1E4
    Note: Offset is relative to System Control base address of 0x400FE000.
    This register provides 31 bits of user-defined data that is non-volatile and can only be written once.
    Bit 31 indicates that the register is available to be written and is controlled through hardware to
    ensure that the register is only written once. The write-once characteristics of this register are useful
    for keeping static information like communication addresses that need to be unique per part and
    would otherwise require an external EEPROM or other non-volatile device.

    User Register 1 (USER_REG1)
    Base 0x400F.E000
    Offset 0x1E4
    Type R/W, reset 0xFFFF.FFFF

    The documentation on USER_REG0 indicates that The reset value shown only applies to power-on reset; any other type of reset does not
    affect this register.

    The USER_REG1 does not have the note that reset values applies only to power on reset.

    My testing shows that on push button reset, power on reset and soft reset the register are set to value of 0xFFFF.FFFF.

    Q.1 Is there a typo in the manual on what reset the USER_REG0 and USER_REG1 are set to value of  0xFFFF.FFFF?

    My testing indicates that  USER_REG0 and USER_REG1 value can be set to any value affter their content is 0xFFFF.FFFF. But once the content is set the follwoing comment seems to be valid "Prior to being committed, bits can only be changed from 1 to 0."

    Q,2 can you confirm this?

    Thanks.

    With Best Regards,

    Al Modi

    Q.2

     

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    All Replies
    • Stellaris Dave
      Posted by Stellaris Dave
      on May 01 2012 18:45 PM
      Expert5260 points

      Al Modi,


      Thank you for your detailed post.


      To answer your questions:

      Q1: Yes this does appear to be an omission in the datasheet as the USER_REGs should operate according to the description given for USER_REG0. 

      Q2: Yes.

      -Dave


      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Ashok Modi50543
      Posted by Ashok Modi50543
      on May 02 2012 06:22 AM
      Intellectual925 points

      Q1: Yes this does appear to be an omission in the datasheet as the USER_REGs should operate according to the description given for USER_REG0.

      I am little confused with your response above to Q.1. Your response indicates yes, means there is a Typo and The USER_REGs would be set to 0xFFFF FFFF with power on rest, hard reset and soft reset. but the 2nd part of your resposne indicates that it should operate according to the description given for USER_REG0. The description given for USER_REG0 in the latest data sheet I have indicates that only Power on reset will set it to 0xFFFF FFFF and no other reset should set it to 0xFFFF FFFF. I am seeing the behavior as indicated above that all reset causes the USER_REGs  to be set to 0xFFFF FFFF.  I am writing a code based on my test result that all reset type will cause USER_REGs to be set to 0xFFFF FFFF.

      Q.3 Am I going to get supriise and in fututre this behavior may not occur?

      Please confirm that the manula will be corrected and the behavior I have seen is the way USER_REGs would operate. Thanks.

      Al Modi

       

      Report Abuse
      • Reply
      You have posted to a forum that requires a moderator to approve posts before they are publicly available.
    • Stellaris Dave
      Posted by Stellaris Dave
      on May 02 2012 14:10 PM
      Expert5260 points

      Al Modi,


      There was a change on rev C in which all resets act the same (POR). This is what errata "2.3 Debug interface is reset by any type of reset" refers to however the erratum was not inclusive.

      Therefore, the description given for USER_REG0 in the latest data sheet you have indicates that only Power on reset will set it to 0xFFFF FFFF, which is true because all resets will look like a POR.

      -Dave


      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