cancel
Showing results for 
Search instead for 
Did you mean: 

X-CUBE-WIFI1 with STM32F070

TRand.1
Associate

Hello,

I am trying to develop an application with the X-NUCLEO-IDW04A1 Wi-Fi evaluation board on a STM32F070 microcontroller. I downloaded the expansion package X-CUBE-WIFI1 that provides implementations for STM32L0, L4, F1 and F4 but not on my target NUCLEO.

I tried to adapt the ST package for my MCU and changed some functions and declarations. I mostly modified the declarations within the stm32_spwf_wifi.h header and I can now run an example from the package without the compiler having any issues.

I'm using the HTTP-request example from the expansion package to test my adjustment of the ST package. After some modifications to suit the STM32F070, I am able to build and push my project on my MCU with the following parameters:

  • I'm using the UART bus to communicate with the Wi-Fi module (SPWF04SA) (baudrate 115200)
  • The jumpers JP10, JP11, JP12, JP13 are in the UART default jumper configuration
  • I'm using the USART2 peripheral to communicate with my computer via a serial console

When I run the example project, I get stuck in the wifi_reset() function in the beginning of the program (this function is called during the initialisation of the Wi-Fi module) :

 while(IO_status_flag.WiFi_WIND_State != WiFiHWStarted)
   {
     __NOP(); //nothing to do
   }

It seems like the expansion board never let the MCU know that it has restarted. I can tell from the X-NUCLEO-IDW04A1's LEDs' behavior that its reset occurs normally but it never updates its status to the MCU.

I'm not used to the STM32 environment, but I believe that the WiFi_WIND_State variable is updated by the Process_DeQed_Wind_Indication() function which is called during an interruption produced by one of the timer of the board. This function uses a buffer (wifi_instances.event_buff) to read the data sent by the expansion board between two interruptions but it remains empty even after the reset of the Wi-Fi module.

After some research, I found some people dealing with the same issue with other NUCLEOs (stuck in the wifi-reset() function) and manage to resolve it by updating their Wi-Fi module's firmware, I came to think that updating mine could help, do you think that it could resolve my problem?

Why does the buffer remain empty? Please, provide me with any tips. The problem probably comes from my modification of the expansion package, I can submit it if it's necessary.

Regards,

TR

2 REPLIES 2
Mridupawan Das
Associate II

Hi,

this product is no longer supported and is discontinued. The last SW delivery for this product was in 2017, so support is difficult.

However I can try to provide some comments from your experiments.

The IDW04A1 supports both SPI and USART, so maybe using SPI as comm mode with MCU is more beneficial in terms of performance.

However UART will work fine for low data rate use-cases.

The wifi_instances.event_buff is filled with events of struct wifi_event_TypeDef and another buffer ring_buffer which is the raw data coming through UART.

You can check if there is any data in ring_buffer. If not it probably means that UART communication has some issue.

Maybe the correct GPIO pins are not being set relative to the MCU board which you are using (STM32F070)?

So basically trying to narrow down the possibilities.

CSeid.1
Associate II

Hello TR,

where have you downloaded the X-CUBE-WIFI1 expansion pack? I also want to develop an application with the X-NUCLEO-IDW04A1 Wi-Fi evaluation board but can't find the Software package.

Please help...

Thanks in advance,

regards

Christian