mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sram schreiben


Autor: blutengel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: blutengel (Gast)
Datum:

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

MFG

blutengel

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: blutengel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: blutengel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas R. (tinman) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: blutengel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: blutengel (Gast)
Datum:

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

MFG

blutengel

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dafür gibt es auch kein Datenblatt?

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: blutengel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: blutengel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.