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.
"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.
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
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.
Hallo, Achtung vor Irrtümern - der ATMega8 hat genau 512 Bytes RAM nicht 512k !! MfG, Khani
Oh Mist !! 512 Byte EEPROM !! (nicht RAM) Entschuldigt vielmals ! Danke, Khani
@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
@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)...
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
Hallo, der µC schreibt überhauptnix selber ins RAM Oder EEprom, das muß schon dein Programm machen. Gruß Mario
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.
@Rahul Nöö, dem Prozessor ist es egal wie viel RAM nicht genutzt wird :-) Gruß Martin
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.