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
...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
Versuch doch erst einmal die ID des NAND auszulesen. Kommt da was sinnvolles zurück?
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(); }
das sezt das steuerregister auf folgende werte: _WP = 1 _WE = 1 CLE = 0 ALE = 0 _CE = 0 _RE = 1
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..
Oh, hast recht! also im anhang der veränderte code - zeigt leider weiterhin die selben symptome ...
Ok, was ich jetzt noch versuchen wuerde waere, Warte-Zeiten zwischen den Bit-Ops einzufuegen, um Timing-Probleme auszuschliessen.
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...
hm, das problem besteht weiterhin und mir gehen echt die ideen aus...
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!!!
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.
...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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.