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.

CC3120: CC3120 sl_stop() fails after Wi-Fi FATAL error due to SYNC loss event

Part Number: CC3120

We were working for a residential product called e-Trilock Wi-Fi which has CC3120 Wi-Fi solution. We are having some issues with SimpleLink Wi-Fi SDK , we need support to resolve couple of issues we are seeing. Below are the brief description of the issues.

SDK Version: SimpleLink CC32xx SDK 3.20.00.06

 

  • We are getting  FATAL ERROR with SYNC LOSS occasionally and below is the recovery mechanism from this state.
  • This is the recovery mechanism  when the FATAL ERROR occurs on the host controller side. -> sl_stop() ->sl_start().
  • In some scenarios we are seeing that the recovery mechanism is failing with below condition.
    • Sl_stop

 

  • Scenario 1: Stuck in infinite loop waiting for an object to be released in sl_stop() function.

 

 

  • Scenario 2: Hard fault occurs while executing the below code section in _SlReturnVal_t _SlDrvReleaseAllActivePendingPoolObj() function of driver.c file

 

 

We would like to know what could lead into this scenarios and are there any solutions. Also we would like to know if these issues are fixed in the later versions of SDK.

  • The SYNC_LOSS indicates that the host is receiving unexpected bytes (from the NWP) over the SPI lines.

    It can related to the host SPI adaptation (what host platform are you using?) - but seems that you already passed that (as it typically works ok).

    Another cause can be related to thread synchronization within the host driver. Basically there should be a mutex protecting the access to the SPI from the application threads and from the Driver's spawn thread. I assume this also is not your issue, but you may check the implementation Mutex related interfaces (in simplelink/cc_pal.c.

    The last thing may be related to a bug in the driver. You are using a very old driver and we fixed many internal issue since it was published.

    I recommend that you will update it. Note that the latest simplelink_sdk_wifi_plugin is 4.20, but you can copy and use the driver from the latest CC32xx SDK (simplelink_cc32xx_sdk_7_10_00_13) - basically both drivers are the same except for the adaptation layers.(mostly cc_pal).

    If you choose to stick to your existing driver and since NWP reset causes issues - your options would be to perform a full MCU reset instead (what is the frequency of the issue?) or to debug the issue (you can use the latest driver code to look for relevant fixes).

  • Hello Kobi Leibovitch,

    Thank you for the response. 

    Its glad to know that the issues have been resolved in the later SDK. We are going to assess the changes with respect to the new simplelink_cc32xx_sdk_7_10_00_13  and then will decide whether to take those changes are not. Our goal at this time is to have minimal SDK changes as most of our product testing done the SimpleLink CC32xx SDK 3.20.00.06. 

    In another note, we had also looking into this thread (SIMPLELINK-WIFI-CC3120-SDK-PLUGIN: Never return from sl_Stop - Wi-Fi forum - Wi-Fi - TI E2E support forums) where the issues what we have faced is similar issue and it is mentioned in thread that the  sync object issue has been fixed in CC32xx SDK v3.30.  Do you suggest to check this SDK version as well so that there will be minimal changes on the SDKs compared to the newest one?

    Please let me know your thoughts on this.

  • you can try 3.30 first. If it works for you with these specific fixes then you can just use it.

    I expect much more fixes (and couple of new features) in the latest code so cherry picking will be harder.

    Note that when you moving to a newer SDK - you also need to update the SP.