Forum: Mikrocontroller und Digitale Elektronik Problem beim NAND-Flash ansteuern mit Mega32


von Michael S. (redrabbit)


Angehängte Dateien:

Lesenswert?

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

von Michael S. (redrabbit)


Lesenswert?

Hat echt niemand eine Idee? :(

von Frank K. (fchk)


Lesenswert?

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

von Michael S. (redrabbit)


Lesenswert?

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
Noch kein Account? Hier anmelden.