www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bedeutung des RAM Speichers


Autor: Stephan Schwarz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin gerade dabei einen neuen  µC auszuwählen.
Dabei bin ich auf den ATMEGA gekommen.
Dieser hat 8K (Flash)Programmspeicher, 512k EEPROM, aber nur 1k RAM.
Ist es richtig, das der RAM nur ein Zwischenspeicher für Daten ist, auf
die der Prozessor häufig und schnell zugreift?
Das würde ja hier bedeuten, das der Prozessor einfach nicht so schnell
wäre wie  z.B. einer mitz 128k Ram.
Damit kann ich dann leben, oder gibts es noch andere Probleme, die
auftretten können.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Bin gerade dabei einen neuen  µC auszuwählen."
-hast du schon mal mit einem "alten" gearbeitet?
1kRAM ist in der Welt der kleinen Mikrocontroller (dazu zähle ich jetzt
mal 8051, PIC und AVR, also die üblichen 8bitter) schon ziemlicher
Luxus, den nicht viele bieten. Scheinst mir eher aus der PC-Ecke zu
kommen, wo nur noch mit Mbyte-weise hantiert wird. Mit 1k kann man
schon allerhand anfangen.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Geschwindigkeit hat die Menge an RAM überhaupt nichts zu tun.
Es bedeutet nur, dass man mehr Speicher für Variablen und andere
temporäre Daten hat.

RAM ist dazu aber noch wesentlich schneller als EEPROM, hat aber den
Nachteil, dass die Daten flüchtig sind, sprich bei Entfernen der
Stromversorgung verloren sind.

Wie kommst Du darauf, dass ein Controller mit weniger Speicher
langsamer ist?

Gruß Rahul

Autor: Berti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Steht wohl so im PC-games... ;-)

Autor: Malte Marwedel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wichtig der RAM ist, hängt davon ab was du programmierst. Die
Register sind da deutlich wichtiger, da je mehr Register vorhanden
sind, desdo effizienter können die Programme geschrieben werden.
Reichen die Register nicht aus, so müssen die Daten in den RAM
"ausgelagert" werden. Bei der AVR Serie besitzt jeder Chip 32
Register, meines wissens besitzen viele Mikrocontroller eher weniger
als 32 Regiser.

Autor: Khani (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Achtung vor Irrtümern - der ATMega8 hat genau 512 Bytes RAM nicht 512k
!!
MfG, Khani

Autor: Khani (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh Mist !!

512 Byte EEPROM !! (nicht RAM)

Entschuldigt vielmals !

Danke, Khani

Autor: Frank Linde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul: So pauschal kannst Du das nun aber auch nicht sagen. Wenn ein
Programm/Algorithmus 1.500 Byte Daten zwischenspeichern muß und der
Controller hat nur 1k RAM, dann wird die Lösung mit externem
ErweiterungsRAM oder eben EEPROM durchaus deutlich bis extrem viel
langsamer. Schreibst Du ja im Prinzip auch selbst (EEPROM).

Wie oft so etwas in typischen µC-Applicationen vorkommt, steht
allerdings auf einem anderen Blatt.

Gruß, Frank

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank:
Das ist schon klar.
Es ist aber eher ein Problem der Software und der Controller-Wahl an
sich.
Wenn es um viel Speicher und hohe Geschwindigkeit geht, würde ich sonst
einen Embedded-PC empfehlen.
Da läuft dann auch Windows drauf (nicht unbedingt XP, aber immerhin
CE)...

Autor: Stephan Schwarz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK Danke Jungs
Meine Frage ist nur entstanden, weil ich nicht richtig gelesen habe.
Ich hab einfach das k überlesen.
Ein AT90S2313 hatt 128 BYTE, während der ATMEGA8 1k Byte hat.
Ich hab gedacht es wären 128kByte beim 2313 und fragte mich dann warum
der ATMEGA8 so wenig RAM hat.  Hmmm   peinlich.
Aber da hab ich wenigstens noche ein paar Infos bezüglich
Speicheraufteilung bekommen.

Ich war der Meinung, das immer erst der RAM vollgeschrieben wird und
dann das EEPROM zum Einsatz kommt. Mit der Thematik muss ich mich wohl
noch beschäftigen.

Stephan

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


der µC schreibt überhauptnix selber ins RAM Oder EEprom, das muß schon
dein Programm machen.

Gruß
Mario

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich spiele im moment mit einem 16F84 PIC herum, der hat
1k Flash und 64 Byte Ram.
Am Kontroller betreibe ich ein LCD Modul im 4 Bit Modus,
ein DS1820 1wire Temperatursensor, ein DS1307 i²c RTC Modul,
einen Ventilator über PWM und 2 Taster.
Da Programm liest Temperatur und Uhrzeit, zeigt diese an uns
steuert den Lüfter. Alle Schnittstellenprotokolle sind in
Software implementiert. Die Software ict in C geschrieben und
benötigt 831 Byte im Flash sowie 33 Byte Ram.
In Assembler könnte ich da wahrscheinlich noch sparsamer arbeiten,
aber wozu? Dies nur mal so als Hinweis was man mit den paar Bytes
alles machen kann.

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Martin:
Ist dein Programm auf einem anderen PIC schneller, der mehr RAM hat?
;P

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rahul

Nöö, dem Prozessor ist es egal wie viel RAM nicht
genutzt wird :-)

Gruß
  Martin

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.