Forum: Mikrocontroller und Digitale Elektronik Sram schreiben


von blutengel (Gast)


Lesenswert?

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

von Klaus W. (mfgkw)


Lesenswert?

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?

von g457 (Gast)


Lesenswert?

> 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

von blutengel (Gast)


Lesenswert?

Das hab ich ja schon aber ich steige da nicht ganz durch.

MFG

blutengel

von Thomas R. (tinman) Benutzerseite


Lesenswert?

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.

von blutengel (Gast)


Lesenswert?

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

von blutengel (Gast)


Lesenswert?

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

von Thomas R. (tinman) Benutzerseite


Lesenswert?

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.

von blutengel (Gast)


Lesenswert?

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

von g457 (Gast)


Lesenswert?

> 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 ;-)

von blutengel (Gast)


Lesenswert?

Ein 28c256 verhält sich ja genau so muss nur auf die Zeiten achten sehe 
ich das so richtig?

MFG

blutengel

von Klaus W. (mfgkw)


Lesenswert?

Dafür gibt es auch kein Datenblatt?

von g457 (Gast)


Lesenswert?

> 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.

von blutengel (Gast)


Lesenswert?

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

von Klaus W. (mfgkw)


Lesenswert?

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).

von blutengel (Gast)


Lesenswert?

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