cancel
Showing results for 
Search instead for 
Did you mean: 

wifi_reset Problem with IDW01M1

arturdav87
Associate II
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.
33 REPLIES 33
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

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

Posted on May 05, 2017 at 06:57

Hi,

there is no issue with switching to SPWF04 and there is no real difference between the client socket applications.

The parser is different for SPWF01 and SPWF04, but we are going to make it same shortly and we are finalizing the new parser for SPWF04 which we will then extend to SPWF01. You can also exploit SPI interface with SPWF04 instead of UART.

We will provide you boiler plate code on L0+SPWF04 (outside package) so that you can start using it quickly.

regards,

Mridu

Posted on August 03, 2017 at 17:06

I contact you in direct.

I post a message on the STM forum but no response

Support ST in france say me to try to contact you .

I have some problem:

i work on WIFI module SPWF04SA and SMT32F401RE with STM32CubeExpansion_WIFI_V3.0.2 (app client_Socket + MDK-ARM V5.22.0.0).

i would like to migrate to STM32F401RB on my board but i have some issues! 

Pb1: i migrated RE to RB (source CubeMx V4.21.0)

startup_stm32f401xe.s -> startup_stm32f401xc.s

system_stm32f4xx.c -> new system_stm32f4xx.c

stm32_xx_it.c ->  i keep stm32_xx_it.c

STM32F4xx_HAL_Driver -> new STM32F4xx_HAL_Driver 

option target (stm32F401RETx -> STM32F401RB, Xtal = 84Mhz)

i miss something? It doesn’t work

I keep STM32CubeExpansion_WIFI_V3.0.2 (app client_Socket + MDK-ARM V5.22.0.0) I keep STM32F401RE in keil setting and just the size of memory and it work for the moment but I would like to have a setup correct with a STM32F401RB

Pb2: i use external clock 8Mhz and code generated with CubeMx doesn't work!

internal clock with HSI works!! 

fct SystemClock_Config(): 84Mhz with HSE

RCC_OscInitTypeDef RCC_OscInitStruct;   RCC_ClkInitTypeDef RCC_ClkInitStruct;

    /**Configure the main internal regulator output voltage     */   __HAL_RCC_PWR_CLK_ENABLE();

  __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE2);

/* Enable HSI Oscillator and activate PLL with HSI as source */

  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;

  RCC_OscInitStruct.HSIState = RCC_HSI_ON;

  RCC_OscInitStruct.HSICalibrationValue = 0x10;

  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;

  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;

  RCC_OscInitStruct.PLL.PLLM = 16;

  RCC_OscInitStruct.PLL.PLLN = 336;

  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;

  RCC_OscInitStruct.PLL.PLLQ = 7;

  HAL_RCC_OscConfig(&RCC_OscInitStruct);

//  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;

//  RCC_OscInitStruct.HSEState = RCC_HSE_ON;

//  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;

//  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;

//  RCC_OscInitStruct.PLL.PLLM = 8;

//  RCC_OscInitStruct.PLL.PLLN = 336;

//  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4;

//  RCC_OscInitStruct.PLL.PLLQ = 4;

//            HAL_RCC_OscConfig(&RCC_OscInitStruct);

+ fct SystemCoreClockUpdate();

Pb3: pin RESET PA8 to PC12 locked. i modified fct wifi_reset() declaration of pin wifi_instances_t wifi_instances; by GPIO_InitTypeDef  RESET_InitStruct; to configure correctly pin RESET to PC12. Why configuration PC12 is locked (locked to PAx)

I re define GPIO_InitTypeDef  RESET_InitStruct intead of wifi_instances_t wifi_instances;

And it work!!

Thanks for your help

Posted on August 03, 2017 at 17:16

PB2: Make sure HSE_VALUE defined in project matches your external source. Make sure the external source starts and is functional, emit via MCO (PA8) to check internal clocks.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
yoann LBY
Senior
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
Associate
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?

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

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
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