Hola a toda la comunidad. Estoy atravesando un extraño y raro problema y no sé si a alguno de ustedes les ha pasado trabajando con el chip ESP32, les doy el contexto.
ANTECEDENTES.
Estoy trabajando con la tarjeta de desarrollo ESP32 usando el IDE de Arduino y las siguientes URL's para la configuración de la tarjeta y poder cargar mis programas:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
https://dl.espressif.com/dl/package_esp32_index.json
Hasta hace poco la tarjeta cargaba y ejecutaba sin ningún inconveniente mis sketches; sin embargo, de imprevisto el comportamiento de la tarjeta cambio súbitamente arrojándome cada vez que quería volver a cargar un nuevo programa el siguiente mensaje en el monitor serial:
rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:4832
load:0x40078000,len:16460
load:0x40080400,len:4
load:0x40080404,len:3504
entry 0x400805cc
ets Jun 8 2016 00:22:57
rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:4832
load:0x40078000,len:16460
load:0x40080400,len:4
load:0x40080404,len:3504
entry 0x400805cc
ets Jun 8 2016 00:22:57
rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:4832
load:0x40078000,len:16460
load:0x40080400,len:4
load:0x40080404,len:3504
entry 0x400805cc
PROBLEMA ACTUAL
Este mensaje es un reinicio continuo de la tarjeta, por alguna razón lo está haciendo y no sale de esta acción. Hasta donde llega mi experiencia no he podido resolver aunque sospecho que es quizás una corrupción de la tarjeta por memoria, mas adelante aporto mas información. Actualmente, tengo la librería 3.0.5 del fabricante Espressif instalado en el IDE. Trabajo para programar la tarjeta con un FTDI FT232RL. He trabajado también con otras tarjetas ESP32 bajo el mismo escenario y no se ha presentado este problema. Me gustaría ahondar mas en este tema ya que la tarjeta funciona pues puedo controlar pines de E/S con leds por lo que al ver este comportamiento sigo sin entender que sucede.
He buscado e investigado información sobre las posibles causas, algunas de las que he encontrado en varios foros y blogs las siguientes:
- Problema de la frecuencia de flasheo al momento de subir el sketch, recomiendan bajar de 80MHz a 40MHz, realice pruebas y el problema persiste.
- Algunos blogs mencionan que es un tema de alimentación, en lo personal a mi no me lo parece dado que funciona con otros programas que no impliquen la instalación de un webserver o conexión con red wifi.
- Sugieren la actualización del core de la tarjeta pero, como mencione previamente, tengo la ultima reciente 3.0.5 del fabricante Espressif y que,dicho sea de paso, funciona con otras tarjetas sin mayores problemas.
Algo que si debo mencionar es que todas las veces que cargo mis programas a la tarjeta uso un jumper para poner en corto los pines ID0 y GND para ponerla en modo de programación; además de que cuando se presentó este problema por primera vez tuve el siguiente error que guarde en mis bitácoras:
rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:4832
load:0x40078000,len:16460
load:0x40080400,len:4
load:0x40080404,len:3504
entry 0x400805cc
[+]: Comienza proceso de configuración y conexión de la red WiFi.
Guru Meditation Error: Core 0 panic'ed (IllegalInstruction). Exception was unhandled.
Memory dump at 0x4019446c: 0a6c83a2 d0f95844 f2568324
Core 0 register dump:
PC : 0x40194470 PS : 0x00060430 A0 : 0x80194644 A1 : 0x3ffcc920
A2 : 0x00000000 A3 : 0x00000001 A4 : 0x00000001 A5 : 0x00000000
A6 : 0xffffffb5 A7 : 0x00000000 A8 : 0x00000016 A9 : 0x00000021
A10 : 0xffffffe0 A11 : 0x0000007f A12 : 0x3ffcad7e A13 : 0x00000016
A14 : 0x00000000 A15 : 0x0000002b SAR : 0x00000007 EXCCAUSE: 0x00000000
EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0x00000000
Backtrace: 0x4019446d:0x3ffcc920 0x40194641:0x3ffcc980 0x4019479b:0x3ffcc9d0 0x401915ea:0x3ffcc9f0 0x4019244b:0x3ffcca10 0x40153e29:0x3ffccb10 0x40153ebf:0x3ffccb40 0x4013a651:0x3ffccb60 0x401700ce:0x3ffccb80 0x4017098d:0x3ffccba0 0x4016e9f2:0x3ffccbc0 0x401ac731:0x3ffccbe0 0x40093e92:0x3ffccc10
He documentado lo mejor que he podido acerca de este problema esperando poder encontrar una solución y poder rescatar este hardware así como apoyar a quienes estén atravesando por algo similar. Desde ya muchas gracias por cualquier aporte que nos permita resolver este dilema.
Saludos a la comunidad.
Moderador
Todo lo que sea error o información del monitor serie que contribuye a encontrar un error va con etiquetas de código. Ya lo he modificado.