Forum: Mikrocontroller und Digitale Elektronik Hynix NAND-Flash an MSP430


von Xin T. (bakunin)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

Ich bin jezt schon ein paar Tage dabei einen Hynix NAND an meinen MSP 
anzuschliessen und habe dabei gewisse probleme - hatt jmd hier schonmal 
sowas gemacht? - Konkret habe ich folgende Fragen:

ist es möglich _CE (Chip Enable)  einfach dauerhaft auf low zu lassen? 
(ist active low)

im anhang befindet sich der komplette befehlssatz für meinen flash in c 
übertragen - Leider bin ich nicht in der lage mittels ProgrammBytes() 
und Read_Bytes() daten von WRITE_BUF [BUF_SIZE] über den Flash in 
READ_BUF [BUF_SIZE] zu schieben, oder mit Read_ID() die ID auszulesen.

Hatt jemand Hinweise?

Gruß,

Bakunin

von Xin T. (bakunin)


Lesenswert?

...da auch die anderen Funktionen (zB Read_Status()) auch komplett nicht 
funktionieren stehe ich echt zzt auf dem schlauch...

ist sowas wie ein write-enable wie beim internen flas nötig? - das 
datenblatt meines HY27UF084g2b sagt da eigentlich nichts von...

- das einzige was ich mit Read_Data() zurück bekomme ist der inhalt 
meines Datenregisters, also beispielsweise den zulezt gesendeten 
befehl...

hatt keiner hier jehmals nen NAND-Flash angesteuert?

gruß

Bakunin

von moa (Gast)


Lesenswert?

Versuch doch erst einmal die ID des NAND auszulesen.
Kommt da was sinnvolles zurück?

von Xin T. (bakunin)


Lesenswert?

hi,

nein- da kommt nichts zurück als halt 0x00 in allen verwendeten 
variablen :(

code für die funktion:

void Read_ID(void)
{
  P2OUT |= 0x23;

  P2OUT |= CLE;
  P2OUT &= ~_CE;
  Write_Data(0x90);
  P2OUT &= ~CLE;

  P2OUT |= ALE;
  Write_Data(0x00);
  P2OUT &= ~ALE;

  MakerCode=Read_Data();
  DeviceCode=Read_Data();

  Cycle3=Read_Data();
  Cycle2=Read_Data();
  Cycle1=Read_Data();

}

von moa (Gast)


Lesenswert?

Was macht:
1
P2OUT |= 0x23;
?

von Xin T. (bakunin)


Lesenswert?

das sezt das steuerregister auf folgende werte:

_WP = 1

_WE = 1

CLE = 0

ALE = 0

_CE = 0

_RE = 1

von moa (Gast)


Lesenswert?

Mmmmh:

P2OUT |= 0x23; odert halt die Werte drauf, versuch mal eine Zuweisung, 
um einen definierten Zustand zu schaffen.

Du hast wahrscheinlich schon einiges versucht. Die Anweisungen sehen ja 
auf den ersten Blick korrekt umgesetzt (zum Datenblatt) aus..

von Xin T. (bakunin)


Angehängte Dateien:

Lesenswert?

Oh, hast recht! also im anhang der veränderte code

- zeigt leider weiterhin die selben symptome ...

von moa (Gast)


Lesenswert?

Ok, was ich jetzt noch versuchen wuerde waere, Warte-Zeiten zwischen den 
Bit-Ops einzufuegen, um Timing-Probleme auszuschliessen.

von Xin T. (bakunin)


Lesenswert?

alles klar- das hatte ich bis jezt nicht gemacht, da ich zzt mit 1 MHz 
Systemtakt arbeite, die zeitl. mindestabstände aber im bereich von 
nanosekunden liegen -sprich: ich dachte ich bin eh zu langsam für 
timing-probleme...

von Xin T. (bakunin)


Lesenswert?

hm, das problem besteht weiterhin und mir gehen echt die ideen aus...

von moa (Gast)


Lesenswert?

Mit 'nem LogicAnalyzer ran und von aussen messen.

von Xin T. (bakunin)


Lesenswert?

Das blöde ist, dass mein flash zusammen mit dem MSP auf ner Platine 
verlötet ist- da bekomme ich keinen analyzer zwischengeklemmt :(

- ich hoffe daher fast, dass es sich um einen fehler handelt der sich 
nicht beim eigentlichen ablauf der kommunikation eingeschichen hatt...

hatt jemand ideen?

danke an moa für die unterstützung bis jezt!!!

von JohnDoe (Gast)


Lesenswert?

Es gibt bei Reichelt (für 6.- pro Stück oder so) Logic Analyzer Klemmen 
die auch für sehr feinen Pitch noch gut geeignet sind.

Oder du lötest an alle relevanten Pins vom NAND chip feine Drähte und 
gehst mit dem Logic Analyzer an diese Drähte.

von Xin T. (bakunin)


Lesenswert?

...ok, besagtes board mit dem flash drauf hatt nen fehler - das 
Datenregister war falsch am msp angeschlossen  :D

gruß und danke nochmal

-Bakunin

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.