Hallo, ich möchte meinem Atmega128 mit 16 MHz einen externen SRAM verpasssen. 32KB würden reichen. Habe noch meine Fragen dazu. Gibt es einen ausführlichen Tutorium dazu im Web, würde bei der Platine von vorne rein Fehler vermeiden. Atmel Datenblatt und ein paar Beiträge hier habe ich bereits gelesen. Werden die Daten dynamisch adressiert oder muss man jeder einzelnen Variable einen Zeiger zuweisen? Mich interessiert das Ganze auch mehr aus der Programmiersicht. C Codebeispiel im Atmel Datenblatt ist leider recht mager.
Du musst halt den Speicherbus vom AVR verwenden und darfst nicht versuchen, den RAM händisch anzusprechen. Aber dann verhält der sich soweit ich weiß genauso wie interner SRAM. Einzig die Zugriffszeit ist glaub ich ein paar Takte länger, aber das darf einen eh nicht stören, wenn man in C schreibt. Zum anschließen: Wo liegt denn das Problem? Ist im Datenblatt kein Beispiel? Vielleicht findet sich auf der Atmel-Seite auch Application Note dazu. Sebastian
Von der Programmierseite gibt es eigentlich keinen Unterschied zum internen SRAM, ausser dass du mit einem bestimmten Register den externen RAM aktivieren musst. Du musst noch im makefile die Adressbereiche anpassen. Hardwareseitig brauchst du noch einen Addresslatch, der Dir die Pins AD0-7 vom AVR in D0-7 und A0-7 aufteilt.
>Du musst halt den Speicherbus vom AVR verwenden und darfst nicht >versuchen Ok, das ist mir soweit klar ;) >Von der Programmierseite gibt es eigentlich keinen Unterschied zum >internen SRAM. Also muss ich mich nicht selbst um die Pointer kümmern? Sprich, ich deklariere ein Array mit 128 Werten, dieser wird automatisch irgendwo gespeichert und wenn ich die Daten wieder haben möchte, greife ich auf die Variablen ganz wie gewohnt zu?
@ Atmel Anfänger (Gast) >Also muss ich mich nicht selbst um die Pointer kümmern? Kommt drauf an. Man kann dem C-Compiler mitteilen, dass jetzt mehr Speicher da ist und wo der liegt. Das ist aber AFAIK recht kompliziert. Einfacher ist Verarbeitung "per Hand" und Pointer. Ist aber in C kein grosser Unterschied. Steht genauer in Doku der libc vom AVR-GCC. MFG Falk
Atmel Anfänger wrote: > Also muss ich mich nicht selbst um die Pointer kümmern? Sprich, ich > deklariere ein Array mit 128 Werten, dieser wird automatisch irgendwo > gespeichert und wenn ich die Daten wieder haben möchte, greife ich auf > die Variablen ganz wie gewohnt zu? Genau
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.