Warum wird AVR in Arduino verwendet?


41

Warum verwendet Arduino AVR? Ich verstehe, dass sie der offizielle Prozessor sind, aber es gibt keinen Grund, warum der Code nicht auf eine ARM- oder Freescale-Architektur portiert werden kann, außer zum Preis, oder? Solange der integrierte Speicher vorhanden ist, könnte eine einfache Migration in diese Bereiche möglich sein.

Ich sehe viel ARM in der Industrie (anscheinend treibt jeder Anbieter eines in seine Designs ein) und frage mich, warum die Arduino-Entwicklerwelt nicht mehr aufgenommen wurde.


4
Wer ist dein 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, wenn Sie den AVR verwenden. Mit ARM gibt es viele andere Anbieter, die Ersatzprodukte anbieten. Die zunehmende Komplexität des ARM ist für gute Ingenieure weniger ein Problem als für Bastler, die die Grundlagen nicht kennen. Wenn Sie an Bastler verkaufen, wird die Lernkurve zu steil sein, die Prozessorleistung wird nicht ausgeschöpft, und SMT wird zu einer imaginären Ziegelwand. Wem machen Sie sich Sorgen um Hobbykunden oder potenzielle Arbeitgeber? Pls. klären.
Kevin Vermeer

9
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 hört sich so an, als würde man sagen: "Benutze keine Fenster, was ist, wenn MicroSoft ausfällt?"
Rick_2047

Ich stimme mit Ihren beiden anderen Punkten überein: Wenn Sie einen Hobby-Markt haben, ist die Wahrscheinlichkeit sehr gering, dass die volle Leistung von ARM genutzt wird und SMT eine Ziegelmauer ist.
Rick_2047

2
Gibt es nicht ein Arduino Due mit einem SAM3XE (ARM 32 Bit) uC? Weil ich gerade einen in der Hand habe ...
Doombot

1
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
Paul

Antworten:


32

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

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

Die Kunden interessieren sich nicht, außer für Kosten und Wartung, und im Fall eines Arduino-ähnlichen Systems interessieren sich die Programmierer nicht dafür, 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 ein so starkes Kontingent für AVRs gibt. Ich verstehe, dass sie der offizielle Prozessor sind, aber es gibt keinen Grund, warum der Code nicht auf eine ARM- oder Freescale-Architektur portiert werden kann, außer zum Preis, oder? Solange der integrierte Speicher vorhanden ist, könnte eine einfache Migration in diese Bereiche möglich sein.

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

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

Der Grund, warum der AVR dem PIC vorgezogen wurde, ist, dass der PIC unter anderem keinen weit verbreiteten, freien Open-Source-C-Compiler hat (der SDCC-Port ist nicht ausgereift).

Ich sehe viel ARM in der Industrie (anscheinend treibt jeder Anbieter eines in seine Designs ein) und frage mich, warum die Arduino-Entwicklerwelt nicht mehr aufgenommen wurde. Gedanken?

Dies liegt hauptsächlich an der Benutzerfreundlichkeit - der Komplexität, der einfachen Lötbarkeit, den Kosten und der Tatsache, dass dafür nicht viel erforderlich ist. Entwickler mögen die Idee, viel Leistung zu haben, aber am Ende des Tages, wenn Sie nur einige Servos bewegen und einige Lichter mit einer Low-End-FFT blinken müssen, ist ein 8-Bit-Prozessor in Ordnung.

Sogar die in 28-Pin-Gehäusen erhältlichen Low-End-Cortex-ARMS sind nach wie vor SOIC und nicht DIP.

Der AVR hatte also die richtigen Funktionen:

  • Einfach zu löten
  • Einfach per Versand auf der ganzen Welt zu bekommen
  • Freier GCC C Compiler
  • Einfach zu verstehende Informationen zu Prozessor und Peripheriegeräten
  • Billig
  • Allgegenwärtig - viele Menschen und Erfahrungen rund um die AVR-Familie

Im Großen und Ganzen ist dies immer noch wahr - ich kenne keinen ARM im Dip-Format, und die Adapter verteuern ihn erheblich als den AVR. Die meisten Hersteller glauben nicht, dass ein DIP-verpackter 32-Bit-Prozessor sehr rentabel sein wird.


Es gibt einen, den Parallax Propeller. Es verfügt über acht 32-Bit-CPUs auf dem Chip und ist in DIL-, QFP- und QFN-Paketen erhältlich.
Leon Heller

5
Das ist genau richtig. AVR über PIC aufgrund der Lizenzierung und AVR über ARM aufgrund der Einfachheit von Software und Toolchain sowie der 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 verstehen sich nicht so wie der AVR. Dies kann auch an der Arduino-Entwicklungsumgebung liegen.
Kevin Vermeer

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 sind in einem professionellen Umfeld kein Problem - sie entsprechen weniger als die Kosten für die Einstellung eines Ingenieurs für eine Woche.
uɐɪ

Diese Behauptung über Werkzeuge kann überwunden werden - Arduino verwendet gcc, für das auch ein AVR32-Port verfügbar ist.
Chris Stratton

1
NXP verfügt jetzt über einige Cortex-M0-ARMs in einem DIP-Paket. Ich denke aus der LPC11xx-Familie. Ich stelle mir vor, dass ihr Zielmarkt extrem billige, einseitige Leiterplatten mit geringer Qualität in Geräten ist.
Marko


16

Da Sie anscheinend eine Meinungsumfrage durchführen, sind hier meine $ .02. Ob ich an einem ARM oder einem AVR arbeite, spielt eine Rolle (und darum ist es mir auch wichtig), hauptsächlich basierend auf dem, was ich versuche. Es gibt Anwendungsfälle, in denen ein AVR Sinn macht, und solche, in denen ein ARM Sinn macht. Im Allgemeinen gibt es auch einen Kompromiss zwischen beispielsweise AVR und PIC.

Zunächst einmal, während ich wahrscheinlich in Schwierigkeiten gerate, weil ich das sage, ist das "starke Kontingent in der Arduino-Familie" so etwas wie eine stimmliche Minderheit. Die meisten Arduino-Leute (Benutzer), denen ich begegnet bin, sind solche, die ihre Hardware eher so behandeln, als würden sie ein Python-Skript erstellen, um etwas Amüsantes zu tun, oft mit einem geringeren Verständnis der damit verbundenen Komplikationen als sie hätte, wenn sie tun würden "aus numpy import foo". Während die Art und Weise, wie Arduino Dinge tut, einige Vorzüge hat, gibt es auch viel Raum für Kritik.

Ich denke, es lohnt sich, die AVRs neben dem Arduino-Ökosystem zu betrachten. 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 er zunehmend von PIC übernommen hat, noch bevor Arduino auf den Markt kam. Die direkten Konkurrenten des AVR wären der PIC und bis zu einem gewissen Grad der MSP430, der vor allem aufgrund des starken Marketingschubs von TI in Verbindung mit seinen Subventionsinstrumenten an Fahrt gewinnt.

Ökosystem

Wie bereits in anderen Antworten erwähnt, ist der AVR die einzige Familie, die eine saubere, standardisierte Möglichkeit hat, mit kostenlosen Tools von Null auf Hallo Welt zu gelangen. Der avr-gcc-Port, die Bestandteile der winavr-Toolchain, eine Vielzahl von Programmierschemata mit unterschiedlicher Komplexität und Funktionalität, die jedoch immer noch an die Autorität gebunden sind, die sich aus der Unterstützung durch avrdude ergibt, machen die Arbeit mit der Toolchain wesentlich einfacher.

Das Ökosystem des PIC ist ein Albtraum mit einer beliebigen Anzahl von Compilern, Programmierwerkzeugen und Assemblern. Viele von ihnen sind nicht miteinander kompatibel. Die meisten von ihnen sind bezahlt. Nicht alle von ihnen sind gut. Noch wichtiger ist, dass es keinen Defacto-Standard gibt. Die Free / Open-Source-Alternativen (z. B. SDCC) lassen zu wünschen übrig, haben jedoch nicht den Status eines Defacto-Standards wie avr-gcc und company erreicht. Selbst wenn die Software-Toolchain funktioniert hätte, müssten Sie zumindest in einen 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, vor allem, weil es neuer ist (zumindest in Bezug auf die Popularität). TI liefert Ihnen IC-Muster mit 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 hobbyfreundlich ist wie der AVR. Sie haben immer noch das Problem des Programmierers, das teurer ist als das, was Sie für einen PIC kaufen müssten. Die 3,3-V-Versorgung stellt eine wahrgenommene Barriere für Menschen dar, die an 5-V-Logik gewöhnt sind. Und es skaliert nicht im DIP - Es gibt Low-End-Chips, aber nicht, wenn Sie die besser ausgearbeiteten Chips erreichen.

Benutzerfreundlichkeit

DIP vs SMD, denke ich, ist eine wichtigere Unterscheidung, als es oft behauptet wird. Ein DIP-IC kann auf Steckplatinen, Allzweckplatinen, wie auch immer sie heißen, wo Sie leben, 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 beschaffen sind.

Auch die Datenblattqualität, die Anwendungshinweise und deren Lesbarkeit machen einen Unterschied. Atmel scheint dabei einen geringfügig besseren Job zu machen. Das ist natürlich eine sehr subjektive Einschätzung.

AVRs können einen internen RC verwenden, PICs oft nicht. Sie benötigen einen Kristall, der in Kombination mit einem Mangel an Selbstbewusstsein ein wenig zerbrechlich ist.

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

AVR gegen ARM

Ihre Frage hatte jedoch mit AVR vs ARM zu tun. Wie ich zu Beginn sagte, besetzen AVR und ARM unterschiedliche Bereiche im Spektrum. Wenn Sie etwas haben, das Sie mit einem AVR tun können, warum sollten Sie es dann mit einem ARM tun? ARMs sind teurer, erfordern eine höhere Anzahl von Teilen, verbrauchen mehr Energie, komplizieren 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 Stückzahlen produzieren und die damit verbundenen Produktionstechniken anwenden. Wenn Sie dies jedoch tun, wird der Preisunterschied für die billigere Lösung noch zwingender.

Als Anlaufstelle für das allgemeine Hacken im Haus oder bei Ihnen würde ich sagen, dass AVR einfacher zu verwenden ist, weil: - Aus Hobby-Sicht standardisierter, mehr Code aus dem Internet wiederverwendbar ist, weil es nicht so viele gibt Compiler-Variationen und Variationen zwischen Registernamen und API unter Familienmitgliedern. (Versuchen Sie, LPC ARM-Code auf ATMEL ARM-Hardware zu portieren. Sie werden sehen, was ich meine.) - Code wird von Natur aus komplizierter. - Das Einrichten der Toolchain erfordert zusätzlichen Arbeitsaufwand. - Erleichtert das Anschließen etwas. ARMs würden Sie im Allgemeinen auf 3v3- oder 1v8-Logik bringen, was die Anbindung an andere Spielzeuge etwas problematisch macht. - Billiger - Einen ARM-Chip im örtlichen Baumarkt zu bekommen, ist für mich keine Option, wo ich wohne, sondern ein AVR.


1
Ich kann mich an keine PICs erinnern, abgesehen von einigen OTP-Teilen, bei denen die Sicherungsbits im Rahmen von Werkstests vorprogrammiert wurden (die einzige Möglichkeit, um zu bestätigen, dass der LP-, XT- oder HS-Modus funktioniert hat, 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 Angaben zu der Frequenz, die sie erzeugen würden, aber ich erinnere mich an keine PICs ohne eine Designoption für internen oder externen RC. Habe ich welche vergessen
Superkatze

Tatsächlich sind die ARM / AVR-Kosten für vergleichbare Ressourcen ziemlich nahe dran. Und die Pakete, die in einer Produktionsumgebung verwendet werden, sind nicht unbedingt so unterschiedlich, da es sich wahrscheinlich um die QFP- oder QFN-Varianten von beiden handelt. Die erforderliche Unterstützungsschaltung ist ebenfalls ziemlich vergleichbar.
Chris Stratton

@ Chris: Wenn Sie die Ressourcen berücksichtigen, die jeder Chip bietet, würde ich sagen, dass ARM fast jedes Mal billiger ist. Das heißt, der Punkt ist, dass in Situationen, in denen AVR in einer Produktionsumgebung Sinn macht, Sie nicht die Leistung und / oder den Schnickschnack benötigen, den ein ARM auf den Tisch bringt. Wenn der AVR mit genutzten Ressourcen anstatt mit verfügbaren Ressourcen gewichtet wird, ist er billiger. Ich denke nicht, dass die Unterstützungsschaltung vergleichbar ist (1 Tantalkondensator gegenüber 4 und andere ähnliche Spiralen). ARM ist kein teures Biest, so viel wie es übertrieben werden kann.
Chintalagiri Shashank

@supercat: Vielleicht. Ich müsste nachsehen. Es schien mir nie offensichtlich, wie oft ich es mir ansah. Ich weiß, dass zumindest einige dsPICs auf interne zurückgreifen können, wenn Sie sie richtig eingerichtet haben, aber selbst das musste ein wenig erraten und herumalbern, um es herauszufinden. Mikrochip-Datenblätter lassen viel zu wünschen übrig, IMO, hängt aber auch davon ab, welchen Markt Sie sich ansehen.
Chintalagiri Shashank

@ChintalagiriShashank - Ignoriert man die anderen Peripheriegeräte und betrachtet man nur die Flash- und RAM-Größen, so gibt es ARM-Angebote, die zum Beispiel mit dem ATMEGA328p ziemlich konkurrenzfähig sind. Und lassen Sie sich nicht von Bypasskappen ablenken. Zum einen kann Tantal als Versorgungsfilter sinnvoll sein, aber die tatsächlichen Bypass-Kappen sind lokale Reservoire mit geringerem Wert für die Hochfrequenz-Schaltanforderungen und können daher billige SMT-Keramiken sein. Darüber hinaus werden Takt und E / A-Schaltfrequenz benötigt. Bei einer vergleichbaren Taktrate benötigt der ARM nicht alle empfohlenen Bypass-Kappen.
Chris Stratton

12

Ein Grund für das große Interesse der Community am Arduino ist die physikalische Standardisierung. So verzwickt das physische Layout ist, durch die Aufnahme einer standardisierten Erweiterungsoption haben die Arduino-Entwickler es den Menschen ermöglicht, ihre eigenen Lösungen zu entwickeln. Wenn Sie die Basis-Arduino-Karte durch eine andere Karte mit einem anderen Mikrocontroller ersetzen möchten, können Sie dies tun. IIRC, jemand hat bereits ein PIC-basiertes Board gebaut, das den Arduino-Formfaktor verwendet. (Die PIC Ardunio-Platine 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 die Platine so umgestalten wollten, dass sie besser in einen bestimmten Bereich passt, hatten Sie Pech. Sie verwendeten benutzerdefinierte Firmware und proprietäre Entwicklungstools, sodass Sie Pech hatten, wenn Sie Fehler hatten oder die Funktionen erweitern wollten. Mit dem Arduino ist jedes Puzzleteil offen: Sie können Teile überall kaufen, nach Bedarf neu anordnen, die Firmware und die Entwicklungswerkzeuge verbessern oder modifizieren. Sie können einfach mit der Arduino IDE beginnen, aber Sie können jederzeit zu C oder Assembly wechseln.

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


1
Sie haben sehr gute Gründe aufgeführt, warum Mikrocontroller-Hobbyisten wie Arduino, aber die Frage war über ARM vs AVR. Arduino wurde aufgrund seiner Entscheidung, die AVR-Serie von MCUs für die Implementierung auszuwählen, erwähnt. 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 eine gute Info für jemanden, der Arduino nicht kennt.
Ozmo

7

Ein wesentlicher Vorteil der ATmel-UCs ist, dass ein kostenloser Compiler für Linux, PC und Mac verfügbar ist. Dazu kommt eine einfache plattformübergreifende Benutzeroberfläche, und Sie haben ein kostenloses Entwicklungssystem, das auf allen Plattformen ausgeführt wird.

Die Kosten sind ein wichtiger Faktor für die Hobby-Boards. Da Sie einen Einstiegspreis im Bereich von 30 USD haben möchten, müssen Sie einen uC-Preis haben, der nicht mehr als ein paar USD beträgt.

ARM wäre ein hervorragender Kandidat für die oberen Boards. Viele Unternehmen lizenzieren den ARM-Core 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 habe an einem Board für Testgeräte mit einem 5206e gearbeitet. Wir haben einige DRAM- und hochgenaue A / D- und D / A-Wandler hinzugefügt. Es war eine kostengünstige Lösung. Ich habe Coldfire in letzter Zeit nicht mit der Vielzahl von ARMs verglichen.

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


4
Vielen Dank für den nützlichen Kommentar, aber die 8 Zeilen der „Signatur“ sind etwas extrem. Diese auf Stackoverflow basierenden Websites neigen dazu, in Ihren Antworten auf die Werbung für Ihre eigenen Websites zu verzichten.
Davr

5
@jluciani, wenn Sie für Ihre anderen Websites werben möchten, setzen Sie die Links in Ihr Profil, nicht in Ihre Antworten. Immerhin ist Ihr Blog nicht die Antwort auf diese Frage ...
Craig Trader

5

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

Im Moment kann nichts mit ARM mithalten. Für jeden anderen Prozessor, den Sie an einem Tag berühren, berühren Sie mindestens ein paar ARMs. Für fast alles, was Sie berühren, wird ein ARM verwendet. Es ist eine natürliche Passform für den 8-Bit-Killer, kann eine viel bessere Leistung als ein 8-Bit-Killer bei gleicher Größe, gleichem Preis usw. erzielen viel schneller usw. Da jeder und sein Bruder einen ARM einbetten können und dieser nicht an ein Unternehmen wie pic, avr, msp430 gebunden ist, gibt es eine Vielzahl von Lösungen und ebenso viele verschiedene Möglichkeiten, mit den Mikrocontroller-ROM / RAM-Gemischen umzugehen und die Interrupt-Vektortabelle. Leider ist die beliebtere Lösung die schmerzhafteste. Probieren Sie ein sam7 oder so ähnlich oder ein stellaris.

Es ist nicht immer der Prozessor, der das Problem ist, einige Chips haben bekannte Probleme, andere haben bekannte Probleme. Einige bieten möglicherweise keinen Open-Collector-Io-Pin mit einem schwachen Pull-Up an, und Sie müssten Hardware außerhalb des Chips platzieren, um eine Schnittstelle zu etwas herzustellen, bei dem bei einem anderen möglicherweise einer oder alle Pins verfügbar sind. Ich empfehle, das Feld zu testen und die verschiedenen Unternehmen und Lösungen auszuprobieren, damit Sie bei geringem Stromverbrauch problemlos einen msp430 verwenden können, die Rechenleistung in einem kleinen Chip haben möchten, den Sie sich leisten können oder ein offenes Projekt erstellen möchten, das Sie sich erhoffen Andere bauen in ihrer Garage, wenn Sie können, bauen Sie sie auf einem Arduino.

Das Fazit Ihrer Frage ist jedoch, dass es wirklich von Ihrer Anwendung und der Art und Weise abhängt, wie Sie sie schreiben, sowie von der Leistung und den Ressourcen, an denen Sie interessiert sind. Auf die gleiche Weise, wie gcc oder firefox auf vielen verschiedenen Plattformen und Prozessoren ausgeführt werden, können Sie dies mit Sicherheit Schreiben Sie Ihre C-Anwendung, um sie auf einer Vielzahl von Mikrocontrollern auszuführen ... IF... Sie haben eine mikrocontrollerspezifische Abstraktionsschicht, die Kosten verursacht. Wenn die Mikrocontroller über ausreichend ähnliche Funktionen verfügen und die Funktionen aufweisen, die Sie benötigen, planen Sie voraus und integrieren Sie diese. Wenn die nächste Plattform über genügend Arbeitsspeicher / Ressourcen verfügt. Sie interessieren sich mehr für Portabilität als für Leistung usw. Möglicherweise müssen Sie dies im Voraus planen. oder zumindest beim ersten Wechsel von A nach B entwerfen Sie die Software neu, wenn / wenn es einen dritten Wechsel von B nach C gibt, ist dies weniger schmerzhaft.


Im Moment kann nichts mit ARM mithalten. <- In der Industrie. In der Welt der Bastler ist AVR immer noch sehr, sehr stark und wird es noch lange sein.
Kevin Vermeer

Ich bin mir absolut einig, dass eine Welt verrückt beliebt ist, eine andere 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 eines, für Ihren Tagesjob das andere und spielen Sie den ganzen Tag und die ganze Nacht.
old_timer

4

Ich weiß, dass Sie "anders als Kosten" gesagt haben, aber das ist wirklich das Wichtigste für Bastler. Sie benötigen nicht mehr als einen UART oder mehr als einen SPI für eine billige, generische Plattform. Sobald Sie anfangen, Geschwindigkeiten von> 20 MHz zu benötigen, sollten Sie sich wirklich ein benutzerdefiniertes Setup ansehen (ymmv natürlich).


3

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

  • Ein Arduino ist für kleine E / A-Projekte vorgesehen, bei denen einer Schaltung eine geringe Menge an Intelligenz hinzugefügt wird. Es handelt sich in der Regel um Single-Thread-Geräte in Echtzeit, bei denen ein ARM sehr verschwendet wird. Es gibt natürlich viele Optionen für ARM-Boards, aber der Anwendungsfall ist normalerweise anders - normalerweise booten sie in einem vollständigen Betriebssystem.

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

Das heißt, für den Zielanwendungsfall des Arduino ist es nicht so, als würdest du ihn verprügeln. Ein 16MHz Prozessor ist eine Menge Grunzgeräusch für Ihren Wecker mit integriertem LED Chaser (oder was auch immer :)


2

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


Entschuldigung Olin, der Titel war ein falscher Versuch von mir, die Frage zu bearbeiten, die aus ihrem Körper gemacht wurde. Es sollte jetzt korrekter sein.
Clabacchio

1

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

Huhn und Ei, aber vor allem in den letzten Jahren (2007 hat ARM die Cortex-M-Architektur eingeführt) sind 32-Bit-MCUs immer beliebter geworden, und die Anbieter konnten der EE-Community einen schnelleren und einfacheren Zugang bieten, wenn sie in> 8-Bit-Versionen entworfen haben. Bit-Mikros (bessere SW-Tools, kostenlose Tools, mehr Beispiele ...).

Da Atmel zusammen mit 100 anderen auch Cortex-M-Geräte anbietet und seine Toolchain für die Unterstützung von AVR zu ARM aktualisiert hat, sowie die langjährige Beziehung, wird der Arduino-Aktualisierungspfad angegeben (?). Aber Alternativen tauchen auf und beinhalten anscheinend alternative Versuche, ihren Anteil am "Hobby-Kuchen" zu gewinnen: zB NXP / ARM und kürzlich "CoAction Hero": 32-Bit-Open-Source-ARM-Cortex-M3-Board auf KickStarter .

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

Originale Antwort: Alf-Egil Bogen, einer der Mitbegründer von Atmel AVR, gibt in seinem Videoblog hier http: //blog.energymicro einen Einblick in die Hintergründe für den Umstieg der Branche von 8-Bit- auf 32-Bit-ARM-Kerne . com / 2013/04/24 / avr2arm / .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.