Sram schreiben

Gast #1918063
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
Gast #1918070
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
Persönliche Seite #1918080
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.
Gast #1918386
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
Gast #1918468
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 ;-)
Gast #1918537
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.
Gast #1918547
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
Gast #1918929
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren