Autor |
|
|
|
BID = 92853
MicroTobi Gesprächig
Beiträge: 141 Wohnort: Herrenberg
|
|
Hallo,
ich habe mir mit ein paar AVR Microcontrollern einen kleinen Rechner gebaut. Da er bis jetzt nur 512kB Ram besitzt, würde ich diesen gerne Aufrüsten! Da mir einzelne SRAM Chips zu teuer sind dachte ich, dass man vielleicht PS/2-Module als RAM verwenden kann, denn da kosten 16MB x 32bit (64MB) nur 16€!!!
Habe auch schon Pinbelegung usw. gefunden:
http://www.hardware-bastelkiste.de/speichps.html#PS2
Ich frage mich, wie die mit 6 Adressleitungen auskommt und warum da 36 In/Out Leitungen drann sind kapier ich auch nicht so ganz. Vielleicht kann mir ja jemand erklären, wie man diese Module richtig ansteuert und ob sie für einen AVR überhaupt geeignet sind?
Würde mich über Hilfe freuen.
Gruß Tobi |
|
BID = 92992
MicroTobi Gesprächig
Beiträge: 141 Wohnort: Herrenberg
|
|
Also die Frage mit den 36DQ hat sich erledigt, aber wie kann ich mit 6 Adressleitungen jede einzelne Zelle ansprechen?
Und wie kann ich den Speicher beschreiben und löschen? |
|
BID = 93016
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Es gibt noch ein paar Steuerleitungen, mit denen die Adresse nacheinander in einen Zeilen- und in einen Spaltendecoder geladen wird.
Außerdem sind das keine SRAMs sondern DRAMs bei denen die Daten regelmäßig aufgefrischt werden müssen.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 93018
MicroTobi Gesprächig
Beiträge: 141 Wohnort: Herrenberg
|
Danke für die Antwort!
Kann man diese Speicher dann überhaupt für AVR Micros benutzen?
Sind die CAS und RAS Leitungen?
Kann mir jemand einen Link zu ner Seite nennen auf der des erklärt wird, weil ich find bei Google nix gescheites dazu!
Würde mich über Hilfe freuen.
Gruß Tobi
|
BID = 93028
chilla Schreibmaschine
Beiträge: 1403 Wohnort: von hier zwei mal rechts und dann zwei mal links
|
RAS steht wohl für Row-Address-??? (Signal?)
und CAS für Column-Address-???
wie Perl schon schrieb:
Zitat :
| Es gibt noch ein paar Steuerleitungen, mit denen die Adresse nacheinander in einen Zeilen- und in einen Spaltendecoder geladen wird. |
Das sind diese Steuerleitungen. Mit ihnen wird wohl ausgewählt, ob die anliegende Adresse eine Spalten- oder Zeilenadresse ist.
mfg CHillA
_________________
Wenn man erst einmal die Sache verstanden hat, kapiert man auch, wies im Handbuch gemeint war.
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet wer
|
BID = 93033
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Man kann, allerdings ist es etwas umständlich und langsam, evtl. benötigst du Zusatzhardware und hast nachher vielleicht keine freien Pins mehr am µC.
Ich habe mal soetwas mit einem PIC und einem einzigen x1 DRAM plus Schieberegister gemacht. Mit ein paar Tricks kommt man da mit insgesamt weniger als 6 Leitungen am µC aus. Mit eine paar weiteren Tricks erreicht man sogar eine erträgliche Zugriffsgeschwindigkeit, aber ich verrate nicht alles.
Ja, /RAS (Row Adress Strobe), /CAS (Column Address Strobe) und /WR (Write Enable), sowie die Byte Selects sind die Steuerleitungen.
Die ersten drei haben auch noch unterschiedliche Funktion, je nachdem in welcher Reihenfolge du sie ansteuerst.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 93039
Benedikt Inventar
Beiträge: 6241
|
Wieder mal ein Thema das warscheinlich in einem Dialog enden wird.
Es geht mit etwas Logik problemlos. Einfacher wird es aber mit einem FPGA/CPLD
Allerdings würde ich keine PS2 Module nehmen (16bit) sondern SIMM (8/9bit). Mit 2MB läuft es bei mir problemlos.
http://mitglied.lycos.de/bk4/8051dram.htm
|
BID = 93049
MicroTobi Gesprächig
Beiträge: 141 Wohnort: Herrenberg
|
Danke fü die Antworten!
@Benedikt
Wie kommst du auf 16bit? Die haben doch einen 32bit Datenbus, oder? 16bit wäre aber gut, da die Programme, die ich aus dem Speicher lade so zusagen "16bit Anwendungen" sind . Mit 32bit könnte ich halt immer 2 Befehle auf einmal lesen und die nach einamder verarbeiten.
@All
Ich hab jetzt immer noch nicht ganz verstanden, wie man die einzelnen Speicherzellen mit den RAS, CAS und Adressleitungen ansteuert??? Gibt es da irgendwo im netz eine Erklärung?
Würde mich über Hilfe freuen
Gruß Tobi
|
BID = 93051
MicroTobi Gesprächig
Beiträge: 141 Wohnort: Herrenberg
|
Ohh, mir ist gerade aufgefallen, dass ich oben ausversehen 6 anstatt 12 Adressleitungen geschrieben hab, sorry!
GRuß Tobi
[ Diese Nachricht wurde geändert von: MicroTobi am 19 Aug 2004 15:38 ]
|
BID = 93057
Benedikt Inventar
Beiträge: 6241
|
Zitat :
MicroTobi hat am 19 Aug 2004 15:29 geschrieben :
|
@Benedikt
Wie kommst du auf 16bit? Die haben doch einen 32bit Datenbus, oder?
|
Ja, stimmt. 16bit wurden übersprungen...
Zitat :
|
16bit wäre aber gut, da die Programme, die ich aus dem Speicher lade so zusagen "16bit Anwendungen" sind .
|
Wie lädst du die Programme aus dem Arbeitsspeicher in den AVR ? Der kann doch garkeine externen Programme abarbeiten!
Zitat :
|
@All
Ich hab jetzt immer noch nicht ganz verstanden, wie man die einzelnen Speicherzellen mit den RAS, CAS und Adressleitungen ansteuert??? Gibt es da irgendwo im netz eine Erklärung?
|
Ja, aber selten auf deutsch, daher hier ein gut erklärtes, deutsches Datenblatt von Siemens.
|
BID = 93063
MicroTobi Gesprächig
Beiträge: 141 Wohnort: Herrenberg
|
Danke für den Link!!!
Ich hab mir den CPU aus 6 AVR´s zusammengebaut.
Angenommen CPU 1 läd einen 16bit Befehl aus dem Speicher, dann vergleicht er diesen "Code" mit den von mir im AVR abgelegten selber erfundenen Befehlen. Dadurch kann ich z.B. mit einem 16bit Befehl einen Sound von der Festplatte an die Soundkarte schicken. Da dies aber länger dauert wie echte RISC architektur hab ich 5 AVR´s eingebaut, die sich die Befehle nach einem bestimmten System aufteilen, dadurch arbeitet mein CPU sogar noch ein bischen schneller wie ein einzelner AVR und ist deutlich flexibler, da ich immer wieder neue Programme auf die Festplatte laden kann, ohne das ich die AVR neu beschreiben muss!
Vielleiht hat ja jemand meine umständliche Beschreibung verstanden
Gruß Tobi
[ Diese Nachricht wurde geändert von: MicroTobi am 19 Aug 2004 16:36 ]
|
BID = 93070
MicroTobi Gesprächig
Beiträge: 141 Wohnort: Herrenberg
|
Hallo,
Die PS/2-Module sind ja wohl eine Wissenschaft für sich, die mein gehirn irgendwie nicht verstehen will
Kann es sein das ich doof bin, oder is des so schwer?
Aber irgendwie muss ich des Hinbekommen, da mir 0,5MB Hauptspeicher nirgendwo hin mehr reichen .
Würde mich also sehr über Hilfe freuen, vielleicht kapier ich´s dann auch.
Gruß Tobi
|
BID = 93076
Benedikt Inventar
Beiträge: 6241
|
Hier die Antwort für beide Themen:
FPGA/CPLD lernen, Erfahrung damit sammeln, DRAMs verwenden, dann hat man sehr viel Speicher sehr billig. Nimmt man 16 oder 32bit Speicher (oder mehrere 8bit Parallel), der zwar langsam (ca. 150ns) ist (wenn man keinen Page Mode verwendet), aber bei 32bit ist das so schnell wie ein 37,5ns 8bit RAM.
Mit CPLF/FPGA ist alles machbar, da ist ein DRAM Controller das einfachste...
Ich habe hier etwa 700MB an ausgelötet/ausgebauten DRAMs (dazu kommen noch die DRAMs die noch in gebrauch sind, also ingesamt etwa 1GB, ohne die SDRAMs in meinen 3 PCs (das währen dann nochmals rund 2GB).
Diese wollte ich schon seit mindestens 5 Jahren verwenden (ist schon verlockend 16MByte in einem einzelnen IC zu haben). Vor einen halben Jahr habe ich es dann endlich geschafft.
Um Daten schnell ohne CPU von einem Bereich in den anderen zu kopieren, dafür gibt es DMA Controller. Man gibt denen einen Befehl so etwa "kopiere Adresse 57 bis 57868 in Bereich 5876867 bis 5934678" Irgendwann bekommt der CPU die Meldung "fertig, der Adress/Datenbus ist wieder frei" zurück.
Wiese quälst du dich eigentlich mit AVRs ab ? Das sind nur schnelle RISC CPUs, haben ansonsten nichts gutes.
Vergleich die mal mit dem M16C, das ist ein 16bit CPU mit 24MHz, kann externe Programme ausführen und auf 4MByte zurgeifen. Hat DMA, Unmengen an seriellen Schnittstellen usw.
|
BID = 93100
MicroTobi Gesprächig
Beiträge: 141 Wohnort: Herrenberg
|
Warum ich mich mit AVR´s abquäle?
-> Weil ich den PC schon fertig habe, bis auf die Graka und vielleicht tausch ich noch den Speicher.
Aber vielleicht tausch ich den CPU irgendwann aus.
Ich werde des dann mit den DRAM´s mal ausporbieren, vielleicht klappts ja.
Gruß Tobi
|
BID = 93110
Benedikt Inventar
Beiträge: 6241
|
Wie wäre es wenn du einen weiteren AVR (auf einen mehr kommts ja nun auch nicht an...) als DRAM Controller verwendest ?
Dieser macht folgendes:
Adresse der zu lesenden Speicherstelle in zwei Hälften teilen und diese nacheinander mit RAS und CAS an den Speicher senden.
Daten lesen/schreiben.
RAS, CAS wieder abschalten, aus neue zu lesende/schreibende Daten warten und währenddessen den Speicher auffrischen (am einfachtse: Cas Befor RAS Refresh).
|