Beh, sono stato bloccato su questo per un po ', forse 2-3 settimane a questo punto. Non sono sicuro di cosa sto facendo di sbagliato. Sto provando a scrivere su questa parte di spi flash , e ora sto solo eseguendo routine per cancellare, scrivere e leggere per cercare di isolarlo, ma finora senza fortuna. Ovviamente ho risolto un sacco di bug lungo la strada ...
Comunque ho la mia linea WP legata in alto sul tabellone e ho rallentato il clock fino a 200 khz, quindi ho eseguito la mia routine di cancellazione e sembra così:
Prima controllo l'ID solo per il debug, questo è il comando 9F, quindi ho impostato WREN con il comando 06, C7 è l'intero chip-cancella, quindi controllo il bit di stato con 05 ed è chiaro. Il tempo di cancellazione del chip di questa cosa è di soli 35 ms.
Ora ricarico il mio codice e provo a scrivere:
Prima ho impostato WREN con 06, controllare lo stato per vedere che WREN è impostato con 05, lo è, quindi inviare il comando 02 del programma di pagina all'indirizzo 0x000000. Puoi vedere che scrivo deadcafe come i primi bit. Anche qui non è raffigurato dopo il completamento della scrittura (una pagina o 256 byte), invio il comando 0x04 per disabilitare WREN. L'ho osservato e ho impostato gli ultimi quattro byte del mio buffer di pagina su 0xAA, 0x55, 0xAA, 0x55 e li ho visti appena prima che il CS salisse.
Ora interrompi il caricamento del codice e prova a eseguire un ciclo di lettura: invia 0x03 come comando di lettura e 0x000000 come indirizzo e ... tutti 0xFF indietro dal dispositivo.
Riesco a vedere il dispositivo che risponde al mio ID di lettura e impostare i comandi WREN in modo da sapere che mi sente e può rispondere. Non so cosa sto sbagliando a questo punto. Immagino che tornerò a leggere il foglio dati e provare alcune cose, ma se qualcuno ha qualche idea apprezzerei l'aiuto. Si sta preparando per essere un altro weekend frustrante a lavorare su questa cosa.