www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik externen SRAM am Atmega


Autor: Atmel Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Ja mann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Atmel Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ 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

Autor: Robert S. (razer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.