LPC2292 und DRAM

OP #232394
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
Persönliche Seite #232395
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.
Gast #232397
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.
Persönliche Seite #232399
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.
Gast #232400
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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.