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
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.
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.
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.
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.
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.
Robert, kleiner würde auch gehen, nur damit man mal so eine anhaltspunkt hat :-) NX
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.