Hallo Leute, ich versuche einen 29F040 zu beschreiben. Es ist ein AMD, das Datenblatt dazu habe ich. Wie angegeben schreibe ich die Program Command Sequence (h5555 -> hAA; h2AAA -> h55; h5555 -> hA0) und dann die gewünschte Adresse und den Inhalt. Nur leider bleibt im Chip nichts hängen. Auf Seite 8 im Datenblatt steht im 2ten Absatz letzer Satz "Standard microprocessor write timings are used." Mir ist natürlich klar das dieser Satz nur für das Schreiben des Commandos und die Übergabe des Inhalts gilt. Das eigentliche schreiben findet ja quasi unter ausschluß der öffentlichkeit statt und dauert nicht nur 55ns sondern ein paar us. Ich gebe dem Chip mehr als doppelt so viel Zeit wie angegeben, um die Daten zu schreiben. (16us - AMD gibt 7us an) Aber selbst wenn ich es zu schnell versuchen würde erneut zu schreiben, dann würde der Chip das ja nur ignorieren. d.h. meine erste Speicherzelle müßte ja geschrieben werden. Die Chips sind neu, der Inhalt Flächendeckend hFF. Alle 10 Chips machen das selbe. Ich denke einen defekten Chip kann ich ausschließen. Wenn ich einen SRAM einsetze und das Programm laufen lasse, dann schreibt der Controller bei den Adressen h5555 und h2AAA die werte der Commando Sequence rein. Die Nutzdaten die eigentlich in den 29F040 sollen, finden sich im SRAM natürlich auch wieder. Also von daher ist es OK. Ich habe auch das Timing des SRAM mit der des 29F040 verglichen (die Datenblätter) und so wie es aussieht müsste alles in Ordnung sein. :-/ Ich habe die Schaltung jetzt schon 2 mal durchgemessen. Die Basis ist ein STK 200. Der Flash sitzt auf einer Adapterplatine im Sockel, die Adressleitungen 15-19 sind auf einen Port geschalten. Damit realisiere ich später das Bankswitchung. Zur Zeit sind A15-A19 des 29F040 auf Low. Der uC ist ein 90S8515, von denen habe ich noch ein paar. Dieser uC war unbenutzt. Ich habe mein Programm auch auf anderen Chips ausprobiert, es verhält sich überall gleich. Hat mir jemand einen Tipp, was könnte ich übersehen haben? Das Datenblatt hat zwar nur 33 Seiten, aber übersehen hat man ja schnell was. Oh, ich merke gerade das ich die ganze Nacht durchgemacht habe. :-/ Gruß Bastelmensch
Funktioniert denn der Zugriff auf Manufacturer ID und Device ID?
Beitrag "M32 Bascom Programm zum Beschreiben von AM29F040 Flash" Hatte mal ähnliche probleme. Dieses Programm hab ich in die Codesammlung gepostet es ist zwar nicht dokumentiert aber bascom und die einfachheit (nix großartig optimiert der so) sind selbsterklärend
Hi, @A.K.: der Zugriff auf die Hersteller ID funktioniert. Es kommt wie erwartet 01h raus. Der Zugriff auf den Chiptyp funktioniert nicht richtig. Hier kommt anstatt 4Ah auch 01h raus. Die Adressleitung 0 kann aber kein Problem haben, sonst könnte ich ja nicht die "A" von 2AAAh anlegen. (Außerdem durchgeklingelt und für OK befunden) Irgendwie sehr komisch das ganze. Ich tippe auf Timing Problem. 2 der 29F040 haben an nicht nachvollziehbaren Adressen irgendeinen Unsinn reingeschrieben. (Der eine 2 Byte der andere 6 Byte) Die Adressen liegen wild verteilt ohne erkennbares Muster. (Zumindest für mich nicht) Außerdem haben sie es auch unter nicht nachvollziehbaren Bedingungen gemacht. Mir ist es aufgefallen weil ich in meiner Checkroutine erkannt habe das die Dinger nach einem schreibversuch DQ6 toggeln. DQ7 ist dabei 0, DQ5 ist 1 und DQ3 ist 0. Das bedeutet laut Datenblatt das daß Zeit Limit zum schreiben überschritten wurde. Wenn ich nach einem Power Reset nur lese scheint soweit alles im grünen Bereich. Ich lese nur FFs, bzw die 2/6 Byte die verstreut im Speicher liegen, aber immerhin sind die Teile noch ansprechbar. Allerdings zeigen sie das Bit-togglen, seit dem sie das einmal gemacht haben, bei jedem Schreibversuch. Komischerweise zeigen meine anderen AMD 29F040 dieses verhalten nicht. Ein 29F040 von ST den ich auch mal ausprobiert habe, macht einfach mal gar nichts. (Die faule Sau!) Weder Hersteller ID noch Chiptyp oder gar schreiben. Es kommt nur FFh beim Lesen. Was ja auch kommen soll, da der Chip laut Eprombrenner leer ist. Der kann die Chips aber leider nur lesen, deshalb kann ich keine Testmuster reinschreiben. @Basti: danke für den Verweis. Beim 90S8515 habe ich den Flash ja ans Speicherinterface rangehängt (das dem Mega32 ja fehlt) und entsprechend verschalten. (über ein Latch A0-8 und die Datenleitungen -> STK200) Mit Deiner Methode komme ich beim 90S8515 allerdings nicht weiter, weil ich das ALE Steuersignal nicht von Hand setzen kann. Deshalb nehm ich jetzt mal einen Mega162, bei dem kann ich das Steuersignal ALE (Port E.1) von Hand setzen. Zum Glück habe ich einen da. Ich will auch meine Zielleiterplatte nicht nochmal umdesignen, war schwer genug mit 2 Lagen ohne Brücken auszukommen. Und jetzt ein anderes µC Pinout, ne ich glaub da müßt ich erst mal ein wenig weinen. ;-) Außerdem ist die Leiterplatte schon zu mir unterwegs. Allerdings habe ich da eine Frage zu Deinem Code: Du hast als Adressen für die Command Sequence "555" und "2aa" angegeben. Laut Datenblatt ist es aber "5555" und "2aaa". Copy & Paste Fehler, andere Sequence da anderer Hersteller oder check ich Deinen Code nicht? Von welchem Hersteller ist der 29F040 den Du benutzt? Fragen über Fragen. Auf jeden Fall mal Danke für die Hinweise. Ich mache es jetzt ohne das Speicherinterface. Vielleicht bekomme ich so das vermutete Timingproblem in den Griff. Gruß Bastelmensch
ES TUT! Ich dreh durch! :-) Schreiben, lesen, IDs lesen, löschen, einfach alles! OK, danke an A.K., einfach mal mit der Command Sequence lesen anstatt schreiben hat mich auf die richtige Spur gebracht (Timing Problem, fragt mich aber nicht wo, was anderes kanns aber nicht sein!) Und auch danke an Basti, ich wußte das ich das Prinzip verstanden habe. Ein blick in ein funktionierendes Proggi kann einem nicht nur die Augen öffnen, sondern manchmal auch beruhigen. Ich hatte schon an mir gezweifelt und wollte den Technikerschein an das Bildungsministerium zurückschicken. ;-) Meine 2 Chips sind auch noch OK, ich habe sie gelöscht und jetzt funktionieren sie wie die anderen. Selbst der 29F040 von ST funktioniert. Ich kanns gar nicht mehr erwarten bis meine Leiterplatte kommt. Sodele, ich muß jetzt erst mal abkühlen, ein Weizen und was leckeres zum Essen einwerfen. :-) Gruß vom Bastelmensch
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.