• 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 » Low Power RF & Wireless Connectivity » Low Power RF Proprietary Software & SimpliciTI Forum » Retaining paring when power cycled
Share
Low Power RF & Wireless Connectivity
  • Forums
  • Announcements
  • Files
  • E2E Wiki
Options
  • Subscribe via RSS

Retaining paring when power cycled

Retaining paring when power cycled

This question is answered
John Galvin
Posted by John Galvin
on Mar 05 2012 04:32 AM
Prodigy195 points

How do you setup SimpliciTI to retain the paring information so when the power is cycled on the coordinator of the endpoints the automatically re-established their links? We are currently using CC1110-CC1111DK

cc1110 CC1111 CC1100 SimpliciTI SimplciTI SimliciTI SimpliciTI End Device CC111x simpliciti 1.1.1
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • mark sonnentag
    Posted by mark sonnentag
    on Mar 06 2012 08:32 AM
    Expert1890 points

    Hi John,

    SimpliciTI does not have such a feature. An enddevice that is reseted could send a broadcast and every device checks its connection table if a link was established upon receiving the broadcast and starts the unlink/link process.

    The alternative would be to save the connection table in a persistant memory before the reset. The name of the connection table is sPersistInfo.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Jonathan9420
    Posted by Jonathan9420
    on Mar 06 2012 09:27 AM
    Expert1020 points

    Is there example code for either of these solutions?

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • John Galvin
    Posted by John Galvin
    on Mar 06 2012 11:00 AM
    Prodigy195 points

    Please send me information on how to save / restore the information on the CC1110 devices.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • mark sonnentag
    Posted by mark sonnentag
    on Mar 06 2012 15:46 PM
    Expert1890 points

    I dont know how you can save data in flash during runtime because I dont have any experience with 8051 MCU, but basically you just have to save the content of the sPersistInfo struct in flash. Then you reset the device and overwrite the content of this struct in the RAM with the data in flash after you called smpl_init, because this call resets this structure.

    I have never implemented both suggestions, so there might be side-effects, at least for the second suggestion.

    You could also ask Hunter Wang for assistance, because I think that he successfully implemented it ([url]http://e2e.ti.com/support/low_power_rf/f/156/t/147320.aspx[/url]).

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Jonathan9420
    Posted by Jonathan9420
    on Mar 07 2012 10:36 AM
    Expert1020 points

    What's the relationship between sPersistInfo and NVOBJECT?  I can enable NVOBJECT_SUPPORT in nwk_config.dat, which says "Adds support for gerting and setting connection context for saving across resets."

    IOCTL_OBJ_NVOBJ

    Non-volatile memory object

    Get and set the NV object. This permits a device to save connection context across power cycles so that communications can be restored in event of a reset.

    Are these different ways to do the same thing?

    nvobj nvobject sPersistInfo
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • mark sonnentag
    Posted by mark sonnentag
    on Mar 07 2012 10:44 AM
    Expert1890 points

    This function gives you only a pointer to the sPersistInfo structure nothing more.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • lfriedman
    Posted by lfriedman
    on Mar 07 2012 13:01 PM
    Expert1280 points

    Hello.

    mark sonn
    This function gives you only a pointer to the sPersistInfo structure nothing more

    It's enough.

    The ioctl call gives you what you need. You get a pointer to the NV object and the length of the object. You need to write your own flash driver and save the context described in the ioctl call. On power-up use the same call to find out where to put the saved information. It is up to you to manage the saved area in your flash. It is not intended that you directly manipulate the NV object. That is why there isn't any information about the object in the API document. You of course are free to mess things up on your own...

    You have another burden as well. Though the binding of Link ID to connection information is established by the NWK layer during the link transaction it is up to the user application to maintain the semantics of the connection. That means if you save the NV object, which contains connection information, you also need to save your application's Link ID map. It's your application that knows what Link ID belongs to what connection. In the case of an ED where there is likely only 1 connection and it is to the AP it is still good practice is to save the Link ID map. Though the Link ID is usually 1 for EDs in a single connection to an AP this is not guaranteed anywhere.

    Hope this helps.

    lfriedman

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Jonathan9420
    Posted by Jonathan9420
    on Mar 07 2012 13:22 PM
    Expert1020 points

    Yes, I'm going to need to store some other link-related variables, too, but that's very helpful, thanks.

    Aren't the linkIDs listed in sPersistInfo.connStruct[i].thisLinkID, though?

    Is the NVOBJECT size a fixed number?  Determined by fixed things like NUM_CONNECTIONS, maybe?  If not, is it possible to calculate the max size for a given compiled program?  I might want to do some kind of wear-leveling.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • lfriedman
    Posted by lfriedman
    on Mar 07 2012 14:22 PM
    Expert1280 points

    Hello.

    Jonathan9420
    Aren't the linkIDs listed in sPersistInfo.connStruct[i].thisLinkID, though?

    Yes but as I mentioned only the application knows the context. Though one could peruse the structure for Link IDs, without context this would be pretty useless if there were more than a single connection. It's a better design to keep the context where it has meaning -- at the application. The Link ID is intended as a handle at the application layer where it has a context (the link transaction) not at the NWK layer where it is side effect.

    Jonathan9420
    Is the NVOBJECT size a fixed number?

    Yes the size is fixed for a given compiled and instantiated image. Its size is not dynamic at run time.

    Jonathan9420
    I might want to do some kind of wear-leveling.

    I don't recall the specifics of the MCU you are using but it might be a challenge in the 8051 Harvard architecture with relatively large page sizes and relatively small erase duty cycles...good luck!

    lfriedman

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Leo Hendrawan
    Posted by Leo Hendrawan
    on May 03 2012 02:17 AM
    Verified Answer
    Verified by Leo Hendrawan
    Mastermind27460 points

    Hi,

    there is an example code on how this can be done (target used is eZ430-RF2500):

    http://processors.wiki.ti.com/index.php/SimpliciTI_FAQ#Restoring_connection_after_power_cycle

    Basically the sPersistInfo structure (retrieved by using IOCTL_OBJ_NVOBJ) and the linkID handle on the application level need to be stored in a non volatile memory.

    Regards,

    Leo Hendrawan

    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