Hallo, die Frage klingt dumm, doch ich kann sie nicht 100%ig beantworten. Hintergrund: Ich gehe davon aus, daß jeder Mikrocontroller zumindest ein bisschen ROM haben muss, damit er die Programme die man in den Flash-Speicher läd verstehen kann. Oder ist das was ich meine i.d.R. etwa rein hardwaretechnisch gelöst? Ich bin über die Worte "ROMless" gestossen, als mir bei ATMEL der AT80C51RD2 über dem Weg gelaufen ist. Vielen Dank!
Das heißt hier, dass du den Programmspeicher außen dranhängen musst. Kein Flash.
@Hildegard (Gast) >Ich gehe davon aus, daß jeder Mikrocontroller zumindest ein bisschen ROM >haben muss, damit er die Programme die man in den Flash-Speicher läd >verstehen kann. Nicht zwingend. > Oder ist das was ich meine i.d.R. etwa rein > hardwaretechnisch gelöst? Ja. MFG Falk
Hildegard schrieb: > Ich gehe davon aus, daß jeder Mikrocontroller zumindest ein bisschen ROM > haben muss, damit er die Programme die man in den Flash-Speicher läd > verstehen kann. Nicht bei Bausteinen, die vom technischen Alter her dem Durchschnittsalter der Forenteilnehmer entsprechen dürften. ;-) Damals (Intel 80C51) gab es noch kein Flash. Es gab internes Masken-ROM und alternativ externes EPROM. Intels 8031 (offiziell ROM-less) war technisch identisch mit dem 8051 (mit Masken-ROM), d.h. hatte durchaus ROM drin, aber dessen Inhalt war unbrauchbar.
Veto ! @A.K. Auch heute werden noch ROM-Less Microcontroller gemacht. Einfach weil der Speicher extern schneller und sehr viel größer sein kein. Hört sich wie ein Widerspruch an, ist aber keiner. Große Speicher, vor allem sehr schnelle, machen auf dem Chip nur Probleme. Deshalb sieht er aus wie ein Microcontroller, hat aber den Speicher komplett extern. Naja, manchmal ist noch ein BootROM drin, aber das gildet ja nicht, oder ;-) Gruß
Welche denn zum Beispiel? Gibt's da auch welche, die man ohne größeren Kostenaufwand ausprobieren könnte? Also nur das Programm in Freeware schreiben und per eigenem EEPROM-Brenner flashen und dann an den Chip hängen? Ich bin da ja sehr experimentierfreudig. Mit freundlichen Grüßen, Valentin Buck
@Valentin Ich bin da leider etwas subjektiv vorbelastet. Beispielsweise von Toshiba über Glyn gibt's ARM9 basierende Controller Boards TMPA910CRAXBG. Läuft sogar Linux drauf ! Gruß
Echt irre Teile. Eigentlich sind normale PC-Prozessoren ja auch ROMless devices, die Software kommt ja erst mit der Festplatte. Eigentlich habe ich eher etwas im Bereich eines ATMEGA-8 gesucht. Trotzdem danke. Mit freundlichen Grüßen, Valentin Buck
ROMless sagt man ja nur, wenn es auch eine Version MIT ROM gibt. Ist wie mit Spare Ribs.
Michael Leusink schrieb: > Auch heute werden noch ROM-Less Microcontroller gemacht. Einfach weil > der Speicher extern schneller und sehr viel größer sein kein. Herrje, natürlich, wenn man den Begriff Microcontroller auf alles ausdehnt, was keinen PC antreibt und einen Program Counter hat. Mit dieser Begriffslogik ist doch jeder Pentium 4 Prozessor, der zufällig nicht in einem PC sondern beispielsweise in einem NAS Device steckt, auch ein Microcontroller. Ich habe ein bischen Probleme mit dieser Begriffswelt. Willst du ernsthaft einen 300MHz ARM9 Prozessor mit Cache einem integrierten Microcontroller der Klasse 80C51 gegenüberstellen? Das sind doch zwei völlig verschiedene Grössenordnungen. Ein 8051 war damals ein vollintegrierter Microcontroller wie heute AVRs, der ARM9 ist eher das was damals ein 68000 oder 68070 war, mehr Prozessor als integrierter Microcontroller, auch wenn man mit solchen 68xxx-ern nicht nur Amigas angetrieben hat, sondern sie auch Controller-Funktion bekamen.
@ Eddy Current Wie nennt man denn diese "Dinger" ohne eigenen Programmspeicher? Und welche sind denn zum Ausprobieren geeignet? 8051? Mit freundlichen Grüßen, Valentin Buck
Prozessoren, die für Einsatz mit (hauptsächlich) externem Speicher vorgesehen sind, nenne ich in alter Tradition Microprozessoren. Microcontroller sind für mich jene ICs, die weitgehend vollständig ausgebaut sind, die Speicher und I/O überwiegend selbst enthalten. Auch wenn manche davon externen Speicher zulassen. In diesem Sinn ist ein ROM-less Microcontroller eine Sonderversion eines normalerweise vollintegrierten Microcontrollers, dem der interne Speicher fehlt. Natürlich ist das nicht absolut trennbar, schon garnicht mehr heute, aber wenn man alles Microcontroller nennt, was nicht als Hauptprozessor in einem PC steckt, dann braucht man neue Begriffe, weil die alten sinnlos geworden sind.
@A.K. An welcher Stelle entspricht der TMPA910CRAXBG nicht Deiner Definition ? War ja auch nur "Beispielsweise". Es gibt heute von fast von jedem Hersteller ROM-Less Mikrocontroller. ST, TI, Zilog Z8, wie erwähnt Toshiba mit TLCS870, TLCS900 Familie ... Soll ich so weitermachen. Gruß
PS: Und wenn man mit solchen ARM9 Prozessoren (oder dem erwähnten P4) und allerlei Speicher und was sonst noch ein System aufbaut, dann bekommt man ggf. einen Controller. Indem das Gesamtsystem der Controller ist, mit einem Microprozessor inmitten. Das mag meine persönliche Begriffswelt sein, aber sie gefällt mir besser.
Valentin Buck schrieb: > Eigentlich sind normale PC-Prozessoren ja auch ROMless devices, > die Software kommt ja erst mit der Festplatte. Nein, mit dem BIOS. 8051er (80c32 z.b.) sind gut geeignet.
Michael Leusink schrieb: > An welcher Stelle entspricht der TMPA910CRAXBG nicht Deiner Definition ? Das ist ein Kern eines Gesamtsystems, ohne erheblichen externen Aufwand weder lebensfähig noch sinnvoll. Daher für mich mehr Prozessor als Microcontroller, auch wenn die Hersteller heute mittlerweile alles als Microcontroller bezeichnen, was kein x86/Power/SPARC ist.
Ich würd einen µController Controller und nicht Prozessor nennen wenn er Peripherie an Bord hat um mit den Beinchen, die überall heraushängen, auch "Sachen schalten" zu können, also etwas kontrollieren zu können. Prozessoren sollen zweckbestimmt wohl "nur" Daten + Befehle fressen, verarbeiten und wieder ausspucken. Aber ich schweife ab. ROM-Less-Typen könnte man beispielsweise benutzen um das Programm zu ändern, indem man das externe ROM aus dem Sockel rupft und ein anderes reinsteckt, weil das beispielsweise einfacher/billiger ist als den Controller zu ändern. Wenn man sowas in der Art vorhat kann man auch billigere Controller kaufen, auf denen man ein paar Cent spart indem man den Speicher weglässt.
Andreas K. schrieb: > Ich würd einen µController Controller und nicht Prozessor nennen wenn er > Peripherie an Bord hat um mit den Beinchen, die überall heraushängen, > auch "Sachen schalten" zu können, also etwas kontrollieren zu können. > Prozessoren sollen zweckbestimmt wohl "nur" Daten + Befehle fressen, > verarbeiten und wieder ausspucken. Kann man natürlich so definieren. Nur wird dann mit dem ersten integrierten I/O-Pin oder Timer aus dem Microprocessor ein Microcontroller. Der erste CMOS-Microprozessor RCA 1802 hatte 4 Input-Pins und einen Output, eine Folgeversion noch dazu ein kleines bischen RAM und einen Timer. Macht das aus denen Microcontroller? Aber wenn wir alle miteinander schon so schön am Haarspalten sind: Ein x86 wird nie ROM-less sein. Diese Dinger haben mehr ROM mit mehr Programm drin als viele Microcontroller. Mit MIPS oder ARM geht das, aber nie und nimmer mit x86. ;-)
> Und welche sind denn zum Ausprobieren geeignet? > 8051? Der waere geeignet. Aber warum? Sowas hat viele Nachteile: 1. Dem Prozessor gehen eine Menge Datenleitungen verloren Es gab mal einen 80535 um das etwas abzumildern. 2. EMV Probleme werden groesser 3. Du musst dein Programm irgendwie in den externen Programmspeicher bekommen Diese Nachteile nimmt man nur in kauf wenn man mehr externes Rom braucht als man intern bekommen kann. Nun kann man aber mittlerweile Prozessoren mit 768kb oder sogar 1MByte Flashrom kaufen. Da wuesste ich nicht wieso man sich soetwas antun sollte. BTW: Renesas hat mit dem SH7262 noch ein anderes interessantes Konzept vorgestellt. Der Prozessor hat intern nur 1MByte Ram und kein Flashrom. In Wahrheit enthaelt er aber wohl ein kleines bisschen Flashrom wo ein Bootloader integriert ist. Der laedt beim starten ein paar kByte aus einem externen SPI-Flashrom und startet dieses Programm. Das hat verschiedene Vorteile: 1. Das eigene Programm laeuft im Ram. Das macht es dem Debugger leichter. (Brakepoints, Watchpoints, Variablenueberwachung) 2. Braucht man sehr viel Flashrom haengt man halt ein dickes Flashrom dran und laedt rein was man braucht. Es kostet aber kaum externe Datenleitungen weil alles seriell geschieht. 3. Braucht man nur wenig Flashrom hat man viel Ram fuer sein Programm frei. 4. Man kann auch verschiedene Programme im Flashrom haben und nur reinladen was man gerade braucht. 5. Man kann sein Programm auch von ganz woanders laden. Zum Beispiel von einer SD-Karte. Mit anderen Worten man kann mit einem Microcontroller ein System aufbauen das einem eher den Komfort eines ausgewachsenen Rechner bietet. Damit rumzuspielen macht richtig Spass! Olaf
A. K. schrieb: > Der erste CMOS-Microprozessor RCA 1802 hatte 4 > Input-Pins und einen Output, eine Folgeversion noch dazu ein kleines > bischen RAM und einen Timer. Macht das aus denen Microcontroller? Aber der primäre Zweck war doch wohl Datenverarbeitung, oder nicht?
Andreas K. schrieb: > Aber der primäre Zweck war doch wohl Datenverarbeitung, oder nicht? Definiere Datenverarbeitung. Verarbeitet eine Heizungssteuerung keine Daten? Bekannt wurden diese Dinger durch Einsatz im All, nicht zuletzt in Steuerungen. Masseneinsatz war das freilich nicht, ich meine mal gelesen zu haben, dass sie reichlich in Telefonanlagen zu finden waren. Als Microcontroller hatte man sie m.W. nie gesehen, auch wenn wohl fast alle damit gebauten Systeme als Controller betrachtet werden können. So'n Unikum programmiert kaum einer freiwillig, da muss Schmerzensgeld her ;-).
Valentin Buck schrieb: > Wie nennt man denn diese "Dinger" ohne eigenen Programmspeicher? Das wurde dann wohl ausreichend diskutiert :-) > Und welche sind denn zum Ausprobieren geeignet? > 8051? Ja, 8051 ist 1. Wahl. 8048 wäre auch nett, ist noch mehr Hardcore, aber auch deutlich weniger verbreitet, siehe http://de.wikipedia.org/wiki/8048 Von der Funktionalität ist er ungefähr auf dem Niveau eines PIC16F84.
A. K. schrieb: > Definiere Datenverarbeitung. Lade Daten (Bitmuster) + Befehl, Schreibe Ergebnis in Speicher. Ein µC macht das natürlich auch, der macht das aber nicht weil er soll sondern weil er damit eine beliebige, (Programmierbare) Schaltung simulieren soll. Man könnte natürlich auch die Schaltung eines Prozessors simulieren. Man muss also nen Schritt zurücktreten und das ganze betrachten. In der Kiste rechts unter meinem Schreibtisch steckt ein Core2-Quad, alleine genommen ist er hilflos, mit dem ganzen Drumherum kann er aber viele Sachen. Wenn ich jetzt noch eine IO-Karte reinbastle kann ich damit eine Kaffeemaschine steuern, genau wie mit einem Mikrocontroller, aber meinen PC würde ich nicht mehr als Mikro betrachten. Ergo: µController beinhalten einen Prozessor, Prozessoren aber keine µController.
Zusätzliche IO bekommt man beim 8051 per Memory Mapping das reicht immer. Es gibt auch recht schnelle Exemplare ohne 1/12 Zyklus.
Andreas K. schrieb: > Ein µC macht das natürlich auch, der macht das aber nicht weil er soll > sondern weil er damit eine beliebige, (Programmierbare) Schaltung > simulieren soll. Passt ein Datalogger in dieses Schema? > Prozessoren aber keine µController. Naja, auch das hat's schon gegeben. Im dicken Boliden ein kleines Hilfsrechnerchen, der dem grossen beim Start hilft und ab und zu mal nach dem Rechten sieht. Aber im Prinzip stimmt das natürlich.
Wow, Klasse, vielen Dank für die vielen Antworten! Also ich fasse einmal zusammen und beziehe mich dabei nur auf Mikrocontroller von heute: - ROMless bedeutet ohne Flash. D.h. man muß einen externen Flashspeicher als Programmspeicher dranhängen. - Der Mikrocontroller kann mit dem Programmcode umgehen, (wenn er ihn in einem externen Flashspeicher hat), weil seine Hardware ihm diese Fähigkeit gibt. @Olaf: Olaf schrieb: > Renesas hat mit dem SH7262 noch ein anderes interessantes Konzept > vorgestellt. Der Prozessor hat intern nur 1MByte Ram und kein Flashrom. > In Wahrheit enthaelt er aber wohl ein kleines bisschen Flashrom wo ein > Bootloader integriert ist. Der laedt beim starten ein paar kByte aus > einem externen SPI-Flashrom und startet dieses Programm. Verstehe ich es richtig, das neue Konzept ist hier das "In den Ram Laden", richtig? Nochmal vielen Dank für die vielen Antworten und viel Spaß beim weiterdiskutieren!
Hildegard schrieb: > Verstehe ich es richtig, das neue Konzept ist hier das "In den Ram > Laden", richtig? Sowas ähnliches hatte Atmel auch mal beim AT91RM3400 (ARM7) realisiert. 96KB RAM, kein Flash, aber 256KB festprogrammiertes ROM mit Bootloader und I/O-Supportcode. Das Programm steckt(e) in einem externen EEPROM läd. Die gleiche Strategie verwenden auch der Parallax Propeller und die recht frischen XMOS-Chips. Insbesondere XMOS käme mit seinen internen 400MHz mit einem langsamen mit Wartezyklen und Puffern ausgestatteten Flash-Speicher kein bischen zurecht.
Olaf schrieb: > Renesas hat mit dem SH7262 noch ein anderes interessantes Konzept > vorgestellt. Der Prozessor hat intern nur 1MByte Ram und kein Flashrom. > In Wahrheit enthaelt er aber wohl ein kleines bisschen Flashrom wo ein > Bootloader integriert ist. Der laedt beim starten ein paar kByte aus > einem externen SPI-Flashrom und startet dieses Programm. Nennt man das zufällig "Selfprogramming Memory"? -------------------- Noch eine Frage: In den Atmelseiten wird allein der AT80C51RD2 als ROMless aufgeführt. http://www.atmel.com/dyn/products/devices.asp?family_id=604 Doch im "Parametric Product Table" von Atmel gibt es noch weitere uC ohne Flash. Hildegard schrieb: > Also ich fasse einmal zusammen und beziehe mich dabei nur auf > Mikrocontroller von heute: > > - ROMless bedeutet ohne Flash. D.h. man muß einen externen Flashspeicher > als Programmspeicher dranhängen. Muss ich da einen Widerspruch zu meiner Zusammenfassung sehen? Irgendwas muß ich da wohl noch nicht verstanden haben. :S
Hildegard schrieb: > Doch im "Parametric Product Table" von Atmel gibt es noch weitere uC > ohne Flash. Beispielsweise den AT83C5134. Der hat sehr wohl internes ROM, aber das ist kein Flash-ROM, sondern richtig klassisches Masken-ROM, d.h. dessen Inhalt wird zum Zeitpunkt der Fertigung festgelegt und ist später kein bischen änderbar. Naturgemäss ist sowas nur bei grossen Stückzahlen interessant. Oder in teuren Sonderfällen, wie hohen Anforderungen an Lebensdauer oder Robustheit. Also: ROM-less heisst ohne ROM. Egal ob Flash oder anders. Und kann auch heissen: Trotzdem mit ROM, aber ohne anwenderdefiniertes ROM (auch Masken-ROM ist anwenderdefiniert, aber das Verfahren ist etwas umständlich ;-).
> Verstehe ich es richtig, das neue Konzept ist hier das "In den Ram > Laden", richtig? Bei einigen Sonderfaellen. Normalerweise, wie z.B beim 8051, wird das Programm direkt aus dem externen Speicher ausgefuehrt. Okay, letztlich wird natuerlich auch der aktuelle Befehl in die CPU eingelesen. Den Unterschied merkt man wenn man seinen externen Speicher von der CPU neu programmieren will. Da man die Speicher nur in Bloecken loeschen kann muss man sicherstellen das kein Zugriff auf den Speicherblock erfolgt. Es kann sogar sein das man ueberhaubt keinen Zugriff auf den Speicher hat wenn er geflasht wird. Dann muss man die Brennroutine ins Ram kopieren. > Nennt man das zufällig "Selfprogramming Memory"? Hm..habe ich so noch nie gehoert. Aber da laesst sich jede Marketingabteilung wohl was anderes einfallen. > Also: ROM-less heisst ohne ROM. Egal ob Flash oder anders. Sagen wir mal lieber ohne Rom von dem der Anwender wissen soll. Bei dem von mir angefuehrten Sh7262 behauptet Renesas auch der haette kein Rom. Aber natuerlich startet er irgendwo seinen Bootloader. Und auch ein 8039 hat ja offiziell kein Rom obwohl es die Maskenversion einer Waschmaschine sein kann. Gerade beim 8039 stellt sich zum Beispiel die Frage ob es nicht auch Versionen gab die wirklich keinerlei Rom hatten und ob die sich zu den anderen vielleicht im Stromverbrauch unterschieden. Olaf
Bei Atmel siehts bei den ARMs auch so aus, der SAM9Mxx / SAM0Gxx haben auch alle einen ROM Code der Programmcode von irgendwoher ins interne SRAM laden kann, um es dann zu starten. Sind aber in der liste nicht vermerkt. Im Datenblatt hingegen schon. Die Vorgänger hatten das teilweise auch RM9200 z.B. da konnte man sogar teile des ROM Codes verwenden.
Olaf schrieb: >> Nennt man das zufällig "Selfprogramming Memory"? > > Hm..habe ich so noch nie gehoert. Aber da laesst sich jede > Marketingabteilung wohl was anderes einfallen. Sorry, Olaf, meinte natürlich "Self Program Memory", siehe: http://www.atmel.com/dyn/products/param_table.asp?family_id=604&OrderBy=1256&Direction=DESC
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.