Externer Speicher am Atmega128

Gast #60317
Lesenswert?

Hallo...

Ich habe ein neues Project vor und bin dabei mir Hardware Auszusuchen.
Das grosse Ding ist: Ich brauche massenhaft Speicher.

Als Programm code wuerden mir wahrscheinlich die 128k des Atmega128
reichen, aber ich brauche mehr SRAM und ... .

Der Atmega128 kann 64k extern adressieren.

Da ist es ja so, dass man an die ersten ~4k des externen Speichers
nicht drankommt. Kann man ev. durch eine geschikte Adressdekodierung
auch die ersten ~4k nutzen?

Zum zweiten koennte ich ein Flash zusaetzlich gebrauchen. Ich habe etwa
40k Daten, die waehrend des Programmablaufs nicht veraendert werden,
aber es wird permanent darin gesucht.
Kann man diese externe 64k aufteilen in z.B. 32k SRAM und 32k Flash?

Danke
Alex
Gast #60321
Lesenswert?

Den Speicher kannst Du problemlos aufteilen.
Allerdings solltest Du Dir überlegen, ob Du dafür nicht einen anderen
Controller nimmst. Das macht die Software und Hardware viel einfacher.
Fujitsu hat sehr schöne, auch Renesas hat ganz brauchbare (für beide
gibt es kostenlose C-Compiler).
Gast #60322
Lesenswert?

Wie geht das denn?
Muss ich dann nicht dem Linker auch sagen, wie gross mein SRAM ist und
das ROM DatenSegment ist?
Kann ich das Flash (ist ja dann parallel angeschlossen) auch problemlos
programmieren?

Eine andere Hardware weiss ich nicht. Grosse Teile des Codes sind schon
in C++ geschrieben. Die umzuschreiben in C ... Hmmm...


Alex
Gast #60323
Lesenswert?

Dem Compiler musst Du das nur sagen, wenn Du das RAM nicht selber
verwaltest. Das hängt von Deiner Software ab. Beim AVR-GCC kannst Du
bestimmen, ob der Compiler das RAM komplett nutzt, nur für den HEAP
oder gar nicht.
Das Flash kannst Du im Prinzip schon programmieren, so funktioniert das
beim PC ja auch.
Vielleicht schreibst Du mal, wie Deine Software aufgebaut ist und
welchen Compiler Du verwendest.
Gast #60325
Lesenswert?

Hallo...

Ich benutze WinAVR.

Ich hatte an eine Adressdekodierung in 8k Schritten gedacht. Ueber
einen GAL.

Ich habe Bibliotheken, die etwa 40kB Gross sind. Diese sollen in den
Flash-Speicher. Der Rest von 64kB soll bleiben fuer das SRAM. Nur
wollte ich das so machen, dass wenn ich die Bibliotheken kleiner
bekomme, moechte ich ueber den GAL von den 40 kB etwas abzwacken und
dem SRAM zukommen lassen.

Eine Weitere Frage waere, ob man eine etwas groesseren Adressbereich
hinbekommt. Man koennte ja z.B. es so machen, dass wenn man z.B. eine
ganz bestimmte Adresse im GAL (ich weiss nicht ob so etwas mit einem
GAL geht. Ich habe das frueher mit einem Altera so gemacht) schreibt,
dann praktisch die Adressleitung A16 setzt und somit nochmal 64kB
bekommt. Ist so etwas den mit einem GAL moeglich ? Vielleicht ein
anderer Baustein ausser Altera?


Alles nur Fragen ;-()

Danke.
Alex
Gast #60326
Lesenswert?

So etwas geht, auch mit einem GAL. Ich würde allerdings ein CPLD nehmen.
Die verbrauchen weniger Strom. Vielleicht ein Xilinx XC9536XL, den gibt
es für ca. 2,50 bei Reichelt. Software dazu bei Xilinx kostenlos,
ISP-Programmer-Bauanleitungen dazu im Netz.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren