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 :-)
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.
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
Ok die Zeit ist auch ein Argument ;-) also doch lieber langsam anfangen.
Für die Schwaben: 8 Bit ist viel billiger.
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
>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.
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
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.
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..
@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.
>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.
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.
@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 ;-)
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.
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?
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.
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.
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
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)?
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.