SimpliciTI v1.2.0 on CC2510 with IAR EW8051 v8.11

Hi there,

I have just downloaded SimpliciTI v1.2.0 and tried to run the Simple Peer-to-Peer example code on the CC2510 SoC. The compiler that I am using is the IAR EW8051 v8.11. I can run successfully the LinkTo and LinkListen applications up to step 4 (see page 27 of swra243). However, when I push a button on the talker (LinkTo), the link can not be established. Both LEDs on the Talker are blinking (linking failed). And LED2 on the Listener is always ON (LED1 is always OFF.) as if the Listener never hears the Link Frame from the Talker.

I used the spectrum analyzer to check the behavior of the Talker and found that the Talker is sending frames on Channel 3 (2425.7 MHz).

Then, I tried the example code on both the CC2510-CC2511DK platform (with SmartRF04EB) and the CC2510 Mini DK (with the code porting described in DN118 document). Both of them have the same performance. Please note that I tried the example code on two CC2510 DK boards (with SmartRF04EB) and then tried the example code on two CC2510 Mini DK boards. None of them works.

I then tried SimpliciTI v1.1.1 on these platforms (by using the same IAR EW8051 v8.11 compiler). The problem remains the same.

I then tried the Access Point as Data Hub example code on these platforms by using the IAR EW8051 v8.11 compiler. There is no problem with this example at all (for both SimpliciTI v1.2.0 and v1.1.1 on both of the platforms).

It seems that the problem happens in the following pair of APIs for the peer links.

* smplStatus_t SMPL_LinkListen(linkID_t *linkID)

* smplStatus_t SMPL_Link(linkID_t *lid)

I wonder if it is caused by the new version (IAR EW8051 v8.11) of the compiler or something else?

How should I debug this problem?


  • In reply to Leo Hendrawan:

    Hello TA and lhend,

    Thanks for your ideas and the reference documents to provide the randomness. It seems that the general way to create the randomness is to use the randomness of a clock signal. I will keep this in mind and try this method.

    Again, thank you both for your great help :-)




  • In reply to SkyBlue:

    Hi everybody...

    I am running the same peer to peer example using smartrf04eb with cc2510 and simpliciti IAR 1.2.0.

    When I debug the link To , I can see both LEDs on

    When I debug the Link Listen, I cant see any LED on on the second board and program immidiately reaches exit as soon as I debug..

    There is another possible problem that when I change the THIS_DEVICE_ADDRESS="{0x97, 0x56, 0x34, 0x12}" for the Link Listen , it automatically changes for the Link To device because of the same workspace..

    Kindly guide me how to get rid of these problems


  • In reply to Muh Mughal:

    Hi Muh,

    The first thing to try is to make a different THIS_DEVICE_ADDRESS for the Link Listen node and the Link To node. For example, you may want to change the THIS_DEVICE_ADDRESS="{0x97, 0x56, 0x34, 0x12}" for the Link Listen. Build the project and download it to one of the board (This one becomes the Link Listen board.). Then, you may want to switch to the Link To project and change the THIS_DEVICE_ADDRESS="{0x98, 0x56, 0x34, 0x12}". An address that is different than the THIS_DEVICE_ADDRESS="{0x97, 0x56, 0x34, 0x12}" which is being used by the Link Listen node. Build the Link To project and download it to another board (This one becomes the Link To board.). After this, try the example program again to see if this solves your problem.


  • In reply to SkyBlue:

    Thanks a lot .. Now it works as desired.

    Can you please guide me how to configure desired baud rate etc, and also some manual showing the detailed analysis of this code.

  • In reply to Muh Mughal:

    Just to chip in my 2c worth on randomness, I have timer A running, and modified the random backoff to use TA0R as a seed:

    * Function : RandomBackoffDelay.c
    * Description : Delay a random number of ms
    * Date : 121128
    * Parameters :
    * Returns : SimpliciTI return codes
    * Caveats : Make sure Len is less than MAX_APP_PAYLOAD
    #define MRFI_RANDOM_OFFSET 67
    #define MS_MULTIPLIER 20

    static void RandomBackoffDelay(void)
    //seeded by current TA0R value
    uint8_t mrfiRndSeed = TA0R;

    /* calculate random value for backoffs - 1 to 128 */


    I didn't measure the probability distribution curve, but it seems to work ok.


    Simon Buchwald

  • In reply to simon buchwald:


    Can anybody guide me if there is kickstart version of IAR Embedded Workbench for 8051 available or nor.

    If yes, then kindly send me the link to download.

    I was using evaluation version which just expired.

    Thanks  and Regards


  • In reply to Muh Mughal:

    All you had to to was plug "IAR EW 8051 v8.11 ti" into Google:


    Simon Buchwald
    Amatek Design 

  • In reply to simon buchwald:

    Hi Simon

    Actually I meant to say Kickstart v7.60 for IAR 8051 . Because the simpliciti protocol I am using works only with this edition.

    Kickstart edition is available only for higher vesions like 8.11 and 8.20 etc. I think that kickstart vesion for 7.60 is not avaialbe.

    Any suggestions of how to use simpliciti complaint protocol with higher versions like8.20..



  • In reply to Muh Mughal: