Hallo, ich verwende ein AT45DB642D von Atmel als Speicher von Code und Daten für das Mikrocontroller-Programm. Dafür habe ich einen Treiber zum Lesen/Schreiben/Löschen von Daten vom Flash über SPI geschrieben. Habe mir auch das Datenblatt und die Application Notes durchgesehen und denke, dass ich die Ansteuerung grundsätzlich in Ordnung mache. Bei normalem Betrieb wird nur beim Hochfahren vom Flash gelesen und nichts mehr geschrieben bzw. gelöscht. Jetzt kommt es jedoch dabei manchmal vor, dass der Inhalte von einer einzelnen Seite des Flashs verloren geht und dann alle Bytes 0 sind (Flash hat 8192 Seiten zu 1056 Bytes). Hat jemand eine Idee, was hier die Ursache ist? Ich habe mir jetzt noch einmal alles angesehen bzw. gemessen: - Spannunsversorgung - Verhalten beim Ein-/Ausschalten der Versorgung - Kommandierung (Verwendung der Befehle, Reihenfolge,...) - etc. Werde jetzt die Write-Protection in Hardware (mittels WP-Leitung von Flash) implementieren und ausprobieren ob es das Problem löst.
Gast
#2720839
moin, ist es immer die selbe (welche?) Seite?
Martin Steininger schrieb: > dass der Inhalte von einer einzelnen Seite des Flashs verloren geht > und dann alle Bytes 0 sind (Flash hat 8192 Seiten zu 1056 Bytes). > > Hat jemand eine Idee, was hier die Ursache ist? Ich tippe auf Software. Denn einfach nur "gelöscht" bedeutet, dass lauter 0xff drin stehen (gelöschtes Bit = 1, gelöschtes Byte = 0xff)! Wenn du also wirklich Nullen hast, dann hat die jemand willentlich reingeschrieben...
Nein, die Seite ist immer eine andere!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.