Forum: Mikrocontroller und Digitale Elektronik Was bedeutet ROMless?


von Hildegard (Gast)


Lesenswert?

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!

von Sam .. (sam1994)


Lesenswert?

Ich denke mal man braucht externen Flash.

von User (Gast)


Lesenswert?

Das heißt hier, dass du den Programmspeicher außen dranhängen musst. 
Kein Flash.

von Falk B. (falk)


Lesenswert?

@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

von Sam .. (sam1994)


Lesenswert?

Falk Brunner schrieb:
> Kein Flash.

warum kann das kein Flash sein können?

von (prx) A. K. (prx)


Lesenswert?

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.

von Michael L. (hasimaus)


Lesenswert?

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ß

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

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

von Michael L. (hasimaus)


Lesenswert?

@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ß

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

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

von Eddy C. (chrisi)


Lesenswert?

ROMless sagt man ja nur, wenn es auch eine Version MIT ROM gibt. Ist wie 
mit Spare Ribs.

von (prx) A. K. (prx)


Lesenswert?

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.

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

@ 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

von (prx) A. K. (prx)


Lesenswert?

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.

von Michael L. (hasimaus)


Lesenswert?

@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ß

von (prx) A. K. (prx)


Lesenswert?

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.

von Icke (Gast)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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.

von Andreas K. (derandi)


Lesenswert?

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.

von (prx) A. K. (prx)


Lesenswert?

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. ;-)

von Olaf (Gast)


Lesenswert?

> 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

von Andreas K. (derandi)


Lesenswert?

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?

von (prx) A. K. (prx)


Lesenswert?

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 ;-).

von Eddy C. (chrisi)


Lesenswert?

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.

von Andreas K. (derandi)


Lesenswert?

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.

von Icke (Gast)


Lesenswert?

Zusätzliche IO bekommt man beim 8051 per Memory Mapping das reicht 
immer.
Es gibt auch recht schnelle Exemplare ohne 1/12 Zyklus.

von (prx) A. K. (prx)


Lesenswert?

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.

von Hildegard (Gast)


Lesenswert?

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!

von (prx) A. K. (prx)


Lesenswert?

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.

von Hildegard (Gast)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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 ;-).

von Olaf (Gast)


Lesenswert?

> 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

von 123 (Gast)


Lesenswert?

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.

von Walter (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.