Kann nicht scheinen, zu spi flash zu schreiben

9

Nun, ich habe eine Weile daran festgehalten, vielleicht 2-3 Wochen an diesem Punkt. Ich bin mir nur nicht sicher, was ich falsch mache. Ich versuche, in diesen SPI-Flash-Teil zu schreiben , und jetzt führe ich nur Routinen aus, um ihn zu löschen, zu schreiben und zu lesen, um zu versuchen, ihn zu isolieren, aber bisher kein Glück. Natürlich habe ich ein paar Fehler auf dem Weg behoben ...

Wie auch immer, ich habe meine WP-Leitung hoch auf dem Brett gebunden und die Uhr auf 200 kHz verlangsamt. Dann führe ich meine Löschroutine aus und es sieht so aus:

Geben Sie hier die Bildbeschreibung ein Zuerst überprüfe ich die ID nur für das Debuggen, das ist der 9F-Befehl, dann setze ich WREN mit dem Befehl 06, C7 ist das vollständige Löschen des Chips, 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 zu schreiben:

Geben Sie hier die Bildbeschreibung ein Zuerst setze ich WREN mit 06, überprüfe den Status, um festzustellen, ob WREN mit 05 eingestellt ist, und sende dann den Seitenprogrammbefehl 02 an die 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 Befehl 0x04 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 das Neuladen des Codes und versuchen Sie, einen Lesezyklus Geben Sie hier die Bildbeschreibung ein 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 reagiert, und WREN-Befehle festlegen, damit ich weiß, dass es mich hört und antworten kann. Ich weiß derzeit nicht, was ich 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 wird ein weiteres frustrierendes Wochenende, an dem wir an dieser Sache arbeiten.

verwirrt
quelle
10
Und ... ich habe es herausgefunden. Wenn ich für jedes Mal einen Dollar hätte, hätte ich etwas herausgefunden, nachdem ich endlich verzweifelt genug war, irgendwo um Hilfe zu posten. Es stellt sich heraus, dass es einen anderen Befehl 0x98 namens Global Unlock gibt, der in den Abschnitten über Schreibfreigabe oder Programmierung nicht erwähnt wird. Entschuldigung für die Mühe.
verwirrt
10
Fügen Sie Ihren Kommentar als Antwort hinzu und akzeptieren Sie ihn.
geometrisch
Stimmen Sie mit @geometrikal überein, dass Sie Ihre eigene Frage beantworten sollten. Ich hatte nur Probleme mit der PIC SPI-Schnittstelle. aus genau den gleichen Gründen: die Dokumentation.
User.1
2
Hallo! Sie haben vor ungefähr einem Jahr eine gute Frage gestellt und dann in den Kommentaren eine gute Antwort gepostet. Aber die Frage taucht immer noch ganz oben auf der Liste "Unbeantwortet" auf! Bitte kopieren Sie Ihre Kommentare in eine Antwort und markieren Sie sie als "Akzeptiert". Auf diese Weise wird es korrekt verwaltet und wir können Ihre Antwort
positiv
1
@confused bitte posten Sie Ihre Antwort und markieren Sie sie als beantwortet, damit wir die Frage schließen können, Danke
Voltage Spike

Antworten:

3

Ich hasse es einfach, dass dies immer noch ganz oben auf der "unbeantworteten" Liste steht, also werde ich antworten.

Wie in den Kommentaren von "verwirrt" angegeben, gibt es einen Befehl namens "Global Unlock", der ausgeführt werden muss, bevor in den Flash-Teil geschrieben wird.

leicht verwirrt
quelle
1
Sie sollten Ihre Antwort akzeptieren, sonst wird diese Frage weiterhin als "unbeantwortet" markiert.
Étienne