Forum: Mikrocontroller und Digitale Elektronik Ramerweiterung


von Rudolf (Gast)


Lesenswert?

Hallo Leute,

ich möchte 4 von diesen SRAM Baustein zusammen mit einem AT90S8515
benutzen, der ja bekanntlicht externes Ram ansteuern kann. Ich möchte
die 4 Chips aber einzeln über Latches und einen 2Bit decoder, sprich 2
Portpins auswählen können. Es soll also ein Adressbus und ein Datenbus
bestehen.

Könnt ihr mir mal erklären, wie ich das mit der Selektion und der
Programmierung in Assembler realisiere? (oder Internetseiten mit
Informationen angeben)

von Hannes Lux (Gast)


Lesenswert?

Hallo Rudolf...

Wenn ich mich nicht irre, haben SRAMs /CS-Anschlüsse (Chip select,
L-aktiv), mit denen man einen von mehreren parallel geschalteten SRAMs
selektieren kann. Falls du genügend Portleitungen frei hast, kannst du
jeden einzeln ansteuern. Ansonsten Decoder LS/HC(T)238 oder 239 zur
Ansteuerung der /CS-Pins nutzen...

Den Rest der SRAM-Beschaltung kannst du dem 8515-Datenblatt
entnehmen...

Bit- & Bytebruch... - ...HanneS...

von Chris (Gast)


Lesenswert?

Hallo,

das Problem der Selektion ist noch nicht geklärt! Das Programm müßte ja
vor jedem Zugriff auf das externe RAM prüfen, an welcher Adresse sich
die Speicherzelle befindet und in welchem der vier RAMs das ist.

Oder man realisiert das komplett in externer Hardware, indem man von
den Signalen für die obersten Adreßleitungen mittels 2-Bit-Decoder die
CS-Anschlüsse der RAMs ansteuert.

Gruß

von Rudolf (Gast)


Lesenswert?

Hallo,

genau dies meinte ich ja, dass man einen 2-Bit-Decoder benutzt. Muss
man diese Bits dann "von Hand" steuern, oder ist das im
Speicherinterface vom 8515 integriert?

von Peter D. (peda)


Lesenswert?

"Das Programm müßte ja
vor jedem Zugriff auf das externe RAM prüfen, an welcher Adresse sich
die Speicherzelle befindet und in welchem der vier RAMs das ist."


Warum denn, ist doch völlig wurscht, an welcher Adresse und in welchen
IC das Byte abgelegt wird.

Bis zu 64kB kannst Du direkt adressieren:

sts 0, r0
sts 65535, r1
usw.

Darüber kannst Du einen weiteren Port zur Bankauswahl (je 64kB)
verwenden, d.h. für die höheren Adreßpins A16 usw.


Peter

von Chris (Gast)


Lesenswert?

Hallo,
"Das Programm müßte ja vor jedem Zugriff auf das externe RAM prüfen,
an welcher Adresse sich die Speicherzelle befindet und in welchem der
vier RAMs das ist."
"Warum denn, ist doch völlig wurscht, an welcher Adresse und in
welchen IC das Byte abgelegt wird."

Vielleicht kan uns Rudolf mal berichten, wie groß seine vier RAMs sind,
die da umgeschaltet werden sollen und ob sie größer oder kleiner als
die 64kB sind.

von Rudolf (Gast)


Lesenswert?

Hallo Leute,

ich möchte 4 von diesen SRam Modulen verwenden: <a
href="http://www.reichelt.de/?SID=10QA7xqtS4AQoAABLWAp0fae5d2896aee5e3fe79dac90578e51f2;ACTION=3;LASTACTION=3;SORT=artikel.artnr;GRUPPE=A34;WG=0;ARTIKEL=62256-80;START=0;END=15;FAQSEARCH=SR%2032KX8%20%2028P%20%20%3D%20HY62CT08081E;FAQTHEME=-1;FAQSEARCHTYPE=0;FAQAUTO=1;STATIC=0;FC=668;PROVID=0;TITEL=0">Klick!</a>;

Kennt ihr einen guten bei Reichelt lieferbaren AD Wandler mit möglichst
parallelem Ausgang? Welchen AD-Wandler könnt ihr empfehlen? (Muss
schnell sein und min. 10 Bit Genauigkeit besitzen)

Kann ich diese SRams auch einfach mit einem Mega8535 ansteuern, oder
dauert das lange?

von Nik Bamert (Gast)


Lesenswert?

lol, wenn ich mich nicht irre, willst du auch gleich noch zwanzig
kohleschicht widerstände(20 ohm)
pass auf wohin du was verlinkst...
normalerweise geht ein warenkorb über ein cokie, was hier leider nicht
der Fall ist...

MFG Nik

von Rudolf (Gast)


Lesenswert?

Das ist natürlich leicht doof, aber das klärt meine Frage leider auch
nicht! :-)

von Siegfried (Gast)


Lesenswert?

@Rudolf, geht es Dir nur um viel Speicher, oder musst Du 4 Stück von dem
bislang unbekannten Speichertyp (siehe Frage von Chris) verbauen?

Wenns nur viel Speicher sein soll, dann ginge auch ein 628128 (128kx8)
oder ein 628512 (512kx8). Bei den Preisen würde ich mir das dekodieren
mit Demux usw. schenken. Die freien Adressleitungen A16 beim 128er bzw.
A16, A17, A18 beim 512er kannst Du dann direkt mit 1-3 Portleitungen
verbinden.

Der 8515 unterstützt SRAMs nur bis 64k (s.o.). Darüber hinaus brauchst
Du eine "geeignete" Software, die die Port-Pins entsprechend den
SRAM-Pins A16-A18 umschaltet.

I.d.R. braucht man soviel Speicher nur zum Puffern. Daher dürfte es
reichen, einfach auf den nächsten 64k-RAM Bereich umzuschalten, wenn
das letzte Byte auf Adresse $FFFF überschritten wurde.

Aber Vorsicht: nicht im nächsten 64K-Bereich bei 0000 anfangen, denn da
liegen die Register.

Siegfried

von Rudolf (Gast)


Lesenswert?

Hallo,

mir geht es in erster Linie um hohe Geschwindigkeiten, so dass ich die
Daten immer hintereinander in die rams stecke, um so mehr SPeed
herauszuholen.

WElche AD-Wandler sind denn besonders schnell & günstig?

von Nik Bamert (Gast)


Angehängte Dateien:

Lesenswert?

>Kann ich diese SRams auch einfach mit einem Mega8535 ansteuern, oder
>dauert das lange?

Wenn du schnell löten kannst schon :)
Nein, Spass beiseite.
Wenn du willst das der Controller die 4* 32 kbyte Automatisch
adressiert, kann ich dir nicht helfen, da ich noch nie externe,
parallele Speicherbausteine in Betrieb genommen habe.
Wenn du die Rams von Hand adressieren möchtest, würde ich das so
machen, wie im Anhang.
Ich hab darin 512 Srams verwendet, weil ich bei Eagle keine anderen
finden konnte. Daher wird die Pinbelegung nicht stimmen. Ich habe auch
die Versorgungspannung nur  dort eingezeichnet, wo sie nötig war, um zu
zeigen das man etwas auf gnd legen sollte oder so...
Ansonsten ist ja klar vcc und vss... :)

Wenn du noch Fragen zu meinem Entwurf hast-einfach Fragen. :)

MFG Nik

von Nik Bamert (Gast)


Lesenswert?

Und die Pins beim Uc hab ich auch einfach so gewählt, ich hab nicht
darauf geachtet, das bestimmte frei bleiben, ist halt nur so ne
Idee..:)

von Rudolf (Gast)


Lesenswert?

Hallo,

das ist ja schon einmal sehr nett, so ähnlich habe ich mir das auch
vorgestellt, nur den Trick mit dem Latch kannte ich in der Form noch
nicht - gibt es auch einen 3Bit Binärdekoder? Weil es kann ja auch
sein, dass man das Bussystem noch für andere Zwecke "missbrauchen"
möchte, un dann kein Sram ausgewählt sein soll...
Da fällt mir ein: Gibt es eigentlich eine Seite, auf der man z.B.
"AD-Wandler" eingibt und man anschließend die Typenbezeichnungen von
mehreren AD-Wandlern bekommt? Ich weiß dies meistens nämlich nicht.

von Peter D. (peda)


Lesenswert?

"4 von diesen SRAM Baustein"
"mir geht es in erster Linie um hohe Geschwindigkeiten"

Werd doch endlich mal konkret !!!

Also wieviel kByte insgesamt und wie schnell (Picosekunden oder wie)
willst Du drauf zugreifen.

Ohne Zahlen und Fakten wird das doch nichts.


Peter

von Nik Bamert (Gast)


Lesenswert?

wenn du mit 3 bit binärdekoder eine 8 aus 3 dekoder meinst-ja gibts
z.B. der 74***131.

von Rudolf (Gast)


Lesenswert?

Na gut, ich habe halt vor ein Oszilloskop zu bauen - damit dies KLappt,
müssen die Daten für eine bestimmte Zeit so schnell es eben geht in den
Speicher geladen werden. Die Aufzeichnungsdauer ist abhängig von der
Speichergröße, deswegen möchte ich mich noch nicht festlegen, da ich
eben noch nicht weiß, wie lange ich aufzeichnen muss. Die
Geschwindigkeit vom AD-Wandler und von den Speichern muss natürlich
sehr hoch sein, damit man eine schön kleine Timebase hat. Der im AVR
eingebaute AD-Wandler ist wahrscheinlich zu langsam, deswegen frage ich
ja die ganze Zeit nach schnelleren (parallelen) AD-Wandlern (8 Bit).

von Rahul (Gast)


Lesenswert?

Die Suchseite gibt es: Sie heisst www.Google.de
Allerdings sollte man nicht "AD-Wandler" eingeben, sondern vielleicht
eher "ADC" oder so. Notfalls gibt es auf der Seite einiger
Elektronik-Versender auch eine kleine Suchmaschine für deren
Sortiment.
Ich frage mich aber gerade, wie schnell dein Oszilloskop werden soll?
Bei einer maximalen Taktgeschwindigkeit von 16MHz stelle ich mir das
schon interessant vor...
Vielleicht soll er auch gleich noch als Diplay-Controller für ein
1024x768-Pixel-Display herhalten... Wohin auch sonst mit den Daten...

von Rudolf (Gast)


Lesenswert?

Witz komm raus, du bist umkringelt...
Der µC macht nichts anderes, als folgendes:

1. Der User Startet am PC die Messung (über die RS232 SChnittstelle)
2. Der µC zeichnet die ADC Daten aus, bis das SRAM voll ist
3. Der µC überträgt die Daten per RS232 an den PC.
4. Nun werden die Daten aus den Rams am PC dargestellt.

Das dies funktioniert, beweist diese Seite:
http://www.mikrocontroller.net/forum/read-1-42156.html

von Peter D. (peda)


Lesenswert?

Bei 16MHz kannst Du vielleicht bis zu 1MHz samplen.

Das Hauptproblem ist aber, wie triggerst Du ?

Ein gutes DSO kann auch bei 100% triggern, d.h. die ganze Vorgeschichte
bis zum Triggerereignis aufzeichnen.

Das gute und präzise Triggern ist das A und O eines jeden DSO.

Mit einer komfortablen Triggerung dürfte schon so einiges an
Rechenleistung drauf gehen, also max 100kHz Samplerate dürften da
realistisch sein.


Peter

von Chris (Gast)


Lesenswert?

Hallo,

TDA8703 für 8-Bit gibt's bei Reichelt und macht ohne Klimmzüge 20Ms/s
und wenn man den Moment, in dem die Daten gültig sind, genau trifft,
sind es (bitte im Datenblatt nachprüfen) bis zu 40 MS/s. Das Treffen
des Momentes dürfte eine Frage der Signalverzögerung sein. In meiner
Schaltung traten bei 32MS/s bereits erste falsche Bits auf.  Ansonsten
ist Analog Devices eine gute Adresse.

Gruß

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.