Wählen Sie einen Mikrocontroller [geschlossen]

Ich plane, einen Mikrocontroller für mein Projekt zu verwenden. Aber ich weiß nicht welchen ich nehmen soll. Ich kenne die Funktionen, die der Mikrocontroller haben muss, aber viele Hersteller können meine Anforderungen erfüllen.

Soll ich TI, Microchip, Arm wählen? Was ist der Unterschied außer dem Betriebsspannungspegel?

Ohne Angabe Ihrer Anforderungen kann keine sinnvolle Auswahl getroffen werden. Anforderungsfreie Fragen wie diese sind nicht zulässig, da sie unweigerlich zu „Mein Anbieter kann Ihren Anbieter verprügeln“ verkommen. Und selbst wenn sie erlaubt wären, wären sie Duplikate der vielen Male, die jemand zuvor versucht hat, diese Frage zu stellen.
@ChrisStratton, im Gegenteil, bei bestimmten Anforderungen wird dies zu einer Einkaufsfrage. Ohne spezifische Anforderungen ist es eine „Wonach soll ich suchen“-Frage, die wir bevorzugen.
In diesem Fall ist es zu breit. Und immer auch ein vielfaches Duplikat. Stack Exchange-Sites sind grundsätzlich für Besonderheiten reserviert, nicht für allgemeine Ratschläge.
Die meisten Versuche, dies erneut zu stellen, scheinen als Duplikate von diesem geschlossen zu werden: electronic.stackexchange.com/questions/37423/…
Verfügbar. Macht was du willst. Kostenlose oder kostengünstige Entwicklungstools verfügbar. Einfach für Sie zu bedienen. Gut unterstützt. Geringer Einfluss auf die Systemkosten.

Antworten (5)

Soll ich TI, Microchip, Arm wählen?

ARM stellt keine eigentlichen Chips her. Sie lizenzieren ihr Design einfach an Chiphersteller. Microchip (Atmel) und TI (unter anderem) stellen beide Chips her, die auf der ARM-Architektur basieren.

Was ist der Unterschied außer dem Spannungsbetriebspegel?

Peripheriegeräte: Verschiedene Chiphersteller integrieren unterschiedliche Kombinationen von Peripheriegeräten in ihre Mikrocontroller. Der eine oder andere passt möglicherweise besser zu Ihrer Anwendung.

Tools: Jeder Chiphersteller stellt seine eigenen Entwicklungstools für seine Chips zur Verfügung. Für viele Mikrocontroller sind auch Tools von Drittanbietern verfügbar. Möglicherweise gefällt Ihnen ein Satz von Tools besser als die anderen, was ein Argument für die Verwendung der von diesem Tool unterstützten Chips wäre. Das kostenlose Tool von FWIW, TI, basiert auf Eclipse, während das von Atmel (einer Tochtergesellschaft von Microchip) auf Visual Studio basiert. Das Tool von Microchip für seine Legacy-Teile (vor der Atmel-Akquisition) ist (AFAIK, ich habe es nicht verwendet) proprietär.

Leistung: Verschiedene Chiphersteller bieten möglicherweise Mikrocontroller mit besserer oder schlechterer Leistung nach bestimmten Metriken wie Taktfrequenz, Stromverbrauch usw. an.

Architektur: Wie bereits erwähnt, produzieren viele Chiphersteller ARM-basierte Chips, und diese sind sehr beliebt. Aber auch proprietäre Architekturen sind immer noch da draußen. Möglicherweise bevorzugen Sie die eine oder andere oder diejenige, die für Ihre Anwendung besonders geeignet ist. Die PIC-Architektur von Microchip ist beispielsweise eine Harvard-Architektur, die einige Vorteile hat, um Code und Daten getrennt zu halten (verhindert, dass Code durch betrügerische Anweisungen beschädigt wird, die dazu bestimmt sind, auf Daten einzuwirken).

Support: Einige Anbieter machen es möglicherweise einfacher, einen Anwendungstechniker zu kontaktieren, um Hilfe zu erhalten, wenn Sie Probleme mit ihren Teilen haben. Andere bieten möglicherweise nur ein Bulletin-Board-System an, in dem Benutzer sich gegenseitig helfen können. Andere bieten vielleicht sogar noch weniger.

Preis: Unterschiedliche Anbieter haben unterschiedliche Strategien für Preisgestaltung und Marketing. Man könnte sehr niedrige Preise anbieten, aber nur für Kunden mit sehr hohem Volumen. Andere haben möglicherweise höhere Preise, bieten aber kleineren Kunden eine gute Unterstützung. Usw.

MPLAB X von Microchip basiert auf NetBeans.
„Die [kostenlose Toolchain] von Atmel basiert auf Visual Studio.“ ... aber natürlich werden Atmels Chips wahrscheinlich häufiger mit der Arduino-Toolchain verwendet, die leichter und anfängerfreundlicher ist.
@Jules, vielleicht für Bastler; nicht in der Industrie.
@ThePhoton - Ja, aber (1) Bastler sind Profis zahlenmäßig weit überlegen, und (2) das OP ist mit ziemlicher Sicherheit ein Bastler.
@Jules Es gibt zig Websites für Bastler, StackExchange richtet sich an Branchenprofis. Visual Studio ist die beste IDE mit einem Vielfachen der Dokumentation, Unterstützung und Fähigkeiten von weniger ausgereiften Tools.
@JeremyThompson, SE steht sowohl Fachleuten als auch Bastlern offen. Hoffentlich sind die Bastler, die hierher kommen, hauptsächlich hier, um ihr Wissen so nah wie möglich an das professionelle Niveau heranzuführen, wie es ihre Zeit zulässt.

Sofern Sie nicht auf eine bestimmte Funktion abzielen, sind fast alle Mikrocontroller gleich.

Wie Sie sich entscheiden, liegt ganz bei Ihnen, aber dies sind einige der Dinge, auf die ich bei der Auswahl eines Geräts achte oder bei der Auswahl eines Geräts geachtet habe.

  1. Wie sind meine Erfahrungen mit dem Gerät? Wenn ich schon einmal ein Gerät benutzt habe, kann diese Erfahrung, zu wissen, was zu tun ist (und was nicht zu tun ist), Zeit sparen. Wenn ich das Gerät zuvor verwendet habe, habe ich möglicherweise bereits Entwicklertools (Programmierer, Debugger, Toolchains usw.) für dieses Gerät.

  2. Wie viel Unterstützung ist verfügbar? Gibt es eine große Community, die ich um Hilfe bitten kann, wenn ich Hilfe brauche? Die großen Player (TI, Microchip, ST usw.) haben gute Communitys und es gibt viele Projekte, die sie nutzen. Ich bin auf ein Zilog-Produkt gestoßen, und ich habe seit über 10 Jahren nichts mehr von Zilog gehört, und ich kenne niemanden, der Zilog verwendet (außer diesem einen Produkt).

  3. Wie verfügbar sind Teile/Entwicklungsboards? Mit einem Entwicklungsboard können Sie schnell loslegen oder Teile haben, die leicht gelötet oder mit Steckbrettern versehen werden können (ist das ein Wort?), was das Einrichten und Laufen viel einfacher macht, als ein benutzerdefiniertes Board herstellen zu lassen oder Wochen / Monate warten zu müssen, um es zu bekommen gestartet.

Zu Punkt 3: Vergessen Sie nicht die Verfügbarkeit und die Preise für die benötigten Tools! Für exotischere Geräte müssen Sie eine teure Compiler-Lizenz kaufen und ein teures Flash-Gerät kaufen!

Auch wenn die meisten Hersteller die gleiche Funktion bieten, haben einige Mikrocontroller Besonderheiten. Beispielsweise verbraucht der MSP430 von TI weniger Energie als ARM oder PIC. Jeder Entwickler hat auch Vorlieben, die bei der Auswahl stattfinden können.

Wenn Sie neu in der MCU-Programmierung sind, sollten Sie sich für eine praktikable und einfach zu verwendende Entwicklungsplattform und ein Toolset entscheiden, anstatt sich für einen MCU-Typ zu entscheiden. Praktisch alle Plattformen unterstützen GCC. Wenn Sie also 'C' lernen möchten, ist die Bandbreite groß. Wenn Sie beispielsweise Python oder BASIC verwenden wollten, ist Ihre Auswahl an verfügbaren Optionen stark eingeschränkt.

Beginnen Sie mit Ihren übergeordneten Projektanforderungen (Sprache, Speicher, Datenbank, Internetverbindung, Internetdienste, USB (Host), Echtzeit-Interrupt-Reaktionsfähigkeit usw., und dies wird Ihnen bei der Auswahl helfen.

Wenn Sie beispielsweise einen Projektcontroller bereitstellen möchten, der Internetdienste (HTTP-Server) und eine Datenbank zum Speichern erfasster Daten bereitstellen muss, können Sie einen High-End-Controller wie den Raspberry Pi oder ASUS Tinker auswählen. Diese laufen unter Linux und bieten enorme Flexibilität in der Software (Anwendungen und Sprachen), die Sie verwenden können, um Ihre Projektanforderungen zu erfüllen. Die Plattformen können sogar eine vollständig eigenständige Entwicklungsumgebung bereitstellen, an die Sie Maus/Tastatur und LCD-Bildschirm anschließen können.

Wenn Ihr Projekt viel kleiner ist und der Mikrocontroller keine umfangreichen Dienste bereitstellt oder eine eigene Entwicklungsumgebung hosten muss, ist die Palette der Lösungen viel breiter. Von besonderer Bedeutung ist hier, ob Sie eine Echtzeitreaktion auf E/A benötigen, alles, was weit über etwa 100-200 Hz Schleifenzeit liegt, kann eine Herausforderung für Hochsprachen darstellen.

Wenn Sie auf einem PC/MAC/Linux-Desktop entwickeln möchten, gibt es viele Toolsets/Entwicklungstools, die installiert werden können und eine Verbindung zu eigenständigen Mikrocontroller-Boards ermöglichen.
Zum Beispiel verbinden sich die Arduino-Boards (eine große Auswahl) nahtlos mit ihrer Desktop-Entwicklungsumgebung, entweder über USB oder über Programmierer speziell für die Auswahl an Boards.
An diesem Punkt wird es zu einem gewissen Glaubenskrieg, bei dem jeder Entwickler sicher ist, dass sein häufigstes Sortiment das beste ist.

Meine Vorliebe ist es, die Leute mit dem Arduino Nano anzufangen ... sehr niedrige Kosten, einfache Entwicklung und eine große Auswahl an verfügbaren Support-Boards. Alles von Schrittmotortreibern bis hin zu isolierten E/A ist sofort verfügbar. Das Format des Nano ermöglicht die einfache Verwendung als Komponente auf Ihrer projektspezifischen Leiterplatte, wenn dies Ihre Richtung ist.

Kein Unterschied, außer womit Sie sich wohlfühlen. TI ist meiner Meinung nach besser, aber viele Leute mögen Arduino/Atmel und sogar so etwas wie den ESP8266. Wählen Sie also das aus, was Ihnen am besten gefällt.