Skip to main content
stefano23
Associate II
April 4, 2016
Question

Module soft reset

  • April 4, 2016
  • 11 replies
  • 3343 views
Posted on April 04, 2016 at 10:15

Good morning to all,

  I have a little problem with my module. After a filesystem update I send the command AT+CFUN=1 to reset the module. The module return OK, return ''+WIND:2:Reset'' but don't resect. Why?

Stefano

#spwf01sa #bug
This topic has been closed for replies.

11 replies

Gerardo GALLUCCI
ST Employee
April 4, 2016
Posted on April 04, 2016 at 10:23

ciao Stefano,

please be sure that boot pin is not high after reset

j

stefano23
stefano23Author
Associate II
April 4, 2016
Posted on April 04, 2016 at 10:30

Boot pin is left floating and the mosule starts correctly after an hard reset. Only the soft reset fail.

Stefano
Gerardo GALLUCCI
ST Employee
April 5, 2016
Posted on April 05, 2016 at 16:00

No idea :(

can I have the serial number of the module?

configuration variable called ''nv_serial''

stefano23
stefano23Author
Associate II
April 7, 2016
Posted on April 07, 2016 at 15:08

Serial number is 2015D02659.

Stefano
Gerardo GALLUCCI
ST Employee
April 7, 2016
Posted on April 07, 2016 at 15:58

Checked production logs. Module was sane.

You can contact your local ST distributor to replace current broken module (and open a failure analysis on bad part you have).

Before, please be sure that HW (board) is sane. Test module's pins. Check I/O levels (mainly Reset line).

Only for debugging purpose: is there the same behavior when different baudrate is set? Do you notice the same problem working on different environment (change PC, change serial tool, change eval-board, change module)?

Let me know

j

daniil
Associate II
July 25, 2016
Posted on July 25, 2016 at 10:54

Hi!

I've found the same problem after upgrading firmware from 3.3 to 3.5...

After sending the command AT+CFUN=1 (0..4, doesn't matter) my SPWF01 answers:

+WIND:2:Reset and ...NOMORE. It does not response on any console commands. It seems to be ''hang on''.

How can I fix this bug?

Gerardo GALLUCCI
ST Employee
July 27, 2016
Posted on July 27, 2016 at 11:27

Hi Daniel,

are you facing this problem on evaluation board, or your custom board? My suspect is on boot or reset pins, since module is correctly rebooting. In the first case, STM32 bootloader is running in place or wifi application FW, in the second case, STM32 is on reset line. Please use an oscilloscope to monitor boot/reset lines.

If you see this problem on evaluation board, please contact your local ST distributor.

Regards

jerry

daniil
Associate II
July 28, 2016
Posted on July 28, 2016 at 11:56

Hi, Jerry!

Thank you for your answer.

At first, I use SPWF on my custom board. I attached a piece of circuit.

At second, I used a scope to monitor RESET and BOOT pins.

There are results.

BOOT: 0V before using AT+CFUN=1. 0V after. No reaction.

RESET: 3.3V before. And It get down to 2.8V after! And It stays on this voltage level continuously. While I do not press RESET button.

May be It is a key to solve the problem?

Best regards, Daniel.

________________

Attachments :

SPWF_connection_circuit.png : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006I1Qg&d=%2Fa%2F0X0000000bmt%2FL3pA3hYzests_XfV5icD3LL3HXEXnS_3KLSt6jHpg5w&asPdf=false
Gerardo GALLUCCI
ST Employee
July 28, 2016
Posted on July 28, 2016 at 18:57

Hi Daniel,

I think that's the key. HW reset works because your 0.1uF capacity is empty...

What about your externam MCU output pin? Push-Pull or OpenDrain? Try to leave it floating while running a SW reset.

j

daniil
Associate II
August 1, 2016
Posted on August 01, 2016 at 11:50

Hi, Jerry!

I've fixed the problem.

At first, yes, the external MCU pin is open-drain.

I've tried to reconfigure this pin to Hi-Z input state and the module became to work

correctly with AT+CFUN=1 command.

I guess that there is a

specialty of reset circuit of the module.

Thank you for your help.

Best regards,

Daniel

Fede Rico
Associate III
April 20, 2018
Posted on April 20, 2018 at 10:26

Hello Daniel,

I had the same problem for two day! And thanks for your suggestion to put the reset GPIO in Hi-Z!!!

In fact the ST middleware after each reset de-initialize the reset GPIO

 RESET_WAKEUP_GPIO_CLK_ENABLE();
 __GPIOA_CLK_ENABLE();
 /* GPIO initialization performed into main by Cube32Mx */
 wifi_instances.GPIO_InitStruct.Pin = WiFi_RESET_GPIO_PIN;
 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);
// IO_status_flag.WiFi_WIND_State.WiFiHWStarted = WIFI_FALSE;
 wifi_connected = 0; //reset wifi_connected to get user callback
// memset((void*)&IO_status_flag.WiFi_WIND_State,0x00,sizeof(IO_status_flag.WiFi_WIND_State)); /*reset the WIND State?*/
 IO_status_flag.WiFi_WIND_State = Undefine_state;
 /* === RESET PIN - PC12 ===*/
 HAL_GPIO_WritePin(WiFi_RESET_GPIO_PORT, WiFi_RESET_GPIO_PIN, GPIO_PIN_RESET);
 HAL_Delay(200);
 /* === SET PIN - PC12 ===*/
 HAL_GPIO_WritePin(WiFi_RESET_GPIO_PORT, WiFi_RESET_GPIO_PIN, GPIO_PIN_SET);
 HAL_Delay(50);
 
 HAL_GPIO_DeInit(WiFi_RESET_GPIO_PORT, WiFi_RESET_GPIO_PIN);�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?

In my code, I used a custom reset function and the WiFi module stucks after soft-reset.

I reused the ST reset function and everything works!

Thank a lot!

Best Regards,

Federico