Nun, ich hänge schon eine Weile daran fest, vielleicht 2-3 Wochen an diesem Punkt. Ich bin mir einfach nicht sicher, was ich falsch mache. Ich versuche, in diesen Spi-Flash-Teil zu schreiben , und jetzt führe ich nur Routinen zum Löschen, Schreiben und Lesen aus, um zu versuchen, ihn zu isolieren, aber bisher kein Glück. Natürlich habe ich auf dem Weg ein paar Fehler behoben ...
Wie auch immer, ich habe meine WP-Leitung hoch auf dem Brett gebunden, und ich habe den Takt auf 200 kHz verlangsamt, dann führe ich meine Löschroutine aus und es sieht so aus:
Zuerst überprüfe ich die ID nur für Debug, das ist der 9F-Befehl, dann setze ich WREN mit dem 06-Befehl, C7 ist der gesamte Chip-Löschvorgang, und dann überprüfe ich das Statusbit mit 05 und es ist klar. Die Chip-Löschzeit dieses Dings beträgt nur 35 ms.
Jetzt lade ich meinen Code neu und versuche einen Schreibvorgang:
Zuerst setze ich WREN mit 06, überprüfe den Status, um zu sehen, dass WREN mit 05 gesetzt ist, es ist, dann sende den Seitenprogrammbefehl 02 an Adresse 0x000000. Sie können sehen, dass ich Deadcafe als die ersten paar Bits schreibe. Auch hier nicht abgebildet ist, dass ich nach Abschluss des Schreibvorgangs (eine Seite oder 256 Bytes) den 0x04-Befehl sende, um WREN zu deaktivieren. Ich habe das beobachtet und die letzten vier Bytes meines Seitenpuffers auf 0xAA, 0x55, 0xAA, 0x55 gesetzt, und ich habe sie gesehen, kurz bevor der CS hoch geht.
Stoppen Sie nun den Reload-Code und versuchen Sie, einen Lesezyklus auszuführen: Senden Sie 0x03 als Lesebefehl und 0x000000 als Adresse und ... alle 0xFF vom Gerät zurück.
Ich kann sehen, wie das Gerät auf meine Lese-ID antwortet, und WREN-Befehle festlegen, damit ich weiß, dass es mich hört und antworten kann. Ich weiß nicht, was ich an dieser Stelle falsch mache. Ich denke, ich werde wieder das Datenblatt lesen und einige Dinge ausprobieren, aber wenn jemand einen Einblick hat, würde ich mich über die Hilfe freuen. Es entwickelt sich ein weiteres frustrierendes Wochenende, an dem ich an diesem Ding arbeite.
Ich hasse es nur, dass dies immer noch ganz oben auf der Liste der „unbeantworteten“ steht, also werde ich antworten.
Wie in den Kommentaren von 'confused' angegeben, gibt es einen Befehl namens 'Global Unlock', der vor dem Schreiben in den Flash-Teil ausgeführt werden muss.
verwirrt
geometrisch
Benutzer.1
Erik Friesen
bitsmack
Spannungsspitze