En la foto de la derecha, el héroe de la ocasión, chip PUYA P25Q80Los proveedores chinos han comenzado a usar el chip de memoria flash PUYA. Esto condujo al desglose de los controladores SPIFFS, que generalmente se utilizan para guardar la configuración en los módulos ESP8266. Muchos proyectos han sufrido. No hay solución todavía.
Esta mañana comencé con la operación de rutina de flashear el próximo lote de módulos de E / S de IO-Node. El corazón del dispositivo es el módulo ESP-07. Nada anunciaba problemas.
El primer módulo fue flasheado, iniciado, lanzado en la interfaz web. Dos salidas de relé y entradas discretas comenzaron a funcionar de inmediato. Sin embargo, al intentar encontrar sensores de temperatura de 1 cable conectados, sucedió algo extraño. IO-Node informó que se encontró y colgó un sensor.

Además, se colgó para que incluso después de reiniciar el LED de estado no parpadeara. Decir que me sorprendió es no decir nada. Volver a flashear tampoco ayudó.
Pensando que obtuve un módulo ESP-07 fallido, tomé el firmware de la próxima placa. Imagine mi sorpresa cuando el próximo tablero se comportó exactamente igual. Obviamente, esto no fue una coincidencia.
Al comenzar a depurar el código del firmware, descubrí que SPIFFS, el controlador del sistema de archivos que usamos para almacenar la configuración, no funciona.
Una búsqueda en Google mostró que este es un problema muy nuevo que apareció literalmente a principios de enero. Hay discusiones
aquí y
aquí .
La esencia del problema es que los chinos comenzaron a usar el nuevo chip de memoria flash PUYA P25Q80 (ver la primera foto). Este chip no funciona exactamente como los chips Winbond anteriores y otros.
Lo que está sucediendo exactamente aún no se comprende completamente. Se sugiere que cuando intente escribir parte del bloque de memoria, el microcircuito entre en estado de emergencia. Mientras graba todo el bloque de inmediato, funciona correctamente.
Por cierto, si coloca datos en SPIFFS durante el firmware inicial del módulo ESP, los datos del mismo se leen correctamente. Los errores ocurren solo cuando se escribe en la memoria desde el código del firmware. Pero este es un problema crítico, porque ahora es imposible guardar la configuración del usuario.
Que hacer
En este momento, nosotros, como otros usuarios de ESP8266, estamos reemplazando PUYA con chips Winbond. No hay tal problema con ellos. Y esperamos que la situación se desarrolle, de repente aparecerá un parche de software. A la larga, lanzaremos nuestro módulo o envolveremos todos estos microcircuitos en nuestra "placa base" para mantener esta situación bajo control.
Es inconveniente que cuando compre módulos no se sepa qué se le venderá: el chip está oculto debajo de una pantalla de metal y es visualmente inaccesible.