So wählen Sie den Mikrocontroller für Ihr neues Produkt aus
Wie wählen Sie den richtigen Mikrocontroller für Ihr spezifisches Hardwareprodukt aus? Dieser Artikel zeigt Ihnen die verschiedenen Faktoren, die Sie bei der Auswahl des besten Mikrocontrollers berücksichtigen müssen.
Bei der Auswahl des richtigen Mikrocontrollers für ein Projekt müssen Kosten, Leistung, Stromverbrauch und Gesamtgröße berücksichtigt werden. Die Verfügbarkeit der richtigen Software- und Hardware-Tools ist ebenfalls ein wichtiger Aspekt.
Der Support für die gewählte Plattform ist ebenfalls sehr wichtig – nicht nur vom Anbieter, sondern von der gesamten Community. Es hilft auch, wenn der gewählte Mikrocontroller ein leicht verfügbares Entwicklungsboard hat.
Schließlich kann die Entwicklungszeit erheblich verkürzt werden, wenn der ausgewählte Mikrocontroller über umfangreiche, vollständig debuggte Softwarebibliotheken mit gut dokumentierten Anwendungsprogrammierschnittstellen oder APIs verfügt.
In diesem Artikel werden nur Mikrocontroller vorgestellt, die im Allgemeinen die oben genannten Kriterien erfüllen.
Alle modernen Mikrocontroller haben einige grundlegende Funktionen gemeinsam. Auf einer Verarbeitungseinheit haben sie eine bestimmte Menge an Flash, die zum Speichern des Anwendungscodes verwendet wird, etwas SRAM und in den meisten Fällen etwas EEPROM.
Sie benötigen eine Taktquelle, die normalerweise entweder durch einen internen Widerstandskondensator (RC) -Oszillator oder durch die Verwendung eines externen Quarzes für zeitkritischere Anwendungen bereitgestellt wird. Sie haben einige digitale IO-Ports und mindestens einen Timer / Zähler.
Abgesehen von sehr Low-End-Mikrocontrollern verfügen die meisten über mindestens einen UART für die serielle Kommunikation. Darüber hinaus unterscheiden sich Mikrocontroller durch die Menge an Speicher, die sie haben, die Anzahl und den Typ anderer auf dem Chip integrierter Peripheriegeräte und die Geschwindigkeit, mit der sie Benutzeranwendungen ausführen.
Dies hängt nicht nur von der Rohtaktgeschwindigkeit ab; Es hängt auch von der Datenbreite des Prozessors und den enthaltenen Hardwarebeschleunigungsfunktionen ab.
Mikrocontroller für eingebettete Systeme lassen sich aufgrund der Breite ihrer Datenbusse hauptsächlich in drei Kategorien einteilen: 8-Bit, 16-Bit und 32-Bit. Es gibt andere, aber das sind die beliebtesten.
Im Allgemeinen sind 8-Bit-Mikrocontroller auf Anwendungen am unteren Ende ausgerichtet, und 32-Bit-Mikrocontroller sind für die höheren Enden und 16-Bit für Mid-End-Anwendungen.
Bei weitem enthalten die meisten Produkte, an denen ich arbeite, 32-Bit-Mikrocontroller, aber 8- oder 16-Bit-Mikrocontroller können eine gute Wahl für kostengünstige Low-End-Produkte sein.
8-Bit-Mikrocontroller
Wenn eine Anwendung keine sehr hohen Anforderungen an die Verarbeitungsleistung stellt und relativ klein ist, kann es sinnvoll sein, einen 8-Bit-Mikrocontroller in Betracht zu ziehen.
Als Referenz basieren die meisten Arduinos auf 8-Bit-Mikrocontrollern. Wenn Sie also Ihren frühen Prototyp mit einem Arduino gebaut haben, können Sie möglicherweise einen 8-Bit-Mikrocontroller in Ihrem Endprodukt verwenden.
Lassen Sie sich jedoch nicht allein vom Preis leiten, und in vielen Fällen können 32-Bit-Mikrocontroller billiger sein als 8-Bit-Chips.
Zum beispiel, die Atmega328p ist die 8-bit mikrocontroller verwendet die Arduino Uno. Es kostet etwas mehr als $ 1 in Mengen von rund 10k Stück. Es läuft mit 20 MHz und enthält 32 KB Flash und 2 KB RAM.
Andererseits können Sie einen 32-Bit-Mikrocontroller mit 48 MHz und ähnlichem Speicher für nur 60 Cent erwerben. Dies ist wahrscheinlich auf die Popularität von 32-Bit-Mikrocontrollern zurückzuführen, die ihre Kosten senken.
Davon abgesehen gibt es sogar billigere 8-Bit-Mikrocontroller, die bei ähnlichen Volumina weniger als 25 Cent kosten.
8-Bit-Mikrocontroller sollten in der Regel für Anwendungen in Betracht gezogen werden, die nur einen Job ausführen, eine eingeschränkte Benutzeroberfläche und wenig Datenverarbeitung haben.
8-Bit-Mikrocontroller gibt es in allen Größen, von kleinen 6-Pin-Geräten bis hin zu Chips mit 64 Pins. Sie haben Flash-Größen von 512 Bytes bis 256 KB, SRAM-Größen von 32 bis 8 KB oder mehr und EEPROM von 0 bis 4 KB oder mehr. Ein minimales System kann so einfach sein wie ein einzelner Chip mit einem Bypass-Kondensator auf der Stromversorgungsschiene.
Die drei beliebtesten 8-Bit-Mikrocontroller sind die 8051-Serie, die PIC-Serie von Microchip und die AVR-Serie von Atmel, die jetzt Teil von Microchip ist.
Die 8051 Serie
Ursprünglich von Intel, und jetzt durch andere, diese mikrocontroller ist immer noch in gemeinsame verwenden heute, eingebettet in viele geräte.
Während sie als eigenständige Geräte verfügbar sind, wird der 8051 heute hauptsächlich als IP-Kerne (Intellectual Property) verwendet, die in das Silizium dedizierter anwendungsspezifischer Chips wie einiger drahtloser Funktransceiver eingebettet sind.
Sehr selten wäre der 8051 die richtige Wahl, um als Hauptmikrocontroller für Ihr Produkt zu dienen.
Die PIC Serie
PIC mikrocontroller sind sehr beliebt, und haben breite unterstützung sowohl durch Microchip, und dritte.
Microchip stellt seine integrierte Entwicklungsumgebung MPLAB® X (IDE), die einen C-Compiler enthält, kostenlos zur Verfügung. Ebenfalls kostenlos als IDE-Plug-In erhältlich ist der MPLAB Code Configurator, der C-Code für die On-Board-Peripherie generiert.
Dies kann dann in den Anwendungscode integriert werden. Es gibt PIC-Modelle mit Kombinationen von USART, SPI, I2C, ADC, USB, LIN, CAN und anderen Schnittstellen. Microchip bietet auch verschiedene Entwicklungstools an, darunter MPLAB PICkit 4, ICD 4 und Real ICE.
Hochwertigere kommerzielle Compliers mit besserer Codeoptimierung sind ebenfalls verfügbar. Hier ist eine kurze PDF-Referenzanleitung zu PIC-Mikrocontrollern.
Die AVR-Serie
Der AVR ist eine weitere Serie sehr beliebter 8-Bit-Mikrocontroller. Während sie sich im selben Raum wie die oben beschriebenen Bilder befinden und vergleichbare Leistungen erbringen, haben sie einen großen Anspruch auf Ruhm: Arduino.
Abbildung 1-Die meisten Arduino boards sind basierend auf 8-bit AVR mikrocontroller
Die original Arduinos, wie die Uno, Leonardo und Mega, alle verwenden AVR mikrocontroller. Aufgrund der sehr großen Auswahl an verfügbaren Bibliotheken für Arduinos verdienen die AVRs ernsthafte Überlegungen für 8-Bit-Anwendungen, wenn auch nur für Proof-of-Concept-Prototypen.
Da Arduino-Bibliotheken in C ++ geschrieben sind, können sie problemlos in jede in C / C ++ geschriebene Anwendung integriert werden.
Zu den Softwareentwicklungstools gehören AVR Studio, oder bei Verwendung von Arduino werden häufig die Arduino IDE und Platform IO verwendet. Der in diesen IDEs verwendete Compiler ist AVR GCC, ein kostenloser, sehr gut unterstützter und gewarteter C / C ++ – Compiler.
Zu den Hardware-Entwicklungstools gehören der Atmel ICE und der PICkit 4. Darüber hinaus sind ausgereifte Tools wie STK600 und AVR Dragon noch weit verbreitet. Hier ist ein Link zu einem schnellen PDF-Referenzhandbuch für AVR-Mikrocontroller.
16-Bit-Mikrocontroller
16-Bit-Mikrocontroller sind der nächste Schritt von 8-Bit, während sie immer noch viele der gleichen Attribute teilen. Sie sind schneller, unterstützen noch mehr Peripheriegeräte und bieten im Allgemeinen mehr Speicher, sowohl Flash als auch SRAM.
Zusätzlich zu mehr IO pins, die meisten von ihnen haben auch hardware multiplikatoren, die sind deutlich schneller, und verwenden weniger programm speicher, im vergleich zu reine software implementierungen.
Es ist leicht, Geräte zu finden, die sowohl ADCs als auch DACs haben, oder Geräte mit kapazitiven Berührungssensoren, segmentierten LCD-Treibern und Ethernet.
Intern verfügen diese Geräte auch über Hardwareblöcke, die normalerweise in Geräten mit niedrigerem Endgerät nicht zu finden sind. Dazu gehören Verschlüsselungs-Engines, Betriebs- oder programmierbare Verstärkungsverstärker und DMA-Controller.
Obwohl 16-Bit-Mikrocontroller von verschiedenen Herstellern wie Microchip (dsPIC33 ist eine beliebte Wahl), NXP, Infineon oder Cypress erhältlich sind, wird hier die TI MSP430-Serie als typisches Beispiel für dieses Mikrocontroller-Segment vorgestellt.
TI MSP430 Series
Der MSP430 ist eine Serie von 16-Bit-Mikrocontrollern mit sehr geringem Stromverbrauch, die in vielen Varianten erhältlich sind. Sie reichen von allgemeinen bis zu sehr spezialisierten Modellen.
Eine interessante Sache an den spezialisierten Varianten dieser Mikrocontroller ist, dass sie sich tatsächlich in zwei Extreme verzweigen: sehr dedizierte, sehr kostengünstige Modelle und High-End-Modelle mit analogen Sensorschnittstellen und digitaler Signalverarbeitung (DSP).
Ein Beispiel für eine High-End-Anwendung ist dieser Ultraschall-Durchflusssensor. Am unteren Ende stellt TI auch MSP430-basierte Chips her, die viele sehr spezifische Hardwarefunktionen lösen. Weitere Details finden Sie in diesem E-Paper.
Möchten Sie beispielsweise eine SPI-zu-UART-Schnittstelle, einen E / A-Expander oder eine UART-zu-UART-Brücke? Es ist alles drin, und das alles für weniger als $0.30 für diesen Chip.
Schließlich wird der MSP430 natürlich von einer Reihe kostengünstiger Tools und Entwicklungskits unterstützt.
Tabelle 1 unten zeigt die zusätzlichen Funktionen, die in einigen der Mainstream-Versionen verfügbar sind.
MSP430FR2x | MSP430FR4x | MSP430FR5x | MSP430FR6x | |
Programmspeicher | Bis zu 32 KB | Bis zu 16 KB | Bis zu 256 KB | Bis zu 128 KB |
Anzahl der Pins | 16 bis 64 in verschiedenen Gehäusen | 48 bis 64 in verschiedenen Gehäusen | 24 bis 100 in verschiedenen Gehäusen | 56 bis 100 in verschiedenen Gehäusen |
Peripheriegeräte, die normalerweise nicht in 8-Bit-Controllern verfügbar sind | DACs, PGas, Transimpedanz & Operationsverstärker | IR-Modulationslogik | DMA, AES | DMA, AES |
LCD-Segmenttreiber | — | Nach oben 256 | — | Bis zu 320 |
Tabelle 1 – Mainstream MSP430 Zusammenfassung der Funktionen
32-Bit-Mikrocontroller
32-Bit-Mikrocontroller sind leistungsstarke Geräte mit mikroprozessorähnlichen Funktionen. Einige der erweiterten Funktionen umfassen Befehls-Pipelining, Verzweigungsvorhersage, verschachtelte vektorisierte Interrupts (NVI), Gleitkommaeinheiten (FPU), Speicherschutz und integrierte Debugger.
Befehls-Pipelining bedeutet, dass der Prozessorkern nachfolgende Anweisungen vorzeitig abruft und die Verzweigungsvorhersage die nächsten Anweisungen beider Ergebnisse einer if-else-Bedingung vorab abruft, wodurch die Codeausführung beschleunigt wird.
NVI sieht Interruptprioritäten vor, wobei ein Interrupt einem Interrupt niedrigerer Priorität vorgreifen kann.
FPU’s können Gleitkommaberechnungen viel schneller durchführen als SW-implementierte Methoden.
Der Speicherschutz stellt sicher, dass Anwendungscode beispielsweise kritische Abschnitte, die dem Betriebssystem gewidmet sind, nicht versehentlich überschreiben kann.
Schließlich ermöglicht das On-Board-Debugging einen Blick in Register und andere Bereiche des Systems, um das Debuggen von Anwendungscode zu erleichtern. All dies zusammen ermöglicht es diesen Mikrocontrollern, große, schnelle und robuste Anwendungen auszuführen.
Darüber hinaus können sie dank ihrer rohen Verarbeitungsleistung problemlos Echtzeitbetriebssysteme (RTOS) unterstützen, die wiederum Multitasking-Funktionen bieten.
Obwohl es viele 32-Bit-Mikrocontroller auf dem Markt gibt, liegt der Schwerpunkt in diesem Hinweis auf den ARM Cortex M-basierten Geräten, wobei der ESP32 von Espressif besonders erwähnt wird.
ARM Holdings entwirft eigentlich nur Prozessorkern-IP’s, die sie dann an verschiedene Halbleiterhersteller lizenzieren, die sie zusammen mit einigen Peripheriegeräten in ihre eigenen Siliziumchips integrieren. Zahlreiche Chiphersteller bieten Mikrocontroller an, die auf der Cortex-M-Architektur basieren.
Zwei prominente Anbieter von ARM-basierten Chips sind Atmel mit ihrer SAM-Gerätelinie und STMicroelectronics mit ihrer STM32-Produktlinie.
Die SAM-Geräte verdienen hier aufgrund ihrer Verwendung in einigen Arduino-kompatiblen Boards Erwähnung. Im Allgemeinen bieten die STM32-Geräte jedoch mehr Auswahlmöglichkeiten und sollten bei der Entwicklung eines eingebetteten 32-Bit-Mikrocontrollers besonders berücksichtigt werden.
STM32 mikrocontroller
ARM Cortex M kerne kommen in viele versionen. Die beliebtesten sind die M0 / M0 +, M1, M3, M4 und M7, die jeweils eine schrittweise höhere Leistung bieten. STM32-Mikrocontroller enthalten M0 / M0 + -, M3-, M4- oder M7-Kerne.
Abbildung 1 zeigt die STM32-Familie von ARM Cortex M-basierten Mikrocontrollern und ihre vorgesehenen Anwendungssegmente.
Abbildung 2 – STM32-Familie von Mikrocontrollern
Innerhalb jeder der in Abbildung 1 gezeigten Kategorien gibt es viele Familien, die ausgewählt werden können, um einer bestimmten Anwendung besser zu entsprechen.
Zum Beispiel zeigt Abbildung 2 die wichtigsten Varianten in der Kategorie „Mainstream“ und ihre relative Leistungskurve. Beachten Sie, dass es innerhalb jeder Familie viele Varianten mit unterschiedlichen Kombinationen von Peripheriegeräten und Speichermengen gibt.
In der tat, in dieser zeit, es sind über dreihundert STM32 mikrocontroller verfügbar in dieser kategorie.
Abbildung 3 – Familie von Mikrocontrollern in der STM32-Mainstream-Kategorie
STM32-Hardwareunterstützung: Die STM32-Familie wird von einer Vielzahl von Hardware-Tools unterstützt, die sowohl von ST Microelectronics als auch von Drittanbietern bereitgestellt werden.
Ein kostengünstiger In-Circuit-Debugger/Programmierer ist der STLink V2. Es wird von ST hergestellt und ist von Orten wie Digi-Key erhältlich; Es sind jedoch auch sehr kostengünstige Klone erhältlich.
ST Microelectronics hat auch eine große Auswahl an Entwicklungsboards unter ihren Nucleo- und Discovery-Familien.
Beide enthalten eine STLink-Debugging-Schnittstelle. Alles, was benötigt wird, ist ein Computer mit USB, auf dem das entsprechende Softwaretool ausgeführt wird, um den ausgewählten Mikrocontroller zu bewerten.
Discovery Boards enthalten zusätzliche externe Peripheriegeräte wie MEMs-Sensoren und kapazitive Touch-Platten. Nucleos haben jedoch Header, die mit Arduino-Shields kompatibel sind.
Abbildung 4–ST Entdeckung entwicklung bord für eine STM32F407 mikrocontroller
Bevor sie diesen abschnitt, es ist erwähnenswert noch eine andere sehr preiswert entwicklung bord. Allgemein bekannt als Blaue Pille, trägt dieses Board einen STM32F103 Cortex M3-basierten Chip und kostet weniger als $ 2.00 aus einigen Quellen.
Ein ansprechendes Merkmal dieses Boards ist, dass es mit Arduino kompatibel gemacht werden kann, so dass die Arduino IDE oder Platform IO zum Schreiben und Herunterladen von Code für schnelle Proof-of-Concept-Designs verwendet werden kann.
Während der Prozess der Arduino-Kompatibilität etwas aufwendig ist, gibt es mehrere Orte, an denen Arduino-fähige Boards verkauft werden. Suchen Sie einfach nach ‚STM32duino‘.
Um zu lernen, wie man ein benutzerdefiniertes STM32-basiertes Mikrocontroller-Board entwirft, schauen Sie sich dieses Tutorial an und schauen Sie sich diesen ausführlichen bezahlten Kurs an.
STM32 software unterstützung: STMicroelectronics bietet eine version von ARM der Mbed entwicklung suite für alle seine STM32 produkt linie. Dazu gehören eine IDE, Compiler und eine umfangreiche Reihe von Bibliotheken.
Für Entwickler, die andere Compiler bevorzugen, bietet ST seinen STMCube an. Dies ist Code-Generator-Software, die Initialisierungscodes für die STM32-Peripheriegeräte erzeugt.
Damit müssen die Biteinstellungen mehrerer Register nicht vollständig durchlaufen werden, um beispielsweise die Peripheriegeräte wie E / A-Ports oder Timer einzurichten.
ESP32
Der ESP32 ist ein Mikrocontroller von Espressif Systems. Wie in Abbildung 3 gezeigt, verfügt es über alle Funktionen eines typischen 32-Bit-Mikrocontrollers.
Figure 5 – Espressif ESP32 module
Was diesen speziellen Mikrocontroller jedoch von anderen unterscheidet, ist die Integration von WiFi- und Bluetooth-Hardware auf dem Chip.
Dazu gehören nicht nur die Protokoll-Stacks, sondern auch die eigentlichen Funk-Transceiver. Der ESP32 ist auch als kleines vorzertifiziertes Modul mit integrierter Antenne erhältlich.
Für anwendungen, die erfordern WiFi oder Bluetooth konnektivität, die ESP32 verdient ernsthafte betrachtung. Der Preis des ESP32 (sowohl diskreter Chip als auch Modul) ist sehr günstig, insbesondere angesichts der Anzahl der Funktionen und der Leistung, die in diesem Chip enthalten sind.
Abbildung 6 – ESP32-Funktionsblockdiagramm
Fazit
Der Mikrocontroller ist wohl die wichtigste Komponente, die Sie für Ihr Produkt auswählen müssen. Der Wechsel zu einem neuen Mikrocontroller mitten im Projekt kann ein Albtraum sein.
Andere Komponenten in einem Design können im Allgemeinen geändert werden, ohne dass massive systemweite Änderungen erforderlich sind. Dies ist bei dem Mikrocontroller, der als Kern Ihres Produkts dient, nicht der Fall.
Wenn Sie einen Mikrocontroller auswählen, möchten Sie im Allgemeinen einen auswählen, der Ihrem Produkt Raum zum Wachsen gibt. Wenn Sie beispielsweise feststellen, dass Sie 16 GPIO-Pins benötigen, möchten Sie keinen Mikrocontroller mit nur 16 GPIO-Pins auswählen.
Was passiert, wenn Sie sich entscheiden, in Zukunft eine neue Schaltfläche hinzuzufügen, sodass Sie einen anderen GPIO-Pin benötigen? Wenn Ihr Mikrocontroller Ihnen keinen Raum zum Wachsen gibt, werden Sie möglicherweise feststellen, dass scheinbar einfache Design-Upgrades in Zukunft ein massives Redesign erfordern, da ein neuer Mikrocontroller erforderlich ist.
Andererseits möchten Sie nicht mehr Leistung oder Funktionen auswählen, als Sie jemals erwartet haben.
Wenn Ihr Produkt beispielsweise nur Temperatur und Luftfeuchtigkeit überwacht, benötigen Sie keinen fortschrittlichen 32-Bit-Mikrocontroller mit Hunderten von MHz. Das wäre übertrieben, was Ihrem Produkt unnötige Kosten und Designkomplexitäten hinzufügt.
Stattdessen müssen Sie den Sweet Spot finden, um bei Bedarf Platz zum Wachsen zu haben, aber nicht für Leistung oder Funktionen zu bezahlen, die Sie nie wirklich brauchen werden.
Vergessen Sie nicht, Ihr kostenloses PDF herunterzuladen: Ultimativer Leitfaden zur Entwicklung und zum Verkauf Ihres neuen elektronischen Hardwareprodukts. Sie erhalten auch meinen wöchentlichen Newsletter, in dem ich Premium-Inhalte teile, die in meinem Blog nicht verfügbar sind.
Andere Inhalte, die Ihnen gefallen könnten:
- Einführung in die Ultra High-Leistung STM32H7 32-bit Mikrocontroller
- Einführung in die STM32CubeIDE für STM32 Mikrocontroller
- ATmega versus STM32–Die Mikrocontroller ist Beste für Ihre Anwendung
- Mikrocontroller oder Mikroprozessor: Die ist Rechts für Ihre Neue Produkt?
- Verwendung von Arduino als Embedded-Entwicklungsplattform
Write a Reply or Comment