Bueno, he estado atrapado en esto por un tiempo, tal vez 2-3 semanas en este punto. Simplemente no estoy seguro de lo que estoy haciendo mal. Estoy tratando de escribir en esta parte de spi flash , y ahora solo estoy ejecutando rutinas para borrar, escribir y leer para tratar de aislarlo, pero hasta ahora no tengo suerte. Por supuesto, he resuelto un montón de errores en el camino ...
De todos modos, tengo mi línea WP atada en lo alto del tablero, y reduje la velocidad del reloj a 200 kHz, luego ejecuto mi rutina de borrado y se ve así:
Primero verifico la ID solo para depurar, ese es el comando 9F, luego configuro WREN con el comando 06, C7 es todo el borrado del chip, y luego verifico el bit de estado con 05 y está claro. El tiempo de borrado de chips de esta cosa es de solo 35 ms.
Ahora recargo mi código e intento escribir:
Primero configuré WREN con 06, verifiqué el estado para ver que WREN está configurado con 05, y luego envié el comando de programa de página 02 a la dirección 0x000000. Puedes ver que estoy escribiendo deadcafe como los primeros bits. Tampoco se muestra aquí después de que se completa la escritura (una página o 256 bytes), envío el comando 0x04 para deshabilitar WREN. Lo he observado y configuré los últimos cuatro bytes del búfer de mi página para que sean 0xAA, 0x55, 0xAA, 0x55 y los vi justo antes de que el CS suba.
Ahora pare el código de recarga e intente ejecutar un ciclo de lectura: envíe 0x03 como el comando de lectura y 0x000000 como la dirección, y ... todo 0xFF desde el dispositivo.
Puedo ver el dispositivo respondiendo a mi ID de lectura y configurar los comandos WREN para que sepa que me escucha y puedo responder. No sé qué estoy haciendo mal en este momento. Creo que volveré a leer la hoja de datos y probaré algunas cosas, pero si alguien tiene alguna idea, agradecería la ayuda. Se perfila como otro fin de semana frustrante trabajando en esto.