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.

Trying to set up End(CC2530) to End(CC2430) Device Wireless Link using SimpliciTI-IAR-1.1.1 code

Other Parts Discussed in Thread: CC2530, CC2430, SIMPLICITI

I have CC2430 as one End Device and other End Device is CC2530. I am trying to understand how the SimpliciTI  protocol works.

So I have "SMPL_LINK" on talker device (CC2530) and I have "SMPL_LINKLISTEN" on listener side (CC2430). By reading the document I understand that when it tried to set up link at first. Each End device will send each own link ID to each other and they remember and once after the link is set up they try to send and receive packet based on the link Id they received initially during the link setup. (Now I don’t understand here is this Link ID is zig bee address....? ) Also in the manual I saw its recommended to setup "THIS_DEVICE_ADDRESS" what is this used for.....? is it necessary to implement.....???? is this default address at beginning..

 

Now to my understanding once the link is setup. than both the end device will communicate only to each other and no other wireless device can interfere or nor they will interfere... this case is true until the one of the device is powered down. Once its powered down it will lose its link ID n application has to reinitiate the link... is this case correct... no in this scenario where does "THIS _DEVICE_ADDRESS" fall...?

Any help or suggestion would be appreciated.

Thanks!!!

 

 

 

  • First thing to understand is SimpliciTI has nothing to do with Zigbee, they are separate and incompatible protocol stacks.

    In SimpliciTI, each radio in a network must have a unique 32 bit address.  This address is normally defined at compile time with the THIS_DEVICE_ADDRESS macro as four 8-bit values in an array initialization list.  For example
              #define THIS_DEVICE_ADDRESS   { 0xAB, 0x23, 0x58, 0x9C }
    or in the configuration .dat file as
              -DTHIS_DEVICE_ADDRESS="{ 0xAB, 0x23, 0x58, 0x9C }"

    The values can be anything except the first element should not be 0x00 or 0xFF as these can be confused as broadcast packets when the hardware packet filtering is used on some radios.

    During the link process, one radio calls SMPL_LinkListen to open a context window during which the second radio can call SMPL_Link to generate a link request.  Note: the call to SMPL_LinkListen context window will only be open for about 5 seconds so the call to SMPL_Link must occur on the second radio within this context window.

    Once the linking process has completed successfully, you will have a Link ID on each radio which is an effective handle to the communications link just established.  Note: the Link ID is not necessarily the same on each radio.  Sometimes it is easier to think of it like you are trying to communicate between two programs using files.  The first one will open the file and receive a pointer to a FILE structure (this is analogous to a Link ID).  The second program will open the same file but the FILE structure pointer will be different in this program even though it is pointing to the same physical file.

    The link process establishes a communications link between two radios.  SimpliciTI will reject any received frames not destined for a valid Link ID on the receiving radio.  This guarantees that any application attempting to communicate on a valid link will only receive messages which are appropriately associated with that link only.  This does not mean any other radios cannot interfere with the communications process, just that only recognized messages will get through.  SimpliciTI does implement the clear channel assessment algorithm in which it will test for RF energy on the channel used before transmitting.  If it senses RF energy exists (regardless of the source), SimpliciTI will delay the transmission by a random back off period of 1ms to 16ms.

    You are correct in your understanding of power cycling issues.  Every time the power is cycled, the link table is lost.  Unfortunately, only the link table on the radio which is power cycled is lost so half of the link information remains on the other radio which did not power cycle.  This is known as a dead link because now there is no radio associated with it on the other end.  You can call SMPL_Unlink to remove this remaining portion of the link to completely tear it down.

    Jim Noxon

  • Thanks you so much. Now I got bit better understanding of how the Link Id works.

    I have questions

    1. I can read IEEE address on CC2430 (as shown in IAR_IDE_USER MANUAL for CC2430) but can I read IEEE Address in CC2530 from as well...n wht addres.?
    2. In the SimpliciTI frame structure it has field for src addr and dest addr... what are tehy used for and how they are set....?
    3. In peer to peer communication ... For idenfying the existing peer ....is done by getting peer IEEE address and verify it against stored address.... but should one end device request for its peer address or its included in the packet when it tried to link with peer.????
    4. IEEE Address is also know as Zigbee Address.....? or its two different things...?
    5. How does this work "THIS_DEVICE_ADDRESS" is of 32bits but IEEE address is of 64bits...?

    Sorry for some unknown random questions. I am just so confuse and new to this platform and trying to understand the basic...

    Thanks!

    Aarti

    1. The CC2530 spec sheet should tell you the address for the IEEE storage
    2. The source and destination addresses are used by SimpliciTI to manage routing of packets over the air.  They represent the physical attributes of the radios on each end of a given link previously established.  Whenever you call SMPL_Send or SMPL_SendOpt these addresses are populated by SimpliciTI before transmitting the packet.
    3. It is included in the packet when trying to link with the peer.  Again, SimpliciTI attempts to abstract all requirements of physical addressing away from the user.  Generally, there is no requirement to obtain a peers address
    4. Yes, IEEE address is synonymous with Zigbee address (mostly).  However, SimpliciTI addressing and Zigbee/IEEE addressing are not compatible.  If you want to derive a SimpliciTI address from an IEEE/Zigbee address, the method to do so is entirely up to you.
    5. As explained in 4, SimpliciTI addressing and IEEE/Zigbee addressing are not compatible.

    I think the key thing for you is to not confuse Zigbee/IEEE with SimpliciTI.  SimpliciTI is a Texas Instruments proprietary communications stack.  It doesn't adhere to any standards based community and is solely defined by TI.  Any similarities with other standards based stacks is purely coincidental.

    Jim Noxon