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
1 | void N_read_spare(unsigned char add2, unsigned char add3) |
2 | {
|
3 | ...
|
4 | for(int i=0; i<16; i++) |
5 | {
|
6 | PORTA &= ~(1<<RE); |
7 | RS_send(PINA); //output Data |
8 | PORTA |= (1<<RE); |
9 | }
|
10 | |
11 | N_init(); |
12 | }
|
Die beiden PORTA müssen doch sicher PORTC sein, oder? fchk
Vielen Dank fchk Die Belegung hatte ich mal anderst, deshalb hab ichs noch verkehrtrum. Ich benutze diese Funktion eigentlich nicht, da ich über die andere Read-Funktion auch die Spare-Pages lese. Ich sollte vllt. mal meinen Code ausmisten ;) mfg Michi
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.