32-Bit-Mikrocontroller Nicht nur den Core berücksichtigen

Da viele große MCU-Anbieter 32-Bit-Familien mit den gleichen Cores und ähnlichen Speichergrößen, zahlreichen I/Os und Peripherieeinrichtungen anbieten, kann ein Entwickler schnell denken, dass die Wahl eines Mikrocontrollers für ein Embedded-Design nicht wirklich wichtig ist. Die Wahl der richtigen MCU für ein bestimmtes Design kann jedoch die Entwicklungsdauer, den Stromverbrauch und die Gesamtsystemkosten erheblich verringern, während gleichzeitig Flexibilität bei der Berücksichtigung von Änderungen in letzter Minute zur Verfügung steht, ohne größere System-Redesigns vornehmen zu müssen. Dies soll am Beispiel einer neuen MCU-Familie veranschaulicht werden.

Bei der Wahl eines 32-Bit-Mikrocontrollers (MCU) ist das Hauptkriterium stets die Wahl der zentralen Recheneinheit (Core-CPU) gewesen. Bis vor kurzem basierten 32-Bit-MCUs auf verschiedenen Cores, in einigen Fällen auch auf proprietären Architekturen. Entwickler von Embedded Systemen mussten sich daher mit einem bestimmten Core begnügen oder erheblich mehr Entwicklungszeit investieren, um sich in neue Hardware einzuarbeiten und bestehenden Softwarecode portieren.

In den letzten Jahren hat der Einzug der »ARM Cortex«-Cores in MCUs die Embedded-Landschaft verändert. Entwickler wechseln von proprietären 32-Bit-Cores auf MCUs mit ARM-Cortex-Prozessoren, damit sie sich nicht länger an einen einzigen Anbieter für ihre MCUs binden müssen. Rund um die ARM-basierten MCUs hat sich ein großes und weiter wachsendes »Ökosystem« entwickelt, einschließlich Tools von Drittanbietern, wie Compiler, Echtzeit-Betriebssysteme, Software-Stacks, LCD-Grafik, etc. Die meisten größeren MCU-Anbieter haben heute ARM-basierte Bausteine im Angebot.

Damit wird ARMs Cortex-Core zum De-facto-Standard bei 32-Bit-MCUs. Die Wahl einer 32-Bit-MCU mit einem Standard-Core bietet mehr Möglichkeiten als je zuvor. Die Wahl der richtigen MCU für eine bestimmte Anwendung kann eine schwierige Aufgabe sein, bei der viele Faktoren zu berücksichtigen sind. Entwickler müssen zuerst die Anzahl potenzieller MCUs verringern - am besten anhand einer Checkliste mit den Punkten Speichergröße, Anzahl von Eingangs-/Ausgangspins, Kommunikationsschnittstellen, usw. Es ist sehr wahrscheinlich, dass mehrere Anbieter ARM-basierter MCUs diese grundlegenden Anforderungen erfüllen.

Entwickler müssen daher noch genauer auswählen, indem sie sich auf andere wichtige Funktionen konzentrieren, zum Beispiel die Mixed-Signal-Integration, Konfigurierbarkeit, Stromverbrauch und einfache Entwicklung. Die Wahl einer 32-Bit-MCU mit gängigen Komponenten hilft Entwicklern dabei, Gesamtsystemkosten, Designkomplexität und Entwicklungsdauer zu verringern.

So bieten die Mixed-Signal-MCUs der »Precision32«-Familie von Silicon Labs zahlreiche integrierte Funktionen, die sich in anderen MCUs meist nicht finden. Dazu zählen ein USB-Oszillator, ein 5-V-Regler, sechs programmierbare High-Drive-Pins, die bis 300 mA bereitstellen, sowie 16 kapazitive Sensor-Eingangskanäle für Berührungstasten oder Slider. Dieser hohe Integrationsgrad kann den Bedarf an diskreten Bauelementen senken und für eine flexiblere Stromversorgungsdomäne sorgen. Die Stückliste (BOM) verringert sich, und der Entwicklungsprozess wird vereinfacht.

Beispiel Barcode-Scanner

Um die Vorteile einer hochintegrierten Mixed-Signal-MCU zu demonstrieren, wollen wir im Folgenden eine Barcode-Scanner-Anwendung näher betrachten. Um den Barcode zu lesen, sendet der Scanner einen Laserstrahl auf einen oszillierenden Spiegel, der über einen Motor angetrieben ist (Bild 1). Das Laserlicht beleuchtet den Barcode, und das Bild wird von einem CCD-Sensor (Charge-Coupled Device) erfasst. Dieser Sensor ist eine Kamera, die jeweils eine Pixelzeile erfasst, also 1 x 1024 Pixel.

Die analogen Helligkeitsstufen werden verschoben und von einem A/D-Wandler erfasst. Mit einer MCU, die hohe Ströme bereitstellt, erübrigen sich Leistungstransistoren für die Ansteuerung des Lasers und Motors. Und die Wahl einer MCU, die eine Schnittstelle zum CCD-Sensor zur Taktsynchronisation bereitstellt, kann die Arbeit für den Entwickler weiter vereinfachen. Um optimale Ergebnisse zu liefern, sollte der A/D-Wandler der MCU mit der hohen Geschwindigkeit der CCD-Kamera (in der Regel über 1 MSample/s) Schritt halten.

Bei 5-V-CCD-Sensoren ist in den meisten Designs ein Power-Management-IC erforderlich, um die Eingangsspannung für den Sensor bereitzustellen. Die MCU selbst und andere Komponenten benötigen eine Eingangsspannung von 3,3 V. In diesem Barcode-Beispiel können die USB-MCUs der »SiM3U1xx«-Reihe aus der »Precision32«-Familie ein synchronisiertes Taktsignal für den Sensor bereitstellen und so mit der schnellen CCD-Abtastrate Schritt halten. Außerdem steht ein 3,3-V- bis 5-V-Aufwärtswandler zur Versorgung des Sensors bereit, was die Bauteilanzahl im System weiter verringert

In USB-versorgten Scannern bieten die Precision32-MCUs einen integrierten Spannungsregler, der den Mikrocontroller direkt über die USB-Versorgung betreibt. Ein interner 48-MHz-Oszillator mit Taktrückgewinnung rastet sich auf das USB-Signal ein, was eine Genauigkeit von besser als 0,25% und einen quarzfreien USB-Betrieb garantiert. Weitere Bestandteile eines Barcode-Scanners können die direkte Ansteuerung eines Summers sein, um den Benutzer zu informieren, dass ein erfolgreicher Scan erfolgt ist, kapazitive Berührungstasten, um mechanische Taster zu ersetzen, und HW-Verschlüsselung für Funkscanner, die Daten sicher per Funk übertragen sollen.

Einsatz der Dual-Crossbar-Architektur

Eine weitere Designerwägung ist die Flexibilität, mit der Änderungen schnell und einfach durchgeführt werden können, ohne die Entwicklungskosten in die Höhe zu treiben. Um die Entwicklung zu beschleunigen, beginnen Entwickler oft mit einem früheren Projekt und passen die Einstellungen an die neuen Anforderungen an. Um das Design jedoch erfolgreich wiederverwenden zu können, kommt es darauf an, dass die MCU-Peripherie und deren Platzierung sich auswählen und abändern lassen.

Die meisten MCUs bieten fest platzierte Peripherie mit einer festen, alternativen Auswahl. Die festgelegte Anschlussbelegung (Pinout) führt oft zu Anschlusskonflikten und zwingt Entwickler zu Designänderungen oder zu einem größeren und damit teureren Gehäuse. Alternativ steht eine Dual-Crossbar-MCU-Architektur von Silicon Labs zur Verfügung, um mehr Flexibilität zu bieten. Damit kann der Entwickler die benötigte Peripherie zuerst auswählen und dann deren Platzierung vornehmen.

Mit der Möglichkeit, nur die wirklich benötigte Peripherie auszuwählen, ergeben sich meist kleinere, kosteneffizientere Gehäuseoptionen. Ein Beispiel: Für einen Kommunikations-Hub, der vier UARTs mit einer Ablaufsteuerung (16 Pins) und zwei SPIs (6 Pins) erfordert, sollte ein Entwickler eine MCU mit etwas mehr als 22 I/Os auswählen. Bei einer standardmäßig festgelegten Architektur benötigen vier UARTs und drei SPIs allerdings ein 64-Pin- oder sogar ein 100-Pin-Gehäuse, um den exakten Peripherie-Mix bereitzustellen.

Mit einer flexiblen, konfigurierbaren Crossbar-Architektur kann der Entwickler diesen Mix einfach in einem 40-poligen Gehäuse unterbringen, wobei sogar noch einige I/Os übrig bleiben. Durch die optimierte Anordnung lässt sich die Peripherie auch nahe an den betreffenden Schaltkreisen platzieren, was kürzere Leitungen und möglicherweise weniger Leiterplattenlagen als Vorteil mit sich bringt.

Der größte Vorteil ist jedoch, dass sich Änderungen in letzter Minute einfach per Software durchführen lassen. Benötigt der Kommunikations-Hub beispielsweise ein anderes IC mit SPI-Schnittstelle, ist dies kein Problem: Ein dritter SPI-Port kann bei gleicher Grundfläche einfach über eine Softwareänderung hinzugefügt werden. Gibt es angesichts der Vorteile einer flexiblen Crossbar-Architektur irgendwelche Nachteile beim Einsatz einer MCU mit einer hochkonfigurierbaren Crossbar? Einige Entwickler sind besorgt, dass eine Crossbar-Architektur komplex zu programmieren sei.

Silicon Labs adressiert dieses Anliegen durch den »AppBuilder«, ein kostenloses Software-Entwicklungswerkzeug, um die Initialisierung und Konfiguration zu vereinfachen. Über das GUI-basierte AppBuilder-Tool können Entwickler den Peripherie-Mix schnell grafisch auswählen, die Peripherie-Eigenschaften selektieren, Taktmodi setzen und die Pin-Belegungen anpassen - und das alles ohne ein Datenblatt lesen zu müssen. Der AppBuilder generiert sogar den Quellcode, der mit den gängigen Compilern von Keil, IAR und GCC verwendet werden kann.

Kriterium Energieeffizienz

Ein letzter wichtiger Aspekt bei der Wahl einer 32-Bit-MCU ist die Energieeffizienz. Ein geringer Stromverbrauch ist wichtiges Anliegen in einer Vielzahl von Embedded-Anwendungen. Mit den heutigen Ansprüchen in Sachen Umweltschutz und niedriger Energieverbrauch müssen Entwickler die Leistungsaufnahme ihres Systems genau im Auge behalten.

Es gibt zahlreiche Möglichkeiten, den Energieverbrauch zu senken. Die effektivste Methode hängt von der Endanwendung ab: Ein Blutzuckermessgerät nutzt ein Patient zum Beispiel nur wenige Male pro Tag. Die meiste Zeit befindet sich das Gerät daher im Deep-Sleep-Modus. Daher ist es bei dieser Anwendung besonders wichtig, den Stromverbrauch in den Sleep-Modi zu minimieren. Ein Sensorknoten hingegen muss dauerhaft aktiv sein, um neue Ereignisse zu erfassen.

Wenn also dauerhaft auf ein Ereignis gewartet wird, muss der Knoten demzufolge auch dauerhaft im Aktivmodus sein? Nicht wirklich! Der Sensorknoten kann sich im Sleep-Modus befinden, schnell aktiviert werden, feststellen, ob ein Ereignis vorliegt, zum Beispiel eine Raucherkennung, und dann in den Sleep-Modus zurückkehren. In einem solchen System ist ein stromsparender Sleep-Modus mit einer Echtzeituhr (RTC) unerlässlich. Diese aktiviert das System in regelmäßigen Intervallen, beispielsweise alle 100 µs.

Ebenso wichtig ist eine schnelle Wake-up-Zeit und ein Prozessor, der die feste Anzahl an Befehlen schnell abarbeiten kann, um so feststellen zu können, ob ein Ereignis stattfindet. Einige Anwendungen, zum Beispiel in der Fertigung, sind immer aktiv.

Hier ist eine MCU mit einer niedrigen Stromaufnahme im aktiven Zustand sehr hilfreich. Es gibt auch noch weitere Möglichkeiten, Strom einzusparen: beispielweise eine Frequenzänderung während des Betriebs, sodass nur die Verarbeitungsgeschwindigkeit vorliegt, die für die jeweilige Aufgabe erforderlich ist. Die Wahl einer 32-Bit-MCU, die niedrigste Stromverbrauchswerte im Sleep- und Aktiv-Modus sowie beste Werte in Sachen Wake-up-Zeit und Frequenzänderungen während des Betriebs bietet, kann eine Herausforderung sein.

Die MCU-Familie »Precision32« adressiert diese Anforderungen, indem verschiedene Stromsparmodi zur Verfügung stehen (Bild 2). Die MCUs arbeiten bis hinab zu 100 nA, bieten eine Brown-out-Erkennung und 4 KByte RAM-Datenerhalt. Die RTC kann mit zusätzlichen 250 nA hinzugefügt werden. Auch ein Analog-Komparator steht zur Verfügung (400 nA Stromaufnahme), genauso wie ein stromsparender Timer und Pulszähler.

Die MCUs können aus einem stromsparenden Sleep-Modus in Mikrosekunden aktiviert werden. Darüber hinaus bieten die Preci-sion32-MCUs eine Stromaufnahme im Aktivmodus von 275 µA/MHz und eine PLL, die bei jeder Frequenz zwischen 1 MHz und 80 MHz arretiert werden kann. Entwickler können damit die Stromaufnahme für die jeweilige Aufgabe optimieren.

Über den Autor:

Shahram Tadayon ist MCU Product Marketing Manager bei Silicon Laboratories.