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.

CC3100MOD: CC3100MOD startup issues

Part Number: CC3100MOD
Other Parts Discussed in Thread: CC3100, UNIFLASH

Hi,

We've got a CC3100MOD which is embedded in our product, which fails to start up correctly...

Sl_Start fails and we get the following two asynchronous events:

General Error Event
Sender was SenderInit
Status: -77, AbortType: 1715, AbortData : 134331179, DriverInfo: 1715


General Error Event
Sender was Supplicant
Status: -78, AbortType: 690, AbortData : 134330323, DriverInfo: 690

How do we diagnose the failure mode and avoid this in the future?

  • Hi Michael,

    Issues with sl_Start is typically a porting error, but I do not recognize those error codes.

    1. What are you using for your host MCU?
    2. Have you tested your setup with a known working example? Please try your board with an example such as getting_started_with_wlan_station, ported for your host.
    3. Does sl_Start() fail, or hang? Can you post exactly what you are seeing?
    4. What code or example are you working with? I don't recognize those error events from our SDK.

    Best regards,
    Sarah

  • Hi Sarah,

    It is an STM32L073, we've got 15 of these built up, and the other 14 are working fine...

    The General Event Handler is:


    void cc3100_GeneralEvtHdlr(SlDeviceEvent_t *slGeneralEvent)
    {
    switch(slGeneralEvent->Event)
    {
    case SL_DEVICE_GENERAL_ERROR_EVENT:
    Trace(TRACE_INFO, "General Event Handler - General Error Event");
    break;
    case SL_DEVICE_ABORT_ERROR_EVENT:
    Trace(TRACE_INFO, "General Event Handler - Abort Error Event");
    break;
    case SL_DEVICE_DRIVER_ASSERT_ERROR_EVENT:
    Trace(TRACE_INFO, "General Event Handler - Assert Error Event");
    break;
    case SL_DEVICE_DRIVER_TIMEOUT_CMD_COMPLETE:
    Trace(TRACE_INFO, "General Event Handler - Timeout Cmd Event");
    break;
    case SL_DEVICE_DRIVER_TIMEOUT_SYNC_PATTERN:
    Trace(TRACE_INFO, "General Event Handler - Timeout Sync Pattern Event");
    break;
    case SL_DEVICE_DRIVER_TIMEOUT_ASYNC_EVENT:
    Trace(TRACE_INFO, "General Event Handler - Timeout Async Event");
    break;
    }
    switch(slGeneralEvent->EventData.deviceEvent.sender)
    {
    case SL_ERR_SENDER_HEALTH_MON:
    Trace(TRACE_INFO, " Sender was HealthMonitor");
    break;
    case SL_ERR_SENDER_CLI_UART:
    Trace(TRACE_INFO, " Sender was CliUart");
    break;
    case SL_ERR_SENDER_SUPPLICANT:
    Trace(TRACE_INFO, " Sender was Supplicant");
    break;
    case SL_ERR_SENDER_NETWORK_STACK:
    Trace(TRACE_INFO, " Sender was NetworkStack");
    break;
    case SL_ERR_SENDER_WLAN_DRV_IF:
    Trace(TRACE_INFO, " Sender was WLANDriver");
    break;
    case SL_ERR_SENDER_WILINK:
    Trace(TRACE_INFO, " Sender was WiLink");
    break;
    case SL_ERR_SENDER_INIT_APP:
    Trace(TRACE_INFO, " Sender was SenderInit");
    break;
    case SL_ERR_SENDER_NETX:
    Trace(TRACE_INFO, " Sender was NetX");
    break;
    case SL_ERR_SENDER_HOST_APD:
    Trace(TRACE_INFO, " Sender was HostAPD");
    break;
    case SL_ERR_SENDER_MDNS:
    Trace(TRACE_INFO, " Sender was MDNS");
    break;
    case SL_ERR_SENDER_HTTP_SERVER:
    Trace(TRACE_INFO, " Sender was HTTPSERVER");
    break;
    case SL_ERR_SENDER_DHCP_SERVER:
    Trace(TRACE_INFO, " Sender was DHCPServer");
    break;
    case SL_ERR_SENDER_DHCP_CLIENT:
    Trace(TRACE_INFO, " Sender was DHCPClient");
    break;
    case SL_ERR_DISPATCHER:
    Trace(TRACE_INFO, " Sender was Dispatcher");
    break;
    }
    /*
    * Most of the general errors are not FATAL are are to be handled
    * appropriately by the application
    */
    TraceF(TRACE_INFO, "Status: %d, AbortType: %d, AbortData : %d, DriverInfo: %d ",
    slGeneralEvent->EventData.deviceEvent.status, // status of the general event
    slGeneralEvent->EventData.deviceReport.AbortType ,
    slGeneralEvent->EventData.deviceReport.AbortData ,
    slGeneralEvent->EventData.deviceDriverReport.info
    ); // sender type
    }

    TraceF calls printf if the first parameter is at-or-above a trace level, and Trace calls printf with just a %s.

    Mike

  • I've just stepped through the code some more, and sl_start seems ok, but sl_WlanPolicySet returns -7
  • do you require more information?
  • Hi Michael,

    sl_WlanPolicySet should only be able to return -1 on error. Are you seeing an error from an async event?

    It stil looks like this is an initialization error. Please be sure you have the most recent service pack flashed to the CC3100, and try adding a 100 ms delay to both SPI enable and disable. If there is a timing error, this should let us know. If that succeeds, you can test reducing the delay.

    Best regards,
    Sarah
  • Hi Michael,
    Is your problem resolved?
    I met the same problem. Counld you share your solution?
  • I believe it was a corrupt file system on the module, re-flashing with UniFlash solved the issue.