3 Replies Latest reply on Mar 30, 2016 10:17 AM by mifo

    WLAN scan timeout when receiving much data

    natwati

      We are using a murata SN8000 module connected via SDIO operating with 48 Mhz to a Cortex-M3 LPC1837.

      We are using a WWD ported from the SDK 3.1.2 (including matching patch from murata).

      We are using a custom PCB with SPI Flash, SDRAM, MCU and SN8000.

      The MCU is operating at 180 MHz.

      We are using an older version of FreeRTOS and LWIP (not taken from the SDK).

       

      The SDIO interrupt has the highest interrupt priority.

      The WWD task has the highest task priority.

      There should be no long interrupt processing during the test.

       

      During synthetic tests we experience reproducible WLAN scan timeouts.

      Our test case repeatedly starts a Wireless Access Point, performs a WLAN scan and closes the AP after some seconds.

       

      To perform a WLAN scan our code uses wwd_wifi_scan() and waits up to 10 seconds until the scan callback gets called with the status WICED_SCAN_COMPLETED_SUCCESSFULLY.

      Usually the scan callback gets called with status WICED_SCAN_COMPLETED_SUCCESSFULLY after 3 or 4 seconds.

       

      However when a remote WLAN host sends data (e.g. lots of UDP datagrams) to the WLAN module during the scan sometimes WICED_SCAN_COMPLETED_SUCCESSFULLY does not occur within 10 seconds.

      In this case our code aborts the WLAN scan with wwd_wifi_abort_scan() which then always returns WWD_TIMEOUT.

      Even all following IOCTLs return with WWD_TIMEOUT.

      No further communication with the WLAN module is possible until a power cycle is performed.

       

      We've instrumented the WWD code to track the event messages that we receive from the WLAN module. Normally a scan results in lots of events with type WLC_E_ESCAN_RESULT and status WLC_E_STATUS_PARTIAL followed by one last event with status WICED_SCAN_COMPLETED_SUCCESSFULLY. There are a few occasions where a scan terminated with WLC_E_STATUS_ABORT, but this seems to be handled without errors. During all the errors we observed the usual amount of WLC_E_STATUS_PARTIAL events but never received a WICED_SCAN_COMPLETED_SUCCESSFULLY event.

       

      Are there any known issues that could result in the scan not completing?

      Are there any known issues that could result in the WLAN module not responding to IOCTLs forever?

       

      Is there any other way to get the WLAN module responding again other than

      performing a power cycle?

       

      Best Regards,

       

      Michael Liebert

      on behalf of David Natwati