Hi und nen schönen Samstag...
Ich versuche seit einiger Zeit einen 16MB NAND-Flash von Hynix
(HY27US08281A) mit einem Mega32 über die RS232-Schnitstelle zu
beschreiben und auszulesen.
PC-seitig nutze ich das Diagnosetool hTerm um mit dem Controller zu
kommunizieren.
Mein Ziel ist es den Inhalt einer BIN-Datei auf den NAND zu schreiben,
welches ein komplettes 1:1 Abbild darstellt (Auch Sparepages mit
Badblockinformationen).
Zu Testzwecken habe ich mir einen neuen NAND gekauft und auf eine
Trägerplatine gelötet.
Das beschreiben, auslesen und löschen ein kompletten Page (527 Byte)
klappt mit ASCII-Text schon ganz gut. (Hab mir einfach 527 Zeichen aus
Wikipedia kopiert)
Aber als ich eine JPG-Datei, bzw. die ersten 527 Byte davon, auf eine
Page schreiben und wieder auslesen wollte, fehlten einige Byte.
Es scheint so, als ob z.b. bei der Folge "00 FF" das FF einfach
übergangen wird.
Daraufhin habe ich ein Testmuster auf den NAND geschreiben. Es besteht
aus: " [0-255], 00, FF ". (Muster2_1.bin)
Auslesen konnte ich allerdings nur "Muster2_1__returned.bin".
Ich erkenne kein Muster dahinter erkennen, welche Bytes dazu führen,
dass z.b. ein FF einfach ignoriert wird. Die FFs am Ende der Datei
kommen daher, dass dem Controller mitgeteilt wird, wieviele Bytes er
lesen soll und das auchnoch tut, wenn der NAND keien neuen Daten mehr
ausgibt.
Kann mir vllt. Irgendjemand sagen, wie es zu einem so merkwürdigen
Fehler kommen kann?
(den Quellcode meines µC-Programmes habe ich auch mal angehängt)
mfg
Michi