Forum: Mikrocontroller und Digitale Elektronik Einstieg in die MikroController Welt 8, 16Bit oder 32Bit?


von Lauren (Gast)


Lesenswert?

Hallo liebe Leute,

Ich will auf keinen Fall eine Diskussion PIC-AVR-MSP etc.. starten, aber 
ich frage ganz anders.

- Auf der Homepage von Mikroe und Microchip, oder auch AVR wird mehrmals 
über die neuen 32Bit Architektur berichtet.
Meine Frage ist:
-Lohnt sich für Anfänger direkt mit einem 32Bit MicroController zu 
starten, oder muss man wirklich den Weg von unten nach oben erarbeiten?
-muss ich mit 8Bit,16Bit,24Bit und dann erst mit 32Bit anfangen?

Was ich bis jetzt weiß ist: 8 und 16Bit Microcontroller sind gut 
geeignet für Messen, Steuern  und Regeln Aufgabe.

die 32Bit Architektur ist eher um Daten zu verarbeiten, hier fängt sogar 
die Überlegung ein Embedded Betriebssystem zu implementieren.

Wenn es so ist, dann fange ich doch lieber mit einem 32Bitler 
Controller, dann habe ich alles was ich brauche! Messen, Steuern, regeln 
und Daten verarbeiten. Man verliert kein Zeit und man ist State of The 
Art..

Korrigiert bitte meine Vorgehensweise wenn ich mich irre!

Ich denke aber dass der einzige Nachteil an diese Geschichte ist : wenn 
man mit 32Bit anfängt, wird meistens bei den Hersteller vorausgesetzt 
dass man mit einem 8 oder 16Bit Controller sich vertraut gemacht hat. 
Also die werden in der Beschreibungen nicht mehr über Timer, Interrupts 
etc ausführlich berichten, ist es so?

Also, bitte halten wir diese Diskussion allgemein und Plattform 
unabhängig, wobei wenn ich ein bisschen Subjektiv bin, dann kann ich 
erzählen dass ich ein Artikel bei RS-Online über 32Bit Architekturen 
gelesen habe, und dort wurde gesagt dass der PIC32Bit wäre eins der 
schnellste Controller auf dem Markt, gegenüber seine Konkurrenten ;-) 
wir wissen was sie damit meinen..

Also mit 8 und 16Bit anfangen? oder direkt mit einem 32Bit-ler ?

Danke :-)

von Thomas E. (thomase)


Lesenswert?

Lauren schrieb:
> Wenn es so ist, dann fange ich doch lieber mit einem 32Bitler
>
> Controller, dann habe ich alles was ich brauche! Messen, Steuern, regeln
>
> und Daten verarbeiten. Man verliert kein Zeit und man ist State of The
>
> Art..

Du wirst alle Zeit der Welt verlieren, da du nie schnallen wirst, was du 
da machst. Warum fängst du nicht gleich mit dem 64-Bitter an, vor dem du 
gerade sitzt? Der kocht auch nur mit Wasser.

mfg.

von Anja (Gast)


Lesenswert?

Lauren schrieb:
> Also mit 8 und 16Bit anfangen? oder direkt mit einem 32Bit-ler ?

Oft ist es halt so: bei einem 32-Bitter brauchst du erst mal mehrere 
hundert Befehle bis Du die Register initialisiert hast, damit Du 
anfangen kannst um Deine LED blinken zu lassen.

-> bei einem 8-Bitter sind die ersten Erfolgserlebnisse sicher schneller 
vorhanden da Du dort nur wenige Initialisierungsbefehle brauchst.

Gruß Anja

von Lauren (Gast)


Lesenswert?

Ok die Zeit ist auch ein Argument ;-) also doch lieber langsam anfangen.

von Klaus W. (mfgkw)


Lesenswert?

Für die Schwaben: 8 Bit ist viel billiger.

von Bingo (Gast)


Lesenswert?

Meisten 8 bitters gibt im dip oder tqfp hause.

Arm ist oft lqfp (0.5 mm) , so für selbstbau solltest auch am das 
denken.

mfg
Bingo Dänemark

von Vuvuzelatus (Gast)


Lesenswert?

>der PIC32Bit wäre eins der
>schnellste Controller auf dem Markt, gegenüber seine Konkurrenten ;-)

Ja, genau. Man kann das einfach mit Autos vergleichen: Eines der 
schnellsten straßentauglichen Autos ist der Bugatti Veyron (~1000 PS, 
~400 km/h, ~1E6 Euro). Deshalb fährt auch jeder, der schlau ist, mit 
diesem Modell und nicht mit einem anderen.

von uli (Gast)


Lesenswert?

Hallo,

es ist immer eine Frage was man will. Einen 32bitter im DIL8 Gehäuse 
habe ich noch nicht gesehen. Ich finde die ARM Serie von Philips/NXP 
schön a la LPC213x. Diese kann man schön ohne viel Hardware flaschen und 
auch die Programmierung ist meiner Meinung recht simpel. Also hier kann 
man auch eine LED zum blinken bringen ohne viel Programmieraufwand. 
Allerdings gibt es diese Bauteile nicht in einem DIL8 Gehäuse wie einen 
AVR Tiny22.

Gruß
Uli

von Huch (Gast)


Lesenswert?

Für den absoluten Anfänger ist es eigentlich am wichtigsten überhaupt 
anzufangen. Mit welcher CPU oder Wortbreite ist dabei nebensächlich.

Du legst in Deiner Frage viel Wert auf Faktoren die eigentlich von 
marginaler Bedeutung sind, gehst aber über andere hinweg, die viel 
wesentlicher sind. Das ist OK. Dafür bist Du Anfänger.

Der Unterschied in den Wortbreiten (8, 16, 32) ist garnicht entscheidend 
für die Konzepte die man lernen muss um zu programmieren. Sie sind zwar 
dennoch zu berücksichtigen, aber wenn man die auftretenden Fragen einmal 
geklärt hat ist nur dieses Wissen einfach auf andere Wortbreiten zu 
übertragen. Das ist also in keinem Fall verlorene Zeit.

Du gehst von der Annahme aus, Hersteller würden voraussetzen, dass man 
sich mit 8 Bit Prozessoren vertraut gemacht hat, bevor man mit 32 Bit 
Prozessoren beginnt und insbesondere "in der Beschreibungen nicht mehr 
über Timer, Interrupts etc ausführlich berichten". Die Basis für diese 
Annahme beschreibst Du leider nicht.
Die Voraussetzung ist problematisch und der Schluss falsch. Einzelne 
Mitarbeiter bei dem Hersteller werden vermutlich so denken, weil das der 
gewöhnliche Weg ist, aber eine Firmenpolitik ist solch eine Annahme 
nicht. Sie macht auch keinen Sinn. Vor allem aber wird kein Hersteller 
bei seinen Beschreibungen Details auslassen, weil sie bei seinen 8-Bit 
Varianten genauso sind. Beides liegt nicht im Interesse des Herstellers. 
Er wird im Gegenteil nur voraussetzen, das Dir das Prinzip eines 
Prozessor bekannt ist, sonst aber überhaupt nichts. Die Hotlines wären 
so schlichtweg nicht zu bezahlen.

Du denkst hier schon an Betriebssysteme und willst am besten nur einen 
kaufen, der alles kann. Die Prinzipien allerdings sind, mit einigen 
Ausnahmen aber unabhängig von dem Prozessor oder seiner Wortbreite. (Es 
gibt beispielsweise das uCOS für 8-Bitter).
Wenn Du das lernen willst, kannst Du das auch auf einem kleinen.

Auch Herstellerempfehlungen, will ich es mal nennen, sind für Dich im 
Moment von eher geringer Bedeutung. Zum einen kannst Du hier 
Marketinggeklingel garnicht von Fakten unterscheiden. Zum anderen spielt 
für Dich erstmal die Schnelligkeit garkeine Rolle. Das ist als wenn 
jemand der reiten lernen will auch gleich das schnellste Rennpferd haben 
will. Das kann er garnicht beherrschen. (Das Beispiel hinkt natürlich 
wie jedes andere auch).

Auch wegen der Timer oder der sonstigen Peripherie brauchst Du Dir keine 
sorgen wegen Zeitverschwendung machen. Das Prinzip ist bei allen uCs das 
selbe. Wenn Du das mal kannst ist es OK. Im Detail unterscheiden sie 
sich aber doch so merkbar, das Du garkeine Möglichkeit hast einen zu 
wählen mit dem Du alle anderen erschlägst. Du kannst auch kein Auto 
wählen, wo Scheibenwischer, Klimaanlage und Radio nach identischen 
Prinzipien bedient werden. Aber in der Regel sind die Grundlagen die 
selben.

Der Schluss aber ist daraus, das Du Dir erstmal eine kleine Platine von 
Watterott oder Pollin kaufst und einfach anfängst. Wo das alles auf 
welche Weise hingeht, lernst Du dann schon. Dein Anspruch gleich am 
Anfang die "richtige" Wahl zu treffen ist weder sinnvoll noch erfüllbar.

Welche Hardware Du brauchst und wie Du anfängst kannst Du hier in 
Tutorials lesen.

von Lauren (Gast)


Lesenswert?

Das Beispiel mit Bugatti finde ich aber nicht gerecht!
Warum soll ich 1,6Millionen ausgebe wenn ich auf Autobahn nur 120KMH 
fahren darf und auf Landstrasse 90KMH ? Also das ist nur Status!!

Ich kaufe kein ARM oder 32Bit Controller um ein LED blinken zu lassen.

Ein Golf fährt auch ganz gut.

Deshalb Geschwindigkeit finde ich nicht immer ein Argument! sondern die 
Periferie und was ein Microcontroller so alles on Board hat, wäre mir 
viel lieber und interessanter.

Ich würde z.B zu ein MicroController tendieren, der onboard 
USB-Controller hat. etc..

von Lauren (Gast)


Lesenswert?

@Huch : danke für die ausführliche Antwort.

Ich denke einiges ist mir jetzt klarer geworden, wobei Interessant zu 
wissen, warum hast du in deine Beschreibung keine Anwendungen genannt?

Viele Hersteller teilen deren Microcontroller in unterschiedlichen 
Familien-Gruppen und empfehlen für bestimmte Bereiche (Automotive, 
Motor-Steuerung, etc..) bestimmte Controller.

Vielleicht wäre meine Frage dann von Anfang an falsch formuliert!
Ich denke, ein modernes Fahrzeug hat mindestens 100Microcontroller unter 
die Haube. Hier ist Klug zu wissen welche Aufgabe löse ich am 
effizientesten, mit wenig Aufwand und Kosten, aber mit hohe 
Zuverlässigkeit und Verfügbarkeit.

Deshalb wäre vielleicht doch nicht verkehrt mit 8Bit Controller 
anzufangen.
Nach dem Motto: wenn ich ein LED blinken lasse, dann kaufe ich ein 
Controller, der 2euro kostet.

von Huch (Gast)


Lesenswert?

>Ich denke einiges ist mir jetzt klarer geworden, wobei Interessant zu
>wissen, warum hast du in deine Beschreibung keine Anwendungen genannt?

Warum sollte ich? Du wirfst in Deinem vorherigen Post selbst die Frage 
auf: Vielleicht hast Du die Frage falsch gestellt.

Als Anfänger interssieren Dich Anwendungen erstmal überhaupt nur in 
Deinen Phantasien. Tasten abfragen, PWM dazu, ein LCD ansteuern und noch 
Ton ausgeben, davon träumst Du.

Tatsächlich aber fängst Du erstmal an, eine LED leuchten zu lassen, dann 
blinken. Dann eine Taste abfragen, entprellen. Dann kämpfst Du mit dem 
Problem gleichzeitig zu entprellen und eine LED blinken zu lassen. Dann 
die PWM. Neue Probleme denn nun müssen drei Vorgänge über Timer 
gleichzeitig laufen. Dabei lernst Du noch was über Zeichenketten, über 
Kodierung, über Listen und Arrays. Du hast soviele Einzelheiten vor Dir, 
das Dir nach spätestens einer Woche so einer Heizungssteuerung mit 
Tasten, PWM und LCD und Ton völlig utopisch vorkommen wird, ein 
unerreichbarer Traum. Das ist auch wieder übertrieben. Aber man fängt 
klein an und nicht gross.

Du weisst noch garnicht was effizient ist und was nicht. Was man wofür 
brauchen kann und wofür nicht.

Wenn Du aber Profi bist und einen Prozessor für eine konkrete Anwendung 
aussuchst hast Du diese vielen kleinen Detailprobleme schon mindestens 
einmal gelöst und weisst, das Firmen natürlich gerne einen 
Anwendunsbereich hinschreiben, denn irgendwofür müssen die Dinger doch 
gut sein und mit Google zu finden. Darüberhinaus sind solche Texte eher 
für Entscheider geschrieben als für Techniker. Dem Techniker ist egal ob 
da steht "für Kaffeemaschinen". Der kennt die Interna und weiss das man 
mit dem Ding auch gut Tee kochen kann. Die einzige Ausnahme ist eine 
spezielle Peripherie; etwa CAN für Automobile oder einen 
Ladungsmengenzähler für Akku-Lader, aber da musst Du erstmal hinkommen.

Wenn Du anfängst fliegen zu lernen steigst Du auch nicht als erstes in 
einen Jumbo. Als Klempner lernst Du erstmal ein Rohr schneiden, zwei 
miteinander verlöten uswusf. und erst nach drei Jahren bist Du in der 
Lage alle Arbeiten die in einem Haus anfallen zu erledigen. Aber noch 
nicht dazu eine Gesamtinstallation zu entwerfen wo die Teile auch 
zusammenarbeiten. Das macht dann ein Ing. oder so.

Du willst hier Entscheidungen treffen für die Grundlagen nötig sind, die 
Du erstmal erwerben musst. Das kannst Du nicht abkürzen oder 
überspringen.

Und lass Dich nicht von den Herstellerseiten so beeindrucken. Der 
Flugschüler sitzt in seiner Chessna, wartet auf den Fluglehrer und 
blätter in einem Firmenprospekt von Boing. Klar, tolle Maschine aber, 
gosh, eine zehnmal höhere Anzahl von Knöpfen und Aggregaten. Dabei kann 
er noch nichtmal landen. So ist Deine Situation.

Das heisst alles nur, das Du noch nicht so weit bist. Du kannst 
natürlich soweit kommen. Aber das kostet Arbeit und ne Menge Kaffee. Der 
Gedanke ist doch nicht neu. Man fängt am Anfang an und nicht am Ende.

Viel Erfolg.

von Pat (Gast)


Lesenswert?

Ich würde für den Einstieg 8 Bit AVR oder PIC nehmen.
Vielleicht eventuell noch MSP430. Aber mehr nicht.
Alles Andere ist mit Kanonen auf Spatzen geschossen.


Bei einem 32 Bit uC würde ich mir übrigens nicht mehr selbst die Arbeit 
machen. Dann würde ich eins der fertigen uC Boards nehmen, Linux drauf 
und fertig. Und dann ein normales Linux Script/Programm machen.
Ein paar GPIO's für einfache I/O Aufgaben haben die Dinger auch noch.
Ansonsten kann man immer noch mit nem kleinen 8 Bit AVR am RS232 eine 
Erweiterung machen.

von Lauren (Gast)


Lesenswert?

@Pat : mmmhh vielleicht hast du genau das geschrieben was ich meinte, 
wobei der Unterschied ist : du weiß schon bereit welches Board und 
welche Linux-Distribution.

Für mich wäre das schon ein Traum.

Ehrlich gesagt, ich wollte den Weg abkürzen und entweder mit Windows 
oder Linux Embedded anfangen, aber vielleicht habt ihr recht!! man soll 
das Fliegen mit kleinem Flugzeug lernen.

Ich finde nur in unsere Zeiten wo sowohl 8Bit als auch 32Bit Controller 
für wenig Geld gibt, warum man nicht direkt mit so einem 32Bit 
Embedded-System anfangen soll?

Vielleicht hatten die Ingenieure vor 20 Jahren nur 8Bit Controller und 
deshalb mussten alle Aufgaben mit diesen Controller lösen.

Aber der Spruch " nicht mit Kanonen auf Spatzen schießen" gilt! und das 
habe ich selber erkannt.

Aber wie gesagt, es ist verdammt hart sich für 8Bit Controller zu 
entscheiden, wo die 32Bit überall gibt ;-)

von Pat (Gast)


Lesenswert?

Naja, es kommt halt immer drauf an, was man machen will.
Es gibt schon Sachen, da ist ein 8 Bit Controller genau das richtige. 
Auch heute noch.
Warum nen dicken, bastlerunfreundlichen, teuren und stromfressenden ARM9 
nehmen, wenns auch z.B. ein ATtiny tut?

Wenn du wirklich mit ARM und Embedded Linux anfangen willst: Es gibt 
diese Embedded Boards mittlerweile an jeder Ecke. Oft wird das passende 
Linux gleich mitgeliefert. Ansonsten halt selber kompilieren.
Kannst ja mal bei google suchen, da findest genug Händler für sowas.

von Lauren (Gast)


Lesenswert?

danke PAT.

Noch vielleicht eine Frage : warum verbindet man oft ARM mit 
Embedded-Linux? meistens auch ARM9, weil die doch 32Bit können? weil die 
schnell sind?

hast du einen konkreten Vorschlag mit welchem board ich anfangen könnte?

von Pat (Gast)


Lesenswert?

Naja, Arm heißt nicht zwangsläufig Linux.
Es gibt auch noch andere Embedded OS. Und man kann die Dinger auch 
komplett selbst programmieren, was jedoch ein Riesenaufwand wäre.

Außerdem ist ARM nicht die einzigste Embedded Prozessorplattform. Es 
gibt beispielsweise auch noch MIPS. Und auch embedded x86 komplatible 
Prozessoren, da kannst dann sogar ein "normales" PC Linux draufhauen.

Welches Board du kaufst, musst du entsprechend deiner Anforderungen 
auswählen. Das kann man so pauschal eigentlich nicht sagen.

von Huch (Gast)


Lesenswert?

Wie ich schon schrieb:

>Für den absoluten Anfänger ist es eigentlich am wichtigsten überhaupt
>anzufangen. Mit welcher CPU oder Wortbreite ist dabei nebensächlich.

von Peter D. (peda)


Lesenswert?

Vielleicht solltest Du Dir erstmal überlegen, welche Anwendungen Du 
programmieren willst.

So ein 8-Bitter ist in der Regel ein komplettes System in einem Chip.
Die minimale Außenbeschaltung ist ein 100nF Ablockkondensator und 
natürlich die Versorgungsspannung.

Die AVRs laufen z.B. mit 1,8..5,5V, d.h. Du brauchst nichtmal einen 
Spannungsregler.
Einfach 2*1,2V Akkus, ne 3V Lithiumzelle oder 4,5V Flachbatterie 
ranpappen und er läuft.

Und er braucht auch keine elend langen Bootzeiten, nach etwa 16ms 
internem Poweron-Reset rennt er los. Die 8..40-Pinner kannst Du einfach 
in nen DIP-Sockel auf ne Uniplatine pappen.

Und zum Flashen kann man nen Bootloader reinprogrammieren, der braucht 
dann nur einen IO-Pin und nen Widerstand zum COM-Port Deines PC.

So ein 32Bit-Linux-Board ist dagegen nen ordentlichen Zacken aufwendiger 
und empfindlicher.


Früher hat man für ne Blink-LED nen 555 mit viel Außenbeschaltung 
genommen.
Heute nimmt man z.B. einen ATtiny10. Schade, daß der keine Stromausgänge 
hat, dann bräuchte man nichtmal mehr den LED-Vorwiderstand.


Peter

von Klaus W. (mfgkw)


Lesenswert?

Peter Dannegger schrieb:
> Schade, daß der keine Stromausgänge
> hat, dann bräuchte man nichtmal mehr den LED-Vorwiderstand.

Könnte man das nicht auch über den Innenwiderstand der Batterie klären 
(wie bei Billig-LED-Taschenlampen)?

von Weinbauer (Gast)


Lesenswert?

Warum nicht 32-Biter?

Nunja, für mich die direkteste Antwort für den Anfang mit nem 8-Biter 
...

Schau Dir mal die Außenbeschaltung an :)

Mitunter brauchen die großen Brummer 3 Spannungen um zu laufen,
sind von Hand kaum lötbar, geschweige denn mal einfach aufs Breadboard
gesteckt.
Vor nem ATMega oder PIC schweißt Du Dir nen einfachen Spannungsregler
7805, 4 Verbindungen für den Programmer, ne Batterie und ab geht die 
Post.
Und sollte doch mal was schief gehen und der Controller die Fahne
wehen lassen, was solls, das Ding vom Breadboard gehebelt mit dem großen
Daumen nen Neuen reingedonnert und weiter gehts. ;)

Klar, die großen Jungs haben dann gleich 32 PWM Kanäle und 128 Timer on 
board, aber was solls, für 90% der Anwendungen reicht jeweils einer und 
zum lernen sowieso.

von Jobst M. (jobstens-de)


Lesenswert?

Ich denke, die 8-Bitter sind einfacher. Sicherlich ist das Prinzip das 
selbe, aber die Peripherie ist einfacher zu überblicken.

Damit lassen sich auch viele schöne Sachen basteln.

Bei den ARMs, auf denen Du Linux laufen lassen kannst, bist Du in der 
Regel auch schon auf fertige Boards angewiesen. Also wirklich selber 
bauen ist da nicht.


Gruß

Jobst

von Jobst M. (jobstens-de)


Lesenswert?

Weinbauer schrieb:
> mit dem großen Daumen nen Neuen reingedonnert und weiter gehts. ;)

Wie viele Daumen hast Du ?
(große, kleine ...?)

=)


Gruß

Jobst

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.