¿Por qué un chip flash SPI dejaría de funcionar después de un corto período de tiempo aleatorio pero funcionaría bien con una resistencia de 1M desde el pin de alimentación a tierra?
Estoy depurando un problema con un chip flash SPI (W25Q80) controlado por Atmega 328P a 765 KHz. El reloj SPI se detiene para funcionar después de pequeños intervalos de tiempo aleatorios (200ms-5s) o no funciona desde el encendido. Este fallo se ve como el chip que se detiene para responder en la línea MISO (la línea está flotando) donde estaba respondiendo al mismo comando justo antes de eso (el mismo ciclo de encendido).
He probado capacitores cerámicos con orificio pasante de 100 nF, 100 pF y 15 pF desde el pin de alimentación a tierra y esto no ayuda.
Luego conecté un alcance al pin de alimentación del chip flash y comenzó a funcionar.
Conectar una resistencia de 1M desde el pin de alimentación a tierra también hace que funcione.
¿Qué podría ser una explicación aquí? ¿Estoy utilizando condensadores de derivación incorrectos con ESR incorrecto y la resistencia actúa como una tapa de derivación pequeña pero suficiente con una ESR suficientemente alta?
Esto es reproducible con 2 chips, por lo que es menos probable que se deba a un chip defectuoso.
La hoja de datos del chip flash no ofrece ninguna recomendación sobre la omisión.