Forum: Mikrocontroller und Digitale Elektronik LPC2292 und DRAM


von Maic A. (nx_74206)


Lesenswert?

Hey,

da SRAM zu teuer, frage ich mich ob es nicht vielleicht möglich andere
Speicherbausteine z.b. DRAM zu nutzen. Nur mussen die ja regelmäßig
refresh werden was zu lasten der Systemleistung geht, es sei den es
geht über eine Hardwarelösung. hat jemand erfahrung damit und könnte
z.b mit einer Schaltung weiterhelfen.

:-)  NX

von Simon K. (simon) Benutzerseite


Lesenswert?

Als Beispiel (Vorrausgesetzt du verstehst Assembler für AVR) Hab ich mal
mein DRAM Code angehangen.

Am besten Scrollst du Direkt ganz nach unten. Ab dem Label
"int_tim0OVF" beginnt die Refreshroutine (Dieses Label wird 56.25mal
pro Sekunde angesprungen. Sprich: ich refreshe jede 1/56.25 = 17ms.
Datenblatt sagt 32ms höchstens)

Du findest auch die Angabe wieviel Cycles /s das braucht und darunter
wieviel Rechenleistung draufgeht dabei. läpische 0,3% !

Jetz sag mir mal, dass du das Hardwaretechnisch lösen willst !

Aber wie du willst: Das einzige was du machen muss ist:
1. WE high, CAS high, RAS high
2. CAS low
3. 2^Adressbereich x RAS low und wieder high (Falling Edge)
   (bei 8bit (so wie ichs gemacht habe) wären es 256 mal RAS low und
wieder high)
4. Cas high

Das wars.

von Simon K. (simon) Benutzerseite


Angehängte Dateien:

Lesenswert?

hups. Der Anhang

von Benedikt (Gast)


Lesenswert?

Die Software ist OK, die Erklärung falsch (CAS und RAS vertauscht, beim
Rest verstehe ich nicht was das bedeuten soll).

In der Codesammlung gibt es Routinen von mir und auch ein paar PDFs zu
DRAM Grundlagen.

von Simon K. (simon) Benutzerseite


Lesenswert?

Hm? Heißt doch Cas-Before-Ras Refresh.. (CBR-Refresh)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das ganze ist zwar nett, wenn man nur irgendwelche Daten speichern will,
aber es ist keine Erweiterung des prozessorinternen Speichers, da auch
die Ansteuerung des gemultiplexten Adressbus (und das Wackeln an
RAS/CAS) des DRAMs in Software gelöst ist.
Damit aber der Prozessor den Speicher als externen Speicher nutzen
kann, muss dies alles in Hardware geschehen.

Allerdings sind normale DRAMs für einen ARM eh viel zu langsam.
Für das externe Speicherinterface eines AVRs mag das bei Verwendung von
60nsec-DRAMs noch möglich sein, wenn man ausreichend Waitstates einfügt,
aber für das Speicherinterface eines ARMs ist das nicht ansatzweise
ausreichend.
Wenn ich mir so die Beschreibung des LPC2292 ansehe, dann scheint ein
(externer) Speicherzugriff in drei Taktzyklen durchgeführt werden - bei
60 MHz Takt sind das also 50 nsec. Die reine Zugriffsgeschwindigkeit des
Speichers muss entsprechend schneller sein, daher werden da
üblicherweise 10nsec-SRAMs verwendet, die wie Maic zu recht bemerkte,
sehr teuer sind (oder in Form von Cache-SRAMs aus PC-Motherboards
gewonnen werden können, die verbrauchen aber recht viel Strom).
Obendrein sind größere SRAMs eher selten, üblich sind 512 kByte, wenn
es auch die eine oder andere Ausnahme mit 1 MByte geben mag.

Geeigneter für ein derart schnelles Speicherinterface wären SDRAMs,
aber deren Ansteuerung ist reichlich kompliziert. Mit einem ausreichend
schnellen FPGA/CPLD lässt sich sicherlich ein SDRAM-Controller
herstellen; sicherlich gibt es dafür auch freien VHDL-Code, aber das
ist schon 'ne deftige Übung.

Als echte Alternative käme noch die Verwendung eines anderen
ARM-Derivates in Betracht, dessen Speicherinterface direkt SDRAMs
ansteuern kann.
Da gibt es von OKI den ML67Q5003, der auch noch lötbar ist (wie der
2292 im PQFP144) und mittlerweile auch auf einer Entwicklungsplatine
von Olimex zu bekommen ist (http://www.olimex.com/dev/oki-h5003.html -
dort gibt es auch einen Schaltplan).
Auf dieser Platine sind neben dem ML67Q5003 16 MByte SDRAM und 512
kByte SRAM (mit 10 nsec) untergebracht.

Was der OKI-Prozessor in Einzelstückzahlen kostet und wer den verkauft,
entzieht sich leider meiner Kenntnis.

von Robert Teufel (Gast)


Lesenswert?

Maic,
tue Dir das nicht an. Schau mal unter dem Stichwort Pseudo SRAM mit
Google nach, verhaelt sich im Interface wie ein SRAM ist aber bei
groesserer Speicherkapazitaet deutlich guenstiger.

von Maic A. (nx_74206)


Lesenswert?

hey robert,

hast du dafür ggf. auch ne passende schaltung die man ggf an eine
lpt2292 anpassen könnte ??

der lpc kann extern  4 bänke a 16MB / 32 Bit verwalten.

von Robert Teufel (Gast)


Lesenswert?

Maic,
wir haben noch kein System groesser 16 MB aufgebaut, sorry.
Robert

von Maic A. (nx_74206)


Lesenswert?

Robert,

kleiner würde auch gehen, nur damit man mal so eine anhaltspunkt hat

:-) NX

von Robert Teufel (Gast)


Lesenswert?

Olimex veroeffentlicht die Schematics
z.B. hier http://www.olimex.com/dev/images/lpc-h22xx-sch.gif

von Robert Teufel (Gast)


Lesenswert?

Noch mehr schematics gefunden fuer ein Board mit externem Speicher
http://www.lpctools.com/pdf_docs/Sch_LPCEB2000_B.pdf

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.