Hi! Ich versuche jetzt schon länger in ein SRAM zu schreiben und bekomme es noch nicht hin.Und zwar möchte ich es einmal zu Fuß programmieren um genau zu verstehen wie es funktioniert. Zu meiner Schaltung: Habe an PortC eines ATMega32 ein 74LS573 Latch Habe A0 bis A7 vom 62256 an die Ausgänge angeschloßen. A8 bis A14 sind ebenfalls an PortC angeschloßen. LE und OE sind an PD0 und PD1 Die Datenleitungen des 62256 sind an PortB CE WE und OE sind an PD2,PD3 und PD3. Als erstes habe ich die Adresse in einen LOW - Teil(A0-A7) und einen High - Teil(A8-A14) aufgeteilt. Zuerst gebe ich den Low - Teil an PortC aus und schalte LE vom Latch einmal an und dann wieder aus.Danach lege ch den High - Teil auf den Port. So jetzt liegt die komplette Adresse an meinem 62256 an. An PortB gebe ich nun die Daten aus. Jetzt zu meiner Frage: Wie bekomme ich meine Daten jetzt gespeichert? Was muss ich mit den Steuerleitungen des 62256 mache? MFG blutengel
Ich kenne jetzt nicht genau dein SRAM, aber was ich bisher an Speicherbausteinen gesehen habe, gibt es dafür ein Datenblatt, in dem steht was man man in welcher Reihe mit welchen Leitungen machen muß, damit es klingelt. Sicher, daß das hier anders ist?
> Wie bekomme ich meine Daten jetzt gespeichert? > Was muss ich mit den Steuerleitungen des 62256 mache? Steht beides im Datenplatt. Such Dir ein beliebiges welches zu einem 62256 oder einem bauähnlichen und studier die 'Timing diagrams'. HTH
blutengel schrieb: > > Wie bekomme ich meine Daten jetzt gespeichert? > Was muss ich mit den Steuerleitungen des 62256 mache? > je nach dem ob CE oder WE gesteuert wird müssen die entsprechend geschaltet werden. Beim CE controlled schreiben setze die adresse, WE auf low, schreib die daten , danach CE auf low (für sagen wir pi * daum genau so lange wie die SRAM spezifizeirt ist, -55ns SRAM also 55ns. Dann CE wieder high, daten/adresse Z und WE high. Da dein CE 55ns low war brauchst du dir keine gedanken mehr machen um Write Cylce time (twc)machen.
Danke jetzt funktioniert es.Is tmeinr Vorgehensweisen denn so richtig?Bei den meisten µC ist das ja alles automatisiert mit extra Adress und Datenbus + Steuerleitungen.Wollte halt nur vom Verständniss her zu Fuß programmieren. Ich denke dabei auch an mein nächstes Projekt ein Universalprogrammiergerät für EEprom,EPROM,Flash µC usw. Dachte dabei auch an einen CPLD als Pintreiber damit man nicht per Hand jumpern muss. MFG blutengel
Was mein ihr ist das ein machbares Projekt oder sollte ich es lieber lassen?Simulieren kann ich übriges mit Proteus fall das jemand kennt MFG blutengel
blutengel schrieb: > Was mein ihr ist das ein machbares Projekt oder sollte ich es lieber > lassen? klar, mach ruhig. > Simulieren kann ich übriges mit Proteus fall das jemand kennt Simulieren ist wie Onanieren ... daas ist kein Sex.
Ich meinte ob das überhaupt machbar ist,und ich mich nicht überschätze, also vom Schwierigkeitsgrad her und ob die Idee mit dem CPLD was bringt. MFG blutengel
> Ich meinte ob das überhaupt machbar ist,und ich mich nicht überschätze, > also vom Schwierigkeitsgrad her und ob die Idee mit dem CPLD was bringt. Kommt immer drauf an. Klar ist es machbar und es ist auch nicht wirklich schwierig (ein paar Wrapper-Funktionen basteln, die die Zugriffe auf /CE, /WE, /OE und die Datenleitungen so behandeln, dass kein Schlurzkuss nicht auftreten kann und feddisch). Ist nicht übermäßig schnell aber es funktioniert. Läuft hierzulabor ganz hervorragendlich. Wenn Du mehr Geschwindigkeit brauchst oder mit einem CPLD oder einem FPGA basteln ∗willst∗, dann mach das. Viele Wege führen nach Rom. Zumindest für mich als Hobbybastler ist aber auch der Weg ein Teil vom Ziel ;-)
Ein 28c256 verhält sich ja genau so muss nur auf die Zeiten achten sehe ich das so richtig? MFG blutengel
> Ein 28c256 verhält sich ja genau so muss nur auf die Zeiten achten sehe > ich das so richtig? Nein, tust Du nicht. Das eine ist ein EEPROM, das andere ein SRAM. Die verhalten sich nur in ∗Teilen∗ ∗ähnlich∗. Der Rest steht wie immer im jeweiligen Datenplatt.
Sorry mein Fehler.Noch ein letztes:Kann ich bei dem ATMEGA64 de X- Pointer als 16 Bit Register nutzen für die Adressleitungen oder ist der X - Pointe für etwas anderes vorgesehen. Und wenn ich es nutzen kann muss ich ja am Anfang einmal den LOW - Teil und den HIGH - Teil in den X - Pointer schreiben und danach kann ich den Wert ja Inkrementieren und meine Speicherzellen im z.B. im 62256 beschreiben.Ist der Ansatz so richtig? MFG blutengel
nur zur Sicherheit: der atmega64(a) kann externes RAM direkt nutzen, die SW-Seite beschränkt sich auf die Einstellung des gcc und schon kann man es wie internes RAM nutzen (etwas langsamer natürlich).
Wie gesagt möchte alles erstmal gern zu Fuß programmieren.So kann ich die µC´s Programmiertechniken und sonst automatisierte Vorgänge am Besten verstehen.NAch längerer Suche habe ich leider noch nicht verstanden wie ich das mit den 18 Bit Register hinbekomme. Ich lade mit ldi r31,0xaf ldi r30,0xba einen beliebigen Wert in das Z Register. Wei kann ich dieses Register jetzt inkrementieren bzw. decrementieren. Hab leider nichts gefunden oder habe es übersehen. Mit INC und DECR scheint es bicht zu funktionieren. MFG blutengel
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.