Forum: Mikrocontroller und Digitale Elektronik Speichererweiterung am µC


von Giorgio (Gast)


Lesenswert?

Hi, hab ne Frage. Weiss jemand wie ich die Speichermöglichkeiten an 
einem µC erweitern kann? Um z.B. eine Tonfolge aufzunehmen und zu einem 
späteren Zeitpunkt wiederzugeben?

Ein µC deswegen, weil ich damit mehrere Sachen steuern möchte...

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Paralleles SRAM. Einige AVR-Controller haben ein Hardware-SRAM-Interface 
bis 64kByte Adressraum.

von oder hier (Gast)


Lesenswert?

An einige Controller kann man externes SRAM direkt anschließen, eine 
andere und universellere Lösung ist wahrscheinlich eine SD-Karte, siehe 
Codesammlung.

von Matthias (Gast)


Lesenswert?

Ja, und wenn die 64kByte immer noch nicht reichen, dann musst du 
"tricksen"...

von Giorgio (Gast)


Lesenswert?

Und wenn ich einen grösseren Speicher haben möchte? Zum Beispiel um 10 
minuten Sprache aufzunehmen? Ist das überhaupt möglich? Ich möchte 
verschieden Sprachmuster aufzeichnen, in einem Speicher lagern und 
jederzeit auch getrennt voneinander abrufen können.

von Giorgio (Gast)


Lesenswert?

@Matthias... Wie tricksen? Kennst du tricks? ;)

von Benedikt K. (benedikt)


Lesenswert?

Dann würde ich einen seriellen Flash empfehlen (z.B. M25Pxx oder Atmel 
Data Flash, oder direkt eine MMC/SD Karte). Die benötigen nur 4 Pins und 
sind mit vielen Megabyte Speicherplatz erhältlich.

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Du könntest auch DRAMs verwenden, ist auch nur halb so kompliziert, wie 
es klingt.

von Giorgio (Gast)


Lesenswert?

Wie würde das mit DRAMs funktionieren? Wie steuer ich die an?

von Matthias (Gast)


Lesenswert?

Naja, ich würde da einen größeren Speicher genauso anklemmen, wie im 
Atmel Datenblatt beschrieben, mit AD0-7, A0-15, ALE...
Die zusätzlichen Adressleitungen des SRAMS würde ich an einen freien 
Port legen, zB an den PORTC:
PC0 => A16
PC1 => A17
PC2 => A18...
Somit kannst du mit diesem Ausgangsport zwischen 64kByte-"Bänken" 
umschalten:
PC = 0x00  : 0x00'00'00 - 0x00'FF'FF
PC = 0x01  : 0x01'00'00 - 0x01'FF'FF
PC = 0x02  : 0x02'00'00 - 0x02'FF'FF
...
Du musst jetzt allerdings VOR JEDER Speicheroperation dafür sorgen, dass 
diese "Bankauswahl" immer auf die Richtige zeigt, da der ATMEL das ja 
nicht mitbekommt(Also an das Retten von PORTC denken). Allerdings ist 
dieser Speicher NICHT durchgängig erreichtbar:
die unteren (die exakten Zahlen bezihen sich auf einen mega128) 4352Byte 
sind IMMER intern im atmel, unabhängig, welche Bank angewählt wird!! Das 
liegt daran das der atmel diese Speicherzellen intern hat, und ja aber 
nicht weiß das wir Bänke umschalten..
Somit sieht das ganze etwa so aus:
PC = 0x00  : 0x00'00'00 - 0x00'10'FF  INTERN
PC = 0x00  : 0x00'11'00 - 0x00'FF'FF  die "nullten" (64-4)KByte

PC = 0x01  : 0x01'00'00 - 0x01'10'FF  wieder dieselben INTERN !!!!
PC = 0x01  : 0x01'00'00 - 0x01'FF'FF  die ersten" (64-4)KByte)

PC = 0x02  : 0x02'00'00 - 0x02'10'FF  wieder dieselben INTERN !!!
usw...

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?


von Fly (Gast)


Lesenswert?

Hallo Giorgio!

Wieviel Speicher hättest du denn gerne?
Darf der Speicher flüchtig sein? (Daten weg nach Stromausfall)
Wenn nicht, dann kannst du RAM vergessen und dich auf Flash 
konzentrieren.
Wenn du viel Speicher willst (sag mal >10 Mb), rate ich sowieso zu 
Flash.

von Peter D. (peda)


Lesenswert?

Giorgio wrote:
> Hi, hab ne Frage. Weiss jemand wie ich die Speichermöglichkeiten an
> einem µC erweitern kann? Um z.B. eine Tonfolge aufzunehmen und zu einem
> späteren Zeitpunkt wiederzugeben?

Da gibts doch die Atmel Application Note mit seriellem Data Flash, 
braucht nur 4 Pins. Die gehen wohl bis 8MB. Schau mal da rein.


Peter

von Giorgio (Gast)


Lesenswert?

Danke euch allen für die Tips. Ich werde wohl einiges ausprobieren. Ihr 
habt mir auf jeden Fall weitergeholfen.

Danke

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Serielles DataFlash ist durch die internen SRAM-Buffer auch schnell 
genug, um direktes Aufzeichnen zu ermöglichen.

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.