Novas revisões dos módulos baseados no ESP8266 não podem gravar no SPI Flash


Na foto à direita - o herói da ocasião, chip PUYA P25Q80

Os fornecedores chineses começaram a usar o chip de memória flash PUYA. Isso levou à quebra dos drivers SPIFFS, que geralmente são usados ​​para salvar as configurações nos módulos ESP8266. Muitos projetos sofreram. Ainda não há solução.


Esta manhã, comecei com a operação rotineira de piscar o próximo lote de módulos de E / S de IO-Node. O coração do dispositivo é o módulo ESP-07. Nada significava problemas.

O primeiro módulo foi exibido, iniciado, lançado na interface da web. Duas saídas de relé e entradas discretas começaram a funcionar imediatamente. No entanto, ao tentar encontrar sensores de temperatura de 1 fio conectados, algo estranho aconteceu. O IO-Node informou que um sensor foi encontrado e travado.



Além disso, ele travou para que, mesmo após uma reinicialização, o LED de status não piscasse. Dizer que fiquei surpreso é não dizer nada. Voltar a piscar também não ajudou.

Pensando que recebi um módulo ESP-07 com falha, peguei o firmware da próxima placa. Imagine minha surpresa quando o próximo quadro se comportou exatamente da mesma maneira. Obviamente, isso não foi uma coincidência.

Começando a depurar o código do firmware, descobri que o SPIFFS, o driver do sistema de arquivos que usamos para armazenar configurações, não funciona.

Uma pesquisa no Google mostrou que esse é um problema muito novo que apareceu literalmente no início de janeiro. Há discussões aqui e aqui .

A essência do problema é que os chineses começaram a usar o novo chip de memória flash PUYA P25Q80 (veja a primeira foto). Este chip não funciona exatamente como os chips Winbond anteriores e outros.

O que exatamente está acontecendo ainda não está totalmente esclarecido. Sugere-se que, ao tentar gravar parte do bloco de memória, o microcircuito entre em condição de emergência. Enquanto grava todo o bloco imediatamente, ele funciona corretamente.

A propósito, se você colocar dados no SPIFFS durante o firmware inicial do módulo ESP, os dados serão lidos corretamente. Os erros ocorrem apenas ao gravar na memória a partir do código do firmware. Mas este é um problema crítico, porque agora é impossível salvar as configurações do usuário.

O que fazer

No momento, nós, como outros usuários do ESP8266, estamos substituindo o PUYA por chips Winbond. Não existe esse problema com eles. E esperamos que a situação se desenvolva - de repente um patch de software aparecerá. A longo prazo, lançaremos nosso módulo ou envolveremos todos esses microcircuitos em nossa "placa-mãe" para manter essa situação sob controle.

É inconveniente que, quando você compra módulos, não se sabe o que lhe será vendido - o chip está oculto sob uma tela de metal e é visualmente inacessível.

Source: https://habr.com/ru/post/pt409911/


All Articles