ich suche einen DRAM-Kontroller, mit dem man DRAM an einen Kontroller anschliessen kann, der keinen internen DRAM-Kontroller hat.
Seitens des Kontrollers gibt es Adress- und Datenbus, Read, Write, Chip Select und noch Wait.
Per Google finde ich nur IP, aber keine ICs.
Grüße, Torsten.
Didn't find your answer? Ask the community — no account required.
D
Dieter Wiedmann
Torsten Mohr schrieb:
Mangels Bedarf gibts sowas schon lange nicht mehr, also entweder SRAM nehmen oder mittels CPLD selber machen.
Gruß Dieter
M
Michael Baeuerle
Sowas wirst du nirgends mehr auftreiben. Muss es denn schnell sein? Wenn nicht, kann man die DRAM Ansteuerung (Refresh und Adress Multiplex) per Software machen. Das DRAM laesst sich dann aber nicht in den normalen Addressraum einblenden ...
Micha
Mails containing HTML or binary windows code are rejected.
R
Rafael Deliano
Manche CPUs hatten auch Pin der anzeigt ob CPU Befehl dekodiert und damit Buszugriff möglich ist.
Es wäre angemessen zu sagen welche CPU und welche DRAMs. Die Antwort ist aber wohl immer, wie schon gesagt, selber stricken. Datenblatt des TMS4500A kann ich bei Bedarf scannen, aber selbst wenn man das obsolete Teil noch auftreibt ist es keine sinnvolle Lösung.
MfG JRD
H
Hansjörg
"Torsten Mohr" schrieb im Newsbeitrag news:dfflb5$6li$ snipped-for-privacy@schleim.qwe.de...
Um welchen Kontroller handelt es sich da? Für den 8051 habe ich das mal gemacht, könnte auch für andere Kontroller gehen.
Hansjörg
M
Michael Roth
Naja, bei manchen Controllern ist der externe Bus auch als normale Inputs/Outputs konfigurierbar, bzw. der externe Bus ist eine Sonderfunktion der entsprechenden Pins.
Dann könnte man den Refresh in einem Interrupt machem, in dem man das externe RAM temporär weg konfiguriert, per normalen IO die Pins entsprechend schaltet um einen Refresh durchzuführen, und dann das RAM wieder hinzu konfiguriert...
Etwas wüst ist es schon...
M
Michael Baeuerle
Das ist Vorraussetzung wenn man nicht eigene Ports spendieren will.
Das kommt auf die RAMs an. Alle halbwegs aktuellen DRAMs koennen die Refresh-Adresse selbst erzeugen, d.h. es reicht fuer einen Refresh an ein paar Steuerleitungen zu wackeln. Wenn man die auf sonst unbenutzte Pins legt, kann man refreshen ohne an der Busconfig rumspielen zu muessen (weil der Bus fuer den Refresh nicht benoetigt wird).
Wichtiger ist, dass der Refresh-Interrupt eine so hohe Prioritaet hat, dass keine Daten verloren gehen.
Dafuer aber billig und nicht von abgekuendigten Chips abhaengig. Nur eben nicht schnell ... Ein AVR@16MHz hat es bei mir mit asynchronen DRAMs auf ca. 180KiByte/s gebracht (allerdings mit 11Bit Bus und RAS-only Refresh, mit 8bit Bus und CBR Refresh sollte noch einiges mehr gehen).
Micha
Mails containing HTML or binary windows code are rejected.
J
Johannes Bauer
Mhh, hatte mir eigens dafür sogar mal SIMM und SIMM-Sockel (einreihig, sehr einfach zu verlöten) gekauft, allerdings dann das Projekt nie begonnen.
Aber eine Frage habe ich dazu: wie bekommst du die Daten in den uC eigentlich _rein_? Das war bei mir nämlich ein riesen Problem. Das RS232 mit 115200 Baud zu verwenden ist ja ein bischen lächerlich... Gibt's da auch was schnelleres?
Gruß, Johannes
M
Michael Baeuerle
Wo hast du die gekauft?
Ich hab es bei diesem Projekt
formatting link
mit SCSI gemacht. Der PIA mit dem AVR bringt auf dem Papier etwa 200KiByte/s, auch wenn die in diesem Fall nicht ausgereizt werden koennen weil die Target CPU bremst.
Eine simplere Loesung waere z.B. mit einem FTDI FT245B ueber USB. Damit habe ich in einem Projekt fuer meinen Arbeitgeber ca. 200KiByte/s auf einem AVR@11.1MHz erreicht (allerdings auf ATA statt auf DRAM und mit
64KiByte SRAM Puffer, und auch nur mit dem "closed source" WindowsNT Treiber).
Mit IEEE-1394 koennte auch was gehen, da bietet TI Protokollchips dafuer an. Die Frage ist wie leicht bzw. schwer die zu bekommen sind ...
Werte >200Kibyte/s erreicht man mit AVRs bei nichttrivialen Protokollen nur, wenn die nichts anderes machen muessen. Wenn mehrere Jobs drauf laufen ist man schnell bei 100KiByte/s oder darunter ... immernoch eine Groessenordnung ueber RS-232. Wenn du mehr willst, solltest du mehr CPU-Power spendieren als AVRs bringen koennen.
Micha
Mails containing HTML or binary windows code are rejected.
henning paul home: http://www.geocities.com/hennichodernich
PM: henningpaul@gmx.de , ICQ: 111044613
J
Johannes Bauer
Bei Reichelt, "SSD 30G".
Cool, danke für den Tipp! Den Chip habe ich auch bei Reichelt gefunden. Hast du einen Link auf ein Beispielprojekt für den Chip, für 6 Euro will ich den nicht durch rumprobieren ruinieren.
100 kB/s müsste satt reichen. Die 14,1 kB/s, die RS232 bei 115200 Baud zur Verfügung stellt, sind einfach ein Witz.
Gruß, Johannes
J
Johannes Bauer
Ich hab gerade einen bestellt :-)
Danke für den Tipp!
Gruß, Johannes
G
Gerrit Heitsch
Es sind 11520 Bytes/sec... Bei RS232 hast du minimal 1 Start und
1 Stoppbit pro Byte, also 10 Bit/Byte.
Gerrit
J
Johannes Bauer
Ah, stimmt, die hatte ich ganz vergessen mit reinzurechnen! Dann ist's sogar noch langsamer...
Gruß, Johannes
G
Gerrit Heitsch
Auf der anderen Seite reicht bei einer seriellen Konsole 9600 Bps mehr als aus um einen Rechner zu installieren und administrieren.. Die Anwendung machts. :)
Gerrit
T
Thomas Faust
Wenn es für den Anfang was ganz einfaches sein soll, ich hab mir mal ein Layout für eine einfache Platine gemacht, mit der man den auf dem Steckbrett betreiben kann. Ein paar Fotos finden sich hier:
formatting link
, Schaltplan bzw. Eagle-Dateien kann ich auf Wunsch zuschicken. Das Ding scheint auch zu funktionieren, zumindest kann man am PC Daten (von einem AVR gesendet) über den VirtualComPort-Treiber und über den D2XX-Treiber (dll-Interface) empfangen. Im Prinzip ist das aber nichts weiter als die auf
formatting link
verfügbare Application Note auf eine Platine umgesetzt.
MfG
Thomas
M
Michael Baeuerle
Ich glaube nicht, dass du den Chip durchs Probieren ruinierst. Jedenfalls nicht solange du ihn richtig beschaltest (die Schaltung ist in den ANs ja lang und breit dokumentiert). Eher durch Kurzschluss oder Ueberhitzung bei Freiluftverdrahtungspfusch, d.h. du brauchst eine vernuenftige Platine wie z.B. das Board von Thomas.
Was willst du denn machen wofuer 14KiByte/s ein Witz sind und
100KiByte/s satt reichen?
Micha
Mails containing HTML or binary windows code are rejected.
J
Johannes Bauer
Ich baue einen Displaycontroller für ein 400x300 LCD, das vom PC aus angesteuert werden soll.
400x300 Pixel sind 15000 Bytes. Bei 11520 Bytes/s habe ich ein komplett neuen Bildschirminhalt im FIFO alle 1,3 Sekunden: das ist unerträglich wenn man wirklich was steuern will. Bei 100kB/s kann ich ca 6,8 fps erreichen (bei vollem Redraw!). Das ist schon echt gut!
Wenn dann noch zusätzliche Tricks verwandt werden (ich dachte an einen einfachen Huffman bzw. Shannon-Fano sowie ein Übertragen von nur geänderten Zeilen), wird das Ding recht flott.
Gruß, Johannes
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.