Skip to main content
arturdav87
Associate II
December 14, 2016
Question

wifi_reset Problem with IDW01M1

  • December 14, 2016
  • 8 replies
  • 5748 views
Posted on December 14, 2016 at 07:57

I'm using the STM32F411RE board with the IDW01M1 WiFi expansion module. I run some examples from en.x-cube-wifi1_firmware.zip lib.

However, all example code I run always fail during the wifi_init()--> wifi_reset() call where it just hangs in this while loop:

while(IO_status_flag.WiFi_WIND_State.WiFiHWStarted != WIFI_TRUE)

{

__NOP(); //nothing to do

}

but WiFiHWStarted never gets set to WIFI_TRUE.

Maybe i dismissed some wiring conncetions (the expantion connected via wires to eval board)?

I have JP3 set in the 1-2 position (which it is). I also have JP4 set in the 1-2 position.

I have connceted 3.3v to CN7 pins 12&

Thanks,

Note: this post was migrated and contained many threaded conversations, some content may be missing.
    This topic has been closed for replies.

    8 replies

    Gerardo GALLUCCI
    ST Employee
    December 14, 2016
    Posted on December 14, 2016 at 21:04

    Hi,

    JP3 is the one which connect module's reset with STM32 Nucleo GPIO PC12. It's enough.

    JP4 can be removed. Why 3V3 to CN7 pin14? Plug IDW on Nucleo, and remove all extra wires. Only JP3 is needed.

    - is LED1 turned on? ---> power is ok

    - is there any LED turned on? ---> module is sane

    - is VCOM application working (send 'AT', receive OK')? ---> UART is sane

    Regards

    jerry

    arturdav87
    Associate II
    December 15, 2016
    Posted on December 15, 2016 at 06:36

    Hello, Thanks for your reply.

    I forgot to mention that I am using with STM32F411Discovery board. We intend to use with

    SPWF01SA  as IC without shild

    .

    This the reason for connection with external wiring.

    Connections:

    RX,TX, GND,WIFI_RST , 

    3.3v to CN7 pins 12&14. 

    Code:

    From  : 'en.x-cube-wifi1_firmware\STM32CubeExpansion_WIFI1_V2.1.1\Projects\Multi\Applications\Server_Socket'

    1. Defined symbol USE_STM32F4XXÖ¹Ö¹Ö¹_NUCLEO

    2. Code edited: uart configuration set USART6 instead USART1(used for OTG) 

    Leds indication:

    LED1 - on

    LED2 & LED3  - blinking for 1sec when power is connected

    LEDD4 -on

    Questions:

    1. Maybe I missed some connection?

    2. Is there any porting that i need to do (except system clock)?

    Thansk a lot,

    Arthur. 

    Gerardo GALLUCCI
    ST Employee
    December 15, 2016
    Posted on December 15, 2016 at 15:36

    It's not a big problem in using Discovery HW and Nucleo SW. Only be sure about clocks (PLL, HSI/E, etc), peripherals (USB, UART, etc), and GPIOs.

    I suggest to start with a simple application turning on/off a LED on discovery ---> Clocks are ok

    Then configure UART and connect TX to RX pins: receive every char sent out---> UART is ok

    Last step, select a GPIO (for reset), and connect discovery to SPWF module.

    Use SPWF at the end of other tasks, so you are sure that you can expect a good result since system (Discovery)  is sane.

    arturdav87
    Associate II
    December 15, 2016
    Posted on December 15, 2016 at 19:21

    Hi,

    the problem is that my IDW01M1 shild is send a garbage with data  and I didnt find:

    1. How upgrade firmware

    without

    nucleo?

    2. How can I connect a JTAG and use with shild as evaluation board? is there available source code for flashing? 

    Is there any documention for support this? 

    Attach terminal screenshot with data from shild on power connection.

    0690X00000605sbQAA.png

    Regards, 

    Arthur.

    yoann LBY
    Senior
    April 13, 2017
    Posted on April 13, 2017 at 16:28

    Hi,

    did you resolve your pb! Because i have the same issue:

    However, all example code I run always fail during the wifi_init() --> wifi_reset() call where it just hangs in this while loop:

      while(IO_status_flag.WiFi_WIND_State.WiFiHWStarted != WIFI_TRUE)

       {

          __NOP(); //nothing to do

       }

    I use the STM32L053R8 board with the IDW01M1 WiFi expansion module. I use Server_Socket project, i tried en.x-cube-wifi1_firmware V2.1.1, V3.0.0 and V3.0.1. JP3 is on 12. I checked ok the reset pin signal PC12. But WiFiHWStarted never gets set to WIFI_TRUE. wifi module is updated ok with FOTA.

    Thks

    Yoann

    Gerardo GALLUCCI
    ST Employee
    April 14, 2017
    Posted on April 14, 2017 at 09:56

    Hi,

    is the VCOM prj working?

    j

    yoann LBY
    Senior
    April 14, 2017
    Posted on April 14, 2017 at 10:41

    hi,

    Yes, VCOM prj works (because wifi_init(&config) -> wifi_reset() is not used!).

    Server_Socket prj:

    I'm progressing in my investigation. Reset (PC12) is ok. module responses well :

    +WIND:1:Poweron (160129-c5bf5ce-SPWF01S)

    +WIND:13:ST SPWF01SA1 IWM: Copyright (c) 2012-2015 STMicroelectronics, Inc.  All rights Reserved.

    +WIND:3:Watchdog Running

    +WIND:0:Console active

    +WIND:32:WiFi Hardware Started

    +WIND:21:WiFi Scanning

    The problem is Process_Buffer() doesn't catch '+WIND:32:WiFi Hardware Started'. I don't know why?

    Rgds

    Yoann

    yoann LBY
    Senior
    May 4, 2017
    Posted on May 04, 2017 at 10:24

    hi,

    i will test.

    Note that server_socket code (original V3.0.1) compiled this IAR seems work good. IAR Binary is different compared to Keil Binary. 

    Rgds

    Yoann

    Mridupawan Das
    Visitor II
    May 4, 2017
    Posted on May 04, 2017 at 12:14

    Hi,

    did you check the MDK-Keil binaries I had sent?

    Did it make any difference?

    regards

    yoann LBY
    Senior
    May 4, 2017
    Posted on May 04, 2017 at 12:28

    hi,

    yes i checked the MDK-Keil binary (STM32L053R8_Nucleo_keil_5.23) you sent me. no difference whis binary i generate.

    The 2 binaries download (drag and drop) on Nucleo drive works fine (some time i must do a wifi hardware reset (SW1) to pass. In debug i don't have the same behavior, i stay in the wifi_reset()!

    Is it possible to provide the .ioc (STM32CubeMX) of STM32L053R8 for SPWF0xSx?

    When en.x-cube-wifi1_firmware will be available with STM32L053R8 compliant SPWF04Sx? 

    thks

    yoann

    Mridupawan Das
    Visitor II
    May 4, 2017
    Posted on May 04, 2017 at 13:04

    Hi,

    I am not using any .ioc file and so don't have any.

    Are you using SPWF04 or 01?

    For SPWF04, we don't have any plans to support L0 actually, but if you need we can send you something basic for testing.

    regards,

    Mridu

    yoann LBY
    Senior
    May 4, 2017
    Posted on May 04, 2017 at 14:02

    hi,

    i am using SPWF01 but for the final design i switch now on SPWF04 (WPS option, MQTT protocole). Do you see any problem to switch on SPWF04?

    i worked on server_socket but the project is changing now and i am going to work on client_socket application.

    What is the difference between SPWF01 and SPWF04 for client_socket application. Note that STM32L053R8 communicate with uart to wifi moluIe.  I will be happy to receive client_socket application compatible STM32L053/SPWF04.

    Thks

    Yoann

    yoann LBY
    Senior
    October 9, 2017
    Posted on October 09, 2017 at 09:57

    hi,

    problem fixed to modify file stm32F4xx_hal_conf.h:

    #define HSE_VALUE    ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */

    Thks

    Yoann

    Tasos Giannakakis
    Explorer
    October 16, 2017
    Posted on October 16, 2017 at 08:10

    I try to run the AZURE1_V3.0.1 example code on NUCLEO-L476RG with IDW01M1 and a I have the same issue. The code hangs in this loop

    while(IO_status_flag.WiFi_WIND_State.WiFiHWStarted != WIFI_TRUE)

       {

          __NOP(); //nothing to do

       }

    Have we resolve this issue?

    yoann LBY
    Senior
    October 16, 2017
    Posted on October 16, 2017 at 09:57

    hi,

    i use package en.x-cube-wifi1_firmware_v3.0.2.

    file wifi_module.c -> check if pin RESET is configure well and go down.

    (note than if modify code because bug! :

    //  RESET_WAKEUP_GPIO_CLK_ENABLE();

    //  __GPIOA_CLK_ENABLE();

    //  wifi_instances.GPIO_InitStruct.Pin       = WiFi_RESET_GPIO_PIN;  //bug bad init !!!

    //  wifi_instances.GPIO_InitStruct.Mode      = GPIO_MODE_OUTPUT_PP;

    //  wifi_instances.GPIO_InitStruct.Pull      = GPIO_PULLUP;

    //  wifi_instances.GPIO_InitStruct.Speed     = GPIO_SPEED_HIGH;

    //  HAL_GPIO_Init(WiFi_RESET_GPIO_PORT, &wifi_instances.GPIO_InitStruct);

     

     GPIO_InitTypeDef RESET_InitStruct;

      RESET_WAKEUP_GPIO_CLK_ENABLE();

     

      RESET_InitStruct.Pin       = WiFi_RESET_GPIO_PIN;

      RESET_InitStruct.Mode      = GPIO_MODE_OUTPUT_PP;

      RESET_InitStruct.Pull      = GPIO_NOPULL;

      RESET_InitStruct.Speed     = GPIO_SPEED_HIGH;

      HAL_GPIO_Init(WiFi_RESET_GPIO_PORT, &RESET_InitStruct);

    Check on uart module if message starter hardware is received in the buffer after a reset:

    parsing buffer Read_DMA_Buffer() is better with _v3.0.2. modificationRx  uart with DMA fix process to read Rx buffer. V3.0.1 was uart polling and sometime message was lost (ex: message WiFiHWStarted was never catch!)

    Yoann

    Raghuram Devanur
    Visitor II
    October 25, 2017
    Posted on October 25, 2017 at 15:35

    Hi,

    i am facing the same issue. I am using Nucleo-F401RE

    I am using the package 

    en.x-cube-wifi1_firmware_v3.0.2

    My software was running properly, and I was able to connect to a remote server and trasmit some data over wifi. 

    But after I performed a reset on the board, now the software is stuck at 

    while(IO_status_flag.WiFi_WIND_State.WiFiHWStarted != WIFI_TRUE)

       {

          __NOP(); //nothing to do

       }

    I did try the above mentioned changes on the RESET pin configuration. But still no success

    Any other suggestions on this?

    -Raghuram

    yoann LBY
    Senior
    October 27, 2017
    Posted on October 27, 2017 at 08:43

    hi,

    can you describe full environment you use?

    You said 'My software was running properly' and 'But after' -> What did you do/modify?

    did you check pin RESET? down/up -|_|-

    if RESET is ok, check uart config! ->

    if your software is stuck at while , it's because uart doesn't catch message '+WIND:32:WiFi Hardware Started'

    yoann

    Raghuram Devanur
    Visitor II
    November 5, 2017
    Posted on November 05, 2017 at 08:53

    Changing the 

    X-NUCLEO-IDW01M1

     solved the problem..

    Thanks 

    Raghuram