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?
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.
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.
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.
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).
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.
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.
Chris Stratton
Das Photon
Chris Stratton
Chris Stratton
Russell McMahon