Warum wird AVR in Arduino verwendet?

Warum verwendet Arduino AVR? Ich verstehe, dass sie der offizielle Prozessor sind, aber es gibt keinen anderen Grund, warum der Code nicht auf eine ARM- oder Freescale-Architektur portiert werden könnte, als die Kosten, oder? Solange es Onboard-Speicher gibt, dachte ich, dass es eine einfache Migration in diese Teile geben könnte.

Ich sehe viel ARM in der Industrie (scheint, dass jeder Anbieter einen in seine Designs drängt) und habe mich gefragt, warum es in der Arduino-Entwicklerwelt nicht mehr Akzeptanz gibt.

Wer ist Ihr Markt? Wenn Sie versuchen, etwas Großes in der Industrie zu verkaufen, dann wollen Sie einen ARM, denn wenn Atmel untergeht, haben Sie nichts mehr übrig, wenn Sie den AVR verwenden. Neben ARM gibt es noch viele andere Anbieter, die fast sofort Ersatz anbieten. Die erhöhte Komplexität des ARM ist weniger ein Problem für gute Ingenieure als für Bastler, die keine Grundlagen kennen. Wenn Sie an Bastler verkaufen, ist die Lernkurve zu steil, die Prozessorleistung wird nicht genutzt und SMT wird zu einer imaginären Mauer. Um wen machen Sie sich Sorgen – Hobbykunden oder potenzielle Arbeitgeber? Pls. klären.
Ich versuche nicht, beleidigend zu sein, aber die Frage muss gestellt werden. Atmel ist mehr als 25 Jahre alt und hat neben ARM einen sehr erfolgreichen Markt. AVR an sich ist eine sehr, sehr erfolgreiche Plattform. Wie stehen die Chancen, dass ein solches Unternehmen untergeht? Das klingt, als würde man sagen: „Verwenden Sie kein Windows, was ist, wenn Microsoft ausfällt?“
Ich stimme Ihren anderen beiden Punkten zu, nämlich dass, wenn Sie einen Bastlermarkt haben, die Chancen gering sind, dass die volle Leistung von ARM genutzt wird und SMT eine Mauer ist.
Gibt es kein Arduino Due mit einem SAM3XE (ARM 32 Bit) uC darauf? Denn ich habe gerade einen in der Hand...
Ich möchte darauf hinweisen, dass es "heutzutage" tatsächlich ARM-basierte Boards gibt, die mit Arduino (Bibliotheken und IDE) programmiert werden können. Teensy 3.2 ist ein hervorragendes Beispiel dafür. sparkfun.com/products/13736

Antworten (10)

Interessiert sich überhaupt jemand dafür, was Sie entwickeln?

Ja und nein. Ich habe für ein bestimmtes Projekt auf dem AVR32 entwickelt, und die Entwicklungsumgebung (insbesondere der Kompilier-/Programm-/Debug-Zyklus) ist im Vergleich zu beispielsweise PIC32 schrecklich.

Den Kunden ist es egal, außer Kosten und Wartung, und im Falle eines Arduino-ähnlichen Systems wäre es den Programmierern egal, weil die Arduino-Umgebung und der Entwicklungszyklus sprunghaft besser sind als das aktuelle AVR32-Setup.

Ich frage mich nur, weil es in der Arduino-Familie so ein starkes Kontingent für AVRs gibt. Ich verstehe, dass sie der offizielle Prozessor sind, aber es gibt keinen anderen Grund, warum der Code nicht auf eine ARM- oder Freescale-Architektur portiert werden könnte, als die Kosten, oder? Solange es Onboard-Speicher gibt, dachte ich, dass es eine einfache Migration in diese Teile geben könnte.

Es gibt keinen Grund, warum kein anderer Prozessor verwendet werden könnte , aber es gibt einen sehr guten Grund, warum sie sich für ein Low-End-8-Bit-Gerät statt für ein ARM-, MIPS-, PowerPC- usw. Gerät entschieden haben: Benutzerfreundlichkeit.

Wenn Sie sich das Setup für die Low-End-Arme angesehen haben, ist es um eine Größenordnung komplexer (Speicherzuordnung, Caching usw.) als ein 8-Bit-Prozessor. Aber noch wichtiger - zu dieser Zeit gab es keine DIP-Arm-Prozessoren, und diese sollten von Künstlern und Hackern verwendet und gebaut werden, nicht unbedingt von Elektronikern und Ingenieuren, die sich sogar mit einem 48-Pin-TQFP wohlfühlen.

Der Grund, warum der AVR dem PIC vorgezogen wurde, ist, dass der PIC unter anderem nicht wirklich über einen weit verbreiteten, quelloffenen, kostenlosen C-Compiler verfügt (der SDCC-Port ist noch nicht ausgereift).

Ich sehe viel ARM in der Industrie (scheint, dass jeder Anbieter einen in seine Designs drängt) und habe mich gefragt, warum es in der Arduino-Entwicklerwelt nicht mehr Akzeptanz gibt. Gedanken?

Hauptsächlich liegt es an der Benutzerfreundlichkeit - Komplexität, einfaches Löten, Kosten und die Tatsache, dass es nicht viel Bedarf dafür gibt. Entwickler mögen die Idee, viel Leistung zu haben, aber am Ende des Tages, wenn Sie nur ein paar Servos bewegen und ein paar Lichter mit einer Low-End-FFT aufleuchten müssen, ist ein 8-Bit-Prozessor in Ordnung.

Sogar die Low-End-Cortex-ARMS, die in 28-Pin-Gehäusen herauskommen, sind immer noch SOIC, nicht DIP.

Der AVR hatte also alle richtigen Funktionen:

  • Einfach zu löten
  • Einfach per Versandhandel in die ganze Welt zu bekommen
  • Kostenloser GCC-C-Compiler
  • Leicht verständliche Einrichtung und Verwendung des Prozessors und der Peripheriegeräte
  • Billig
  • Allgegenwärtig – viele Menschen und Erfahrungen rund um die AVR-Familie

Im Großen und Ganzen stimmt das immer noch - ich kenne keinen ARM im Dip-Format, und die Adapter machen ihn deutlich teurer als den AVR. Die meisten Hersteller glauben nicht, dass ein 32-Bit-Prozessor im DIP-Gehäuse sehr profitabel sein wird.

Es gibt einen, den Parallax-Propeller. Es hat acht 32-Bit-CPUs auf dem Chip und ist in DIL-, QFP- und QFN-Gehäusen erhältlich.
Das ist genau richtig. AVR über PIC aufgrund der Lizenzierung und AVR über ARM aufgrund der Einfachheit von Software und Toolchain und Lötfähigkeit. Für Ihre eigenen Projekte gilt dies möglicherweise nicht. Wenn Sie jedoch ein ARM-Duino entwickeln möchten, schauen Sie sich die anderen, ähnlichen Projekte an. Sie setzen sich nicht so durch wie der AVR. Dies kann auch an der Arduino-Entwicklungsumgebung liegen.
Welche AVR32-Tools verwenden Sie? - Ich verwende IAR sowohl auf AVR32 als auch auf MSP und habe festgestellt, dass diese Umgebung sehr leistungsfähig ist. Die Kosten spielen in einem professionellen Umfeld keine Rolle – sie entsprechen weniger als die Kosten für die Anstellung eines Ingenieurs für eine Woche.
Diese Behauptung über Tools kann überwunden werden - Arduino verwendet gcc, das auch einen AVR32-Port zur Verfügung hat.
NXP hat jetzt einige Cortex-M0-ARMs in einem DIP-Paket. Ich denke aus der LPC11xx-Familie. Ich kann mir vorstellen, dass ihr Zielmarkt extrem billige, einseitige Leiterplatten von geringer Qualität in Geräten sind.

Da Sie anscheinend nach Meinungen fragen, hier ist mein $0,02. Ob ich an einem ARM oder AVR arbeite, spielt eine Rolle (und daher ist es mir wichtig), hauptsächlich basierend darauf, was ich versuche zu tun. Es gibt Anwendungsfälle, in denen ein AVR sinnvoll ist, und es gibt solche, in denen ein ARM sinnvoll ist. Im Allgemeinen gibt es auch einen Kompromiss zwischen, sagen wir, AVR und PIC.

Zunächst einmal, obwohl ich wahrscheinlich Ärger bekommen werde, wenn ich das sage, ist das "starke Kontingent in der Arduino-Familie" so etwas wie eine lautstarke Minderheit. Die meisten Arduino-Leute (Benutzer), denen ich begegnet bin, sind die Art, die ihre Hardware lieber so behandeln würden, wie sie ein Python-Skript aufpeppen würden, um etwas Amüsantes zu tun, oft mit einem geringeren Verständnis der damit verbundenen Feinheiten als sie hätten, wenn sie "from numpy import foo" tun würden. Die Arduino-Methode hat zwar einige Vorzüge, aber auch viel Raum für Kritik.

Ich denke, es lohnt sich, sich neben dem Arduino-Ökosystem auch die AVRs anzusehen. Das Arduino-Kontingent hat auch stark von den Gründen profitiert, die den AVR zu einem Defacto-Standard für Bastler gemacht haben - ein Mantel, den es zunehmend von PIC übernommen hat, noch bevor Arduino auftauchte. Die direkten Konkurrenten des AVR wären der PIC und bis zu einem gewissen Grad der MSP430, der an Zugkraft gewinnt, was größtenteils auf den starken Marketingschub von TI in Kombination mit seinen subventionierenden Tools zurückzuführen ist.

Ökosystem

Wie bereits in anderen Antworten erwähnt, ist der AVR die einzige Familie, die mit kostenlosen Tools einen sauberen, standardisierten Weg bietet, um von Null auf Hallo Welt zu gelangen. Die avr-gcc-Portierung, die Teile, aus denen die winavr-Toolchain besteht, zahlreiche Programmierschemata mit unterschiedlicher Komplexität und Funktionen, die jedoch immer noch an die Autorität gebunden sind, die sich aus der Unterstützung durch avrdude ergibt, machen es viel einfacher, als sich mit der Ausarbeitung der Toolchain zu befassen.

Das Ökosystem des PIC ist ein Albtraum, mit einer beliebigen Anzahl von Compilern, Programmierwerkzeugen, Assemblern, was auch immer. Viele von ihnen sind nicht miteinander kompatibel. Die meisten von ihnen werden bezahlt. Nicht alle sind gut. Noch wichtiger ist, dass es keinen De-facto-Standard gibt. Die freien / Open-Source-Alternativen (z. B. SDCC) lassen viel zu wünschen übrig, haben es aber darüber hinaus nicht geschafft, den Status eines Defacto-Standards wie avr-gcc und company zu erlangen. Selbst wenn die Software-Toolchain ausgearbeitet wäre, müssten Sie zumindest in eine Art Programmierer investieren. Das PICkit kostet vielleicht nur 20 $ oder so, aber wenn Sie herausfinden müssen, wie Sie es online kaufen können (Kreditkarten, internationaler Versand, Devisenprobleme), kann es für Bastler ein Deal Breaker sein. Es gibt kein gutes,

MSP430 ist geringfügig besser, hauptsächlich weil es neuer ist (zumindest in Bezug auf die Popularität) - Es gibt viel weniger Rauschen, mit dem man fertig werden muss. TI versendet IC-Muster mit einer Effizienz, die ich sonst nirgendwo gesehen habe. mspgcc ist in Ordnung, und es gibt sogar eine Open-Source-Debugging-Software, die nicht schwer zu finden oder einzurichten ist. Das Problem ist jedoch, dass es nicht so bastlerfreundlich ist wie der AVR. Sie haben immer noch das Problem des Programmierers, der teurer ist als das, was Sie für einen PIC kaufen müssten. Der 3,3-V-Versorgungsbetrieb stellt eine wahrgenommene Barriere für Menschen dar, die an 5-V-Logik gewöhnt sind. Und es skaliert nicht in DIP - Es sind Low-End-Chips verfügbar, aber nicht, wenn Sie die ausgefeilteren Chips erreichen.

Benutzerfreundlichkeit

DIP vs. SMD ist meines Erachtens eine wichtigere Unterscheidung, als oft angenommen wird. Ein DIP-IC kann auf Steckbrettern, Allzweckplatinen, wie auch immer sie in Ihrem Wohnort genannt werden, und so weiter verwendet werden. Ein SMD-IC erfordert zwangsläufig einen Fertigungslauf oder den Kauf von Adapterplatinen, die in der gewünschten Größe oder Form nicht immer leicht zu bekommen sind.

Datenblattqualität, Anwendungshinweise und deren Lesbarkeit machen ebenfalls einen Unterschied. Atmel scheint das etwas besser zu machen. Das ist natürlich eine sehr subjektive Einschätzung.

AVRs können einen internen RC verwenden, während PICs dies oft nicht tun. Sie benötigen einen Kristall, was es in Kombination mit einem Mangel an Selbstvertrauen etwas heikel macht.

AVRs schienen vor ein paar Jahren auch freundlicher mit In-System-Programmierung im Vergleich zu PICs zu sein, obwohl ich mich dort sehr leicht irren könnte.

AVR gegen ARM

Ihre Frage hatte jedoch mit AVR vs ARM zu tun. Wie ich eingangs sagte, nehmen AVR und ARM unterschiedliche Plätze im Spektrum ein. Wenn Sie etwas mit einem AVR machen können, warum sollten Sie es dann mit einem ARM machen wollen? ARMs sind teurer, erfordern eine höhere Anzahl von Teilen, verbrauchen mehr Energie, erzeugen komplizierteren Code und erfordern teurere Herstellungsprozesse. Das Löten eines 100-poligen TQFP ist teurer als das Löten eines 40-poligen DIP/SOIC, je nachdem, wie Sie die Kosten messen. Dies gilt möglicherweise nicht, wenn Sie in großen Mengen produzieren und dafür freundliche Produktionstechniken verwenden, aber wenn Sie dies tun, wird der Preisunterschied noch überzeugender, sich für die billigere Lösung zu entscheiden.

Als Go-to-Controller für allgemeines Hacken im Haus oder was auch immer, würde ich sagen, dass AVRs einfacher zu bedienen sind, weil:

  • Aus Hobbyperspektive standardisierter, mehr Code, den ich aus dem Internet wiederverwenden kann, weil es nicht so viele Compiler-Variationen und Variationen zwischen Registernamen und API unter Familienmitgliedern gibt. (Versuchen Sie, LPC ARM-Code auf ATMEL ARM-Hardware zu portieren, Sie werden sehen, was ich meine.)
  • Code wird von Natur aus komplizierter (Das tut es. Wirklich).
  • Die Einrichtung der Toolchain erfordert zusätzliche Arbeit.
  • Erleichtert das Anschließen etwas. ARMs würden Sie im Allgemeinen auf 3v3- oder 1v8-Logik heruntersetzen, was die Anbindung an andere Spielzeuge etwas problematisch macht.
  • Billiger
  • Einen ARM-Chip im örtlichen Baumarkt zu bekommen, ist für mich dort, wo ich wohne, keine Option, ein AVR zu bekommen ist es.
Ich erinnere mich an keine PICs, abgesehen von einigen OTP-Teilen, bei denen die Sicherungsbits im Rahmen von Werkstests vorprogrammiert wurden (die einzige Möglichkeit zu bestätigen, dass der LP-, XT- oder HS-Modus funktionierte, bestand darin, den Chip für diesen Modus zu konfigurieren). das erforderte einen Kristall. Einige benötigten einen externen Widerstand und eine Kappe, um den RC-Modus zu verwenden, und hatten ziemlich grobe Spezifikationen für die Frequenz, die sie erzeugen würden, aber ich erinnere mich an keine PICs ohne eine Designoption für interne oder externe RC. Habe ich welche vergessen?
Tatsächlich sind die ARM/AVR-Kosten ziemlich nah an einer Wäsche für vergleichbare Ressourcen. Und die Pakete, die in einer Produktionsumgebung verwendet würden, sind nicht unbedingt so unterschiedlich, da es sich wahrscheinlich um die QFP- oder QFN-Varianten von beiden handeln würde. Die erforderliche Unterstützungsschaltung ist ebenfalls ziemlich vergleichbar.
@Chris: Wenn Sie die Ressourcen berücksichtigen, die jeder Chip bereitstellt, würde ich sagen, dass ARM fast jedes Mal billiger herauskommt. Der Punkt ist jedoch, dass in Situationen, in denen AVR in einer Produktionsumgebung sinnvoll ist, Sie nicht die Leistung und/oder den Schnickschnack benötigen , die ein ARM mit sich bringt. Bei Gewichtung mit genutzten Ressourcen statt mit verfügbaren Ressourcen kommt der AVR günstiger weg. Ich glaube nicht, dass die Unterstützungsschaltung vergleichbar ist (1 Tantalkondensator gegenüber 4 und andere ähnliche Spiralen). ARM ist kein teures Tier, sondern kann übertrieben sein.
@supercat: Vielleicht. Ich müsste nachsehen. Es schien mir nie offensichtlich, als ich es mir ein paar Mal ansah. Ich weiß, dass zumindest einige dsPICs auf intern zurückgreifen können, wenn Sie sie richtig einrichten, aber selbst das erforderte ein wenig Rätselraten und Herumalbern, um es herauszufinden. Mikrochip-Datenblätter lassen meiner Meinung nach viel zu wünschen übrig, aber andererseits hängt es davon ab, welchen Markt Sie betrachten.
@ChintalagiriShashank - Wenn man die anderen Peripheriegeräte ignoriert und nur die Flash- und RAM-Größen betrachtet, gibt es ARM-Angebote, die beispielsweise mit dem ATMEGA328p ziemlich konkurrenzfähig sind. Und lassen Sie sich nicht zu sehr von Bypass-Kappen ablenken. Zum einen kann Tantal als Versorgungsfilter sinnvoll sein, aber tatsächliche Bypass-Kappen sind minderwertige lokale Reservoirs für die Hochfrequenzschaltanforderungen und können daher billige SMT-Keramik sein. Was den Bedarf antreibt, ist außerdem die Takt- und I/O-Schaltfrequenz – bei einer vergleichbaren Taktrate benötigt der ARM nicht alle empfohlenen Bypass-Caps.
Nun, ich würde argumentieren, dass der 328p selbst so etwas wie ein AVR auf Steroiden ist, aber dann würden Sie auf den 1280 und seine Freunde verweisen. Wenn es zu dem Punkt kommt, an dem ich tatsächlich diese Menge an Flash und RAM verwende (mehr noch RAM. Ich habe in den meisten Fällen nie wirklich die Spitze des Flash gesehen), ist dies normalerweise in einer Situation, in der ein Arm sinnvoll ist. Im Allgemeinen wird dieser Punkt aufgrund von E / A-Einschränkungen für meine Anwendungen früher erreicht. Es gibt jedoch viele Orte, an denen ich eine 48 oder 88 verwenden würde, und viele Male, an denen eine Attiny verlockend ist.

Die Waffenentwicklung schreitet voran - werfen Sie einen Blick auf die folgenden Projekte.

Ahornblatt

XDuino

Cortino

Illuminato

ARM PRO-Familie

Und jetzt ein ARM in einem DIP-Paket.

NXP LPC1114FN28

BASICchip

Einer der Gründe für das große Interesse der Community am Arduino ist die physikalische Standardisierung. So verrückt das physische Layout auch ist, durch die Aufnahme einer standardisierten Erweiterungsoption ermöglichten die Arduino-Entwickler den Menschen, ihre eigenen Lösungen zu entwickeln. Wenn Sie das Basis-Arduino-Board durch ein anderes Board ersetzen möchten, das einen anderen Mikrocontroller verwendet, können Sie das tun. IIRC, jemand hat bereits ein PIC-basiertes Board gebaut, das den Arduino-Formfaktor verwendet. (Das PIC Ardunio-Board hat nicht den gleichen Formfaktor, ist aber ansonsten ähnlich.)

Ein weiterer Grund für den Erfolg des Arduino liegt in seiner Offenheit – die meisten PIC-basierten Mikrocontroller waren geschlossen; Sie verwendeten proprietäre Hardwareimplementierungen. Wenn Sie also das Board neu gestalten wollten, um es besser in einen bestimmten Raum einzupassen, hatten Sie Pech. Sie verwendeten benutzerdefinierte Firmware und proprietäre Entwicklungstools, sodass Sie Pech hatten, wenn Sie Fehler hatten oder die Funktionen erweitern wollten. Beim Arduino ist jedes einzelne Puzzleteil offen: Sie können Teile überall kaufen, sie nach Bedarf neu anordnen, die Firmware UND die Entwicklungstools verbessern oder modifizieren. Sie können einfach mit der Arduino IDE beginnen, aber Sie können immer noch zu C oder Assembly wechseln, wann immer Sie es brauchen.

Persönlich mag ich Arduino, weil es viele Dinge genau richtig macht: Es ist nicht zu teuer, es ist nicht an proprietäre Tools gebunden, es ist einfach zu starten, es hat viele Fähigkeiten und es hat eine große Benutzergemeinschaft , die weiter expandiert und ordentliche Sachen macht.

Sie haben sehr gute Gründe aufgelistet, warum Mikrocontroller-Bastler Arduino mögen, aber die Frage war ARM vs. AVR. Arduino wurde aufgrund seiner Entscheidung erwähnt, die AVR-Serie von MCUs für seine Implementierung auszuwählen. Ich denke, einige relevantere Antworten liegen unter Ihrem Beitrag. zum Beispiel die Tatsache, dass Atmel seine AVR-Serie mit einem C-Compiler unterstützt. Trotzdem gute Informationen für jemanden, der mit Arduino nicht vertraut ist.

Ein großer Vorteil des ATmel uCs ist, dass es einen kostenlosen Compiler für Linux, PC und Mac gibt. Fügen Sie dazu eine einfache plattformübergreifende GUI hinzu und Sie haben ein kostenloses Entwicklungssystem, das auf allen Plattformen läuft.

Die Kosten sind ein wichtiger Faktor für die Bastlerboards. Da Sie einen Einstiegspreis im Bereich von 30 $ haben möchten, müssen Sie uC-Kosten haben, die nicht mehr als ein paar Dollar betragen.

ARM wäre ein ausgezeichneter Kandidat für High-End-Boards. Viele Unternehmen lizenzieren den ARM-Kern und fügen Peripheriegeräte hinzu. Ich glaube, es gibt kostenlose Compiler für Linux, PC und MAC.

Ich mag das Freescale Coldfire für High-End-Boards sehr. Ich arbeitete an einem Board für Testgeräte, die einen 5206e verwendeten. Wir haben etwas DRAM und hochpräzise A/D- und D/A-Wandler hinzugefügt. Es war eine kostengünstige Lösung. Ich habe Coldfire in letzter Zeit nicht mit der großen Auswahl an ARMs verglichen.

Einige der 8-Bit-Freescale-uCs sind nett, aber ich bin mir nicht sicher, ob sie kostenlose Tools haben.

Vielen Dank für den nützlichen Kommentar, aber die 8 Zeilen "Signatur" sind ein wenig extrem, diese Stackoverflow-basierten Websites neigen dazu, in Ihren Antworten auf die Werbung für Ihre eigenen Websites herabzuschauen.
@jluciani, wenn Sie für Ihre anderen Websites werben möchten, setzen Sie die Links in Ihr Profil, nicht in Ihre Antworten. Schließlich ist Ihr Blog nicht die Antwort auf diese Frage ...

Ich weiß, Sie haben "außer den Kosten" gesagt, aber das ist wirklich das Wichtigste für Bastler. Sie brauchen nicht mehr als einen UART oder mehr als einen SPI auf einer angeblich billigen, generischen Plattform. Sobald Sie anfangen, Geschwindigkeiten von> 20 MHz zu benötigen, sollten Sie sich wirklich ein benutzerdefiniertes Setup ansehen (ymmv natürlich).

Ich stimme dem Dip-Paket zu, stimme nicht zu, dass Arme schwieriger zu konfigurieren sind, lpcs sind es, aber sie sind nicht das einzige Kind auf dem Armblock (atmel selbst für diese Angelegenheit). Soweit ich mich erinnere und erlebt habe, war und ist Atmel einfach entwicklerfreundlicher. Der AVR-Schmetterling hat ihnen sehr geholfen, mehr Benutzer zu ihrer bereits großen und glücklichen Benutzerbasis zu machen. Der PIC war in vielerlei Hinsicht einfach schmerzhaft, die AVR-Tools waren da, die Programmierung war ein Kinderspiel und kostete Sie nicht viel mehr als ein paar Kabel und einen Stecker von Radio Shack. Die Tools sind da und kostenlos, aber nicht so einfach wie Mainline gcc, wo Sie die Arm- und Daumenlösungen finden. Lange bevor das Arduino auf den Markt kam, war der AVR der Chip der Wahl für Hobbyprojekte.

Nichts kann derzeit mit ARM mithalten. Für jeden anderen Prozessor, den Sie an einem Tag berühren, berühren Sie mindestens ein paar ARMs. Für einige verwendet fast alles, was Sie berühren, einen ARM. Es ist eine natürliche Passform, da der 8-Bit-Killer eine viel bessere Leistung als ein 8-Bit für die gleiche Größe, den gleichen Preis usw. erzielen kann. Die Tools sind viel besser, der Befehlssatz ist viel sauberer als die meisten seiner Konkurrenten, sodass derselbe Code ausgeführt wird viel schneller usw. Da jeder und sein Bruder einen ARM einbetten können und er nicht an eine Firma wie pic, avr, msp430 gebunden ist, gibt es eine Vielzahl von Lösungen und ebenso viele verschiedene Möglichkeiten, mit den Mikrocontroller-ROM/RAM-Mischungen umzugehen und die Unterbrechungsvektortabelle. Leider ist die beliebtere Lösung die schmerzhafteste. Versuchen Sie es mit einem sam7 oder so oder einem stellaris. Es gibt einen Armmite Pro, der ein Versuch ist, ein armbasiertes Arduino-Plugin zu erstellen.

Es ist nicht immer der Prozessor, der das Problem ist, einige Chips haben bekannte Probleme, einige haben andere bekannte Probleme. Einige bieten möglicherweise keinen Open-Collector-IO-Pin mit schwachem Pull-up an, und Sie müssten Hardware außerhalb des Chips platzieren, um eine Verbindung zu etwas herzustellen, während ein anderer dies möglicherweise an einem oder allen Pins verfügbar hat. Ich empfehle, das Feld zu testen und die verschiedenen Unternehmen und Lösungen auszuprobieren, damit Sie, wenn Sie einen geringen Stromverbrauch wünschen, problemlos einen msp430 verwenden können, wenn Sie Rechenleistung in einem kleinen Chip benötigen, den Sie mit dem Arm verwenden, oder wenn Sie ein offenes Projekt erstellen möchten, auf das Sie hoffen andere werden in ihrer Garage bauen, Sie stützen es auf ein Arduino, wenn Sie können.

Das Fazit Ihrer Frage ist jedoch, dass es wirklich von Ihrer Anwendung abhängt und wie Sie sie schreiben, sowie von der Leistung und den Ressourcen, an denen Sie interessiert sind. So wie gcc oder Firefox auf vielen verschiedenen Plattformen und Prozessoren ausgeführt werden, können Sie dies mit Sicherheit tun Schreiben Sie Ihre C-Anwendung so, dass sie auf einer Vielzahl von Mikrocontrollern läuft ... IF...Sie haben eine Mikrocontroller-spezifische Abstraktionsschicht, die mit Kosten verbunden ist. wenn die Mikrocontroller genügend ähnliche Funktionen und die Funktionen haben, die Sie benötigen, und Sie im Voraus planen und diese integrieren. Wenn die nächste Plattform über genügend Speicher/Ressourcen verfügt. Sie sind mehr an Portabilität als an Leistung usw. interessiert. Wahrscheinlich müssen Sie dies im Voraus planen. oder zumindest beim ersten Wechsel von A nach B gestalten Sie die Software neu, wenn/wenn es einen dritten Wechsel von B nach C gibt, ist es weniger schmerzhaft.

Nichts kann derzeit mit ARM mithalten. <- In der Industrie. In der Hobbywelt ist AVR immer noch sehr, sehr stark und wird es noch lange sein.
Stimmen Sie absolut zu, dass AVR in einer Welt verrückt beliebt ist, in einer anderen Welt, in der die Produkte, die wir kaufen und verwenden, dort sind, wo das Geld ist, es ist etwas anderes. Lernen Sie also zum Spaß zu Hause das eine, für Ihren Job das andere und spielen Sie den ganzen Tag und die ganze Nacht.

Ein paar kleine Punkte, die in den anderen Kommentaren nicht angesprochen wurden:

  • Ein Arduino ist für kleine E/A-Projekte gedacht, die einer Schaltung ein wenig Intelligenz hinzufügen. Sie sind in der Regel Single-Threaded-Echtzeitgeräte, bei denen ein ARM sehr verschwendet wäre. Es gibt natürlich viele Optionen für ARM-Boards, aber der Anwendungsfall ist normalerweise anders - normalerweise booten sie in ein vollwertiges Betriebssystem.

  • Durch die Ausrichtung auf diesen kleinen Anwendungsfall wird alles andere einfacher - Pin-Anzahl, unterstützende Komponenten, Stromverbrauch usw.

Das heißt, für den Zielanwendungsfall des Arduino ist es nicht so, als würden Sie es slumming. Ein 16-MHz-Prozessor ist eine Menge Grunzen für Ihren Wecker mit integriertem LED-Lauflicht (oder was auch immer :)

Arduino ist auf anderen Prozessoren verfügbar. Schauen Sie sich zum Beispiel das ChipKit von Microchip an. Das verwendet einen PIC 32.

Entschuldigung, Olin, der Titel war ein falscher Versuch von mir, die Frage zu bearbeiten, die aus ihrem Körper gemacht wurde. Jetzt sollte es richtiger sein.

Zweiter Versuch (der ursprüngliche Beitragstitel und die Frage von vor +3 Jahren wurden seit der ursprünglichen Antwort geändert):

Henne und Ei, aber besonders in den letzten Jahren (2007 führte ARM die Cortex-M-Architektur ein) sind 32-Bit-MCUs immer beliebter geworden, und Anbieter waren besser darin, der EE-Community einen schnelleren und einfacheren Zugang zu bieten, wenn sie in >8- bit micros (bessere SW-Tools, kostenlose Tools, mehr Beispiele...).

Da Atmel zusammen mit 100 anderen auch Cortex-M-Geräte anbietet und seine Toolchain aktualisiert hat, um AVR auf ARM zu unterstützen, sowie die langjährige Beziehung, ist der Arduino-Upgrade-Pfad gegeben (?). Aber Alternativen tauchen auf und scheinen alternative Versuche zu beinhalten, seinen Anteil am "Bastler"-Kuchen zu gewinnen: zB mbed by NXP/ARM und kürzlich "CoAction Hero": 32-Bit Open-Source ARM Cortex-M3 Board auf KickStarter .

Letzter Gedanke, 3 Jahre nach der anfänglichen Frage: Wenn alle Anbieter 32-Bit-Cortex-M-Kerne anbieten - könnte der Arduino jetzt tatsächlich Nicht-Atmel werden?

Ursprüngliche Antwort: Alf-Egil Bogen, einer der Mitbegründer von Atmel AVR, betrachtet in seinem Video-Blog hier http://blog.energymicro einige der Hintergründe für die Umstellung der Branche von 8-Bit- auf 32-Bit-ARM-Kerne. com/2013/04/24/avr2arm/ .