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...
An einige Controller kann man externes SRAM direkt anschließen, eine andere und universellere Lösung ist wahrscheinlich eine SD-Karte, siehe Codesammlung.
Ja, und wenn die 64kByte immer noch nicht reichen, dann musst du "tricksen"...
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.
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.
Du könntest auch DRAMs verwenden, ist auch nur halb so kompliziert, wie es klingt.
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...
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.
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
Danke euch allen für die Tips. Ich werde wohl einiges ausprobieren. Ihr habt mir auf jeden Fall weitergeholfen. Danke
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.