Verwenden Sie einen optimierten 8-Bit-Mikrocontroller, um das Design ressourcenbeschränkter Geräte zu vereinfachen

Update: 25. April 2024

Für Entwickler von strom- und platzbeschränkten Geräten wie Elektrowerkzeugen, Körperpflegeprodukten, Spielzeug, Haushaltsgeräten und Beleuchtungssteuerungen reicht traditionell eine 8-Bit-Mikrocontrollereinheit (MCU) aus. Da sich Anwendungen jedoch weiterentwickeln, erfordern sie eine höhere Geschwindigkeit, leistungsfähigere Peripherieoptionen und robustere Softwareentwicklungstools. Die Migration auf eine 16-Bit- oder 32-Bit-Alternative kann hilfreich sein, allerdings oft auf Kosten einer größeren Paketgröße und mehr Leistung.

Um diese Probleme anzugehen, können Entwickler MCUs nutzen, die auf der 8051-Architektur basieren und viele der Vorteile von 16-Bit- und 32-Bit-Prozessoren in die 8-Bit-Domäne übertragen. Dies geschieht in einem nur 2 x 2 Millimeter (mm) kleinen Gehäuse und bietet gleichzeitig eine moderne Entwicklungsumgebung.

Dieser Artikel beschreibt kurz die 8051-Architektur und ihre Eignung für ressourcenbeschränkte Anwendungen. Anschließend wird eine Familie von 8051-basierten MCUs von Silicon Labs vorgestellt, wichtige Subsysteme beschrieben und gezeigt, wie jedes einzelne kritische Designherausforderungen angeht. Der Artikel schließt mit der Erörterung der Hardware- und Softwareunterstützung.

Warum die 8051-Architektur verwenden?

Bei der Auswahl einer MCU für eine Anwendung mit sehr begrenztem Platzangebot bieten 8-Bit-Prozessoren wie der bewährte 8051 viele Vorteile, darunter einen geringen Platzbedarf, einen geringen Stromverbrauch und ein einfaches Design. Allerdings verfügen viele 8051-Prozessoren über relativ einfache Peripheriegeräte, was ihre Eignung für bestimmte Anwendungsfälle einschränkt. Beispielsweise reichen Analog-Digital-Wandler (ADCs) mit niedriger Auflösung für hochpräzise Anwendungen wie medizinische Geräte nicht aus.

Auch relativ langsame Uhren können ein Problem sein. Die typische 8051-MCU arbeitet mit Taktfrequenzen von 8 Megahertz (MHz) bis 32 MHz, und ältere Designs erfordern mehrere Taktzyklen, um Befehle zu verarbeiten. Diese niedrige Geschwindigkeit kann die Fähigkeit von 8-Bit-MCUs einschränken, Echtzeitvorgänge wie eine präzise Motorsteuerung zu unterstützen.

Außerdem entsprechen die herkömmlichen Softwareentwicklungsumgebungen für 8051-Prozessoren nicht den Erwartungen moderner Softwareentwickler. In Kombination mit den inhärenten Einschränkungen einer 8-Bit-Architektur kann dies zu einem langsamen und frustrierenden Codierungsprozess führen.

Die Einschränkungen herkömmlicher 8-Bit-Prozessoren können Entwickler dazu veranlassen, eine Migration auf 16-Bit- oder 32-Bit-MCUs in Betracht zu ziehen. Diese MCUs bieten zwar reichlich Rechenleistung, leistungsstarke Peripheriegeräte und moderne Softwareumgebungen, sind aber auch relativ groß. Dies macht es schwieriger, sie in platzbeschränkte Designs zu integrieren, was die Entwicklung verzögern oder die Designgröße erhöhen kann.

Die mit 16-Bit- und 32-Bit-MCUs verbundene erhöhte Codegröße und der erhöhte Stromverbrauch können ebenfalls zu suboptimalen Designs führen. Diese Nachteile sind besonders problematisch für die vielen Anwendungen, die keine komplexe Mathematik beinhalten und daher nicht von den erweiterten Fähigkeiten dieser Prozessoren profitieren.

Das ideale Gleichgewicht dieser Kompromisse ist möglicherweise zu Beginn eines Projekts nicht erkennbar, und ein Prozessorwechsel mitten im Design kann die Entwicklung verzögern oder die Produktgröße oder -funktionalität beeinträchtigen. Daher können viele platzbeschränkte Designs von einer leistungsfähigeren 8051-basierten MCU profitieren, die viele der Vorteile von 16-Bit- und 32-Bit-Prozessoren in den stromsparenden, kompakten 8-Bit-Bereich bringt.

EFM8BB50 bietet mehr Funktionalität für 8-Bit-MCUs

Silicon Labs hat das gebaut EFM8BB50 Familie von 8-Bit-MCUs unter Berücksichtigung dieser Überlegungen (Abbildung 1). Diese MCUs bieten verbesserte Leistung, fortschrittliche Peripheriegeräte und eine moderne Software-Entwicklungsumgebung.

Abbildung 1: Dargestellt ist ein Blockdiagramm der EFM8BB50-MCU. (Bildquelle: Silicon Labs)

Das Herzstück der MCU ist der CIP-51 8051-Kern, eine Silicon Labs-Implementierung der 8051-Architektur, die für höhere Leistung, geringeren Stromverbrauch und verbesserte Funktionalität optimiert ist. Besonders hervorzuheben ist die Leistung. Im EFM8BB50 erreicht der Kern Geschwindigkeiten von bis zu 50 MHz und 70 % der Befehle werden in einem oder zwei Taktzyklen ausgeführt. Dies verleiht den MCUs eine deutlich höhere Leistung als herkömmliche 8-Bit-Prozessoren und bietet Entwicklern Spielraum für komplexere Anwendungen.

Die MCUs zeichnen sich auch durch ihre geringen Abmessungen aus. Die 16-Pin-Varianten der Familie, wie beispielsweise das EFM8BB50F16G-A-QFN16, sind in Gehäusen von nur 2.5 mm x 2.5 mm erhältlich. Die 12-Pin-Versionen wie der EFM8BB50F16G-A-QFN12 sind mit Packungsgrößen von bis zu 2 mm x 2 mm sogar noch kleiner.

Trotz ihrer geringen Abmessungen sind die EFM8BB50-MCUs mit einer beeindruckenden Reihe von Funktionen ausgestattet, darunter:

  • Ein 12-Bit-ADC, der für Anwendungen, die genaue Sensordaten erfordern, unerlässlich ist
  • Ein integrierter Temperatursensor, der es der MCU ermöglicht, ihre interne Temperatur oder die Umgebungstemperatur zu überwachen, ohne dass externe Komponenten erforderlich sind
  • Ein dreikanaliges programmierbares Zählerarray (PCA) mit Pulsweitenmodulation (PWM), das PWM-Signale für die variable Ausgangssteuerung in Anwendungen wie Motorsteuerung und LED-Dimmung erzeugen kann
  • Ein Dreikanal-PWM-Motor mit Totzeiteinfügung (DTI) für zusätzliche Steuerung der Leistungselektronik wie Motortreiber oder Leistungswandler

Zu den weiteren Ein-/Ausgängen (I/O) gehören verschiedene serielle Kommunikationsschnittstellen, ein Satz 8-Bit- und 16-Bit-Timer sowie vier konfigurierbare Logikeinheiten. Alle Pins der MCU-Familie sind 5-Volt-fähig und die digitalen I/Os können flexibel zugewiesen werden, um die begrenzte Pinzahl optimal zu nutzen.

Erweiterte Energieverwaltung

Der EFM8BB50 verfügt über mehrere Energiemanagementfunktionen, um den Stromverbrauch zu optimieren und die Batterielebensdauer zu verlängern. Diese beginnen mit mehreren Energiemodi, einschließlich eines Leerlaufmodus, der die Kerntaktrate senkt, während die Peripheriegeräte aktiv bleiben. Der Stoppmodus geht noch einen Schritt weiter, indem er den Kern und die meisten Peripheriegeräte anhält und gleichzeitig den RAM- und Registerinhalt beibehält. Einige Peripheriegeräte können so eingestellt werden, dass sie den Kern aus dem Stop-Modus aktivieren, was ereignisgesteuerten Anwendungen zugute kommt, die überwiegend in einem Energiesparmodus verbleiben.

Flexible Taktoptionen tragen zusätzlich zur Energieeinsparung bei. Ein präziser interner Oszillator macht in vielen Fällen externe Quarzoszillatoren überflüssig und reduziert so den Gesamtstromverbrauch. Die MCU unterstützt auch Clock Gating, wodurch die Takte verschiedener Peripheriegeräte selektiv deaktiviert werden, sodass Entwickler die nicht verwendeten Geräte ausschalten können.

Auch die Peripheriegeräte sind auf Energieeffizienz ausgelegt. Vor allem die konfigurierbare Logikeinheit (CLU) kann einfache Logikfunktionen unabhängig ausführen, sodass der Kern für einfache Aufgaben nicht mehr aus Energiesparmodi aufwachen muss. Darüber hinaus kann der Low Energy UART (LEUART) in Leistungsmodi betrieben werden, in denen der Primäroszillator deaktiviert ist, was eine serielle Kommunikation in Niedrigleistungszuständen ermöglicht.

Unterstützung der intuitiven Softwareentwicklung

Entwickler können Software für die EFM8BB50-Familie in der Simplicity Studio Suite von Silicon Labs erstellen. Diese Umgebung wird für den 8-Bit-EFM8BB50, die 32-Bit-MCUs des Unternehmens und seine Wireless Systems on Chip (SoCs) verwendet. Dadurch erhalten Entwickler eine moderne Umgebung mit den Funktionen, die sie von leistungsstärkeren Prozessoren erwarten würden. Es bietet beispielsweise einen Energieprofiler, der eine Leistungsprofilierung des Codes in Echtzeit ermöglicht (Abbildung 2).

Abbildung 2: Simplicity Studio enthält einen Energieprofiler, der eine Leistungsprofilierung des Codes in Echtzeit ermöglicht. (Bildquelle: Silicon Labs)

Die Tools basieren auf einer integrierten Entwicklungsumgebung (IDE) mit branchenüblichen Code-Editoren, Compilern, Debuggern und einer Benutzeroberflächen-Engine (UI), um moderne, reaktionsfähige Schnittstellen zu entwickeln. Diese Entwicklungsumgebung bietet Zugriff auf gerätespezifische Web- und SDK-Ressourcen sowie spezielle Software- und Hardware-Konfigurationstools.

Simplicity Studio unterstützt auch den Silicon Labs Secure Vault. Secure Vault ist eine hochentwickelte Sicherheitssuite mit PSA-Zertifizierungsstufe 3 und ermöglicht es Entwicklern, Geräte für das Internet der Dinge (IoT) zu härten und ihre Angriffsfläche vor eskalierenden Cyber-Bedrohungen zu schützen, während sie gleichzeitig an sich entwickelnde Cybersicherheitsvorschriften angepasst werden.

Schneller Einstieg mit Evaluierungskits

Entwickler, die daran interessiert sind, mit dem EFM8BB50 zu experimentieren, können das in Abbildung 50 gezeigte Explorer-Kit BB2702-EK3A in Betracht ziehen. Dieses Kit mit kleinem Formfaktor ist auf die Abmessungen des Steckbretts abgestimmt und ermöglicht eine einfache Befestigung an Prototypsystemen und Laborhardware. Es verfügt über eine USB-Schnittstelle, einen integrierten SEGGER J-Link-Debugger, eine LED und eine Taste für die Benutzerinteraktion. Das Kit wird vollständig von der Simplicity Studio Suite unterstützt und kann mit dem Energy Profiler-Dienstprogramm verwendet werden. Für jedes Peripheriegerät werden Softwarebeispiele bereitgestellt, und in Demos werden LED, Taste und UART getestet.

Abbildung 3: Dargestellt ist das Explorer-Kit BB50-EK2702A. (Bildquelle: Silicon Labs)

Das Kit enthält einen mikroBUS-Sockel und einen Qwiic-Anschluss. Diese Hardware-Add-on-Unterstützung ermöglicht es Entwicklern, mithilfe handelsüblicher Boards verschiedener Anbieter schnell Anwendungen zu erstellen und Prototypen zu erstellen.

Entwickler, die an einem umfassenderen Ausgangspunkt interessiert sind, können das in Abbildung 50 gezeigte BB5208-PK4A Pro Kit verwenden. Dieses Kit wurde für eingehende Evaluierungen und Tests entwickelt und enthält Sensoren und Peripheriegeräte, die viele der Fähigkeiten der MCU demonstrieren.

Abbildung 4: Dargestellt ist das BB50-PK5208A Pro Kit für eingehende Evaluierungen und Tests. (Bildquelle: Silicon Labs)

Das Pro Kit umfasst USB-Konnektivität und einen 128 x 128 Pixel großen Speicher mit extrem geringem Stromverbrauch LCD, ein analoger Achtrichtungs-Joystick, eine LED und eine Benutzerdrucktaste. Es verfügt außerdem über den Si7021-Sensor für relative Luftfeuchtigkeit und Temperatur von Silicon Labs und mehrere Stromquellen, darunter USB und eine Knopfzellenbatterie.

Zur Erweiterung bietet das Board einen 20-poligen 2.54-mm-Header. Es bietet außerdem Breakout-Pads für den direkten Zugriff auf I/O-Pins. Wie das Explorer Kit unterstützt das Pro Kit den Energy Profiler und wird mit Softwarebeispielen für jedes Peripheriegerät geliefert.

EFM8BB50-Debugger-Optionen

Silicon Labs bietet mehrere Debugger zur Unterstützung seiner MCUs. Für allgemeines Debugging bietet das Unternehmen den DEBUGADPTR1-USB an, einen 8-Bit-USB-Debug-Adapter mit einem einfachen 10-Pin-Anschluss.

Weitere spezielle Funktionen stehen über den SI-DBG1015A Simplicity Link Debugger zur Verfügung. Dies stellt eine Verbindung zum Mini Simplicity Interface her, das in beiden oben genannten Kits enthalten ist. Zusätzlich zu seiner Grundfunktionalität bietet Simplicity Link zusätzliche Funktionen, darunter einen SEGGER J-Link-Debugger, eine Paketverfolgungsschnittstelle, einen virtuellen COM-Port und Breakout-Pads für die einfache Prüfung einzelner Signale.

Zusammenfassung

Moderne 8051-MCUs wie der EFM8BB50 bringen Funktionen, die normalerweise mit 16-Bit- und 32-Bit-Geräten verbunden sind, in die 8-Bit-Domäne. Mit ihren schnellen Taktraten, leistungsstarken Peripheriegeräten und einer robusten Software-Entwicklungsumgebung bietet diese MCU-Familie Entwicklern die richtige Kombination von Funktionen für eine zunehmende Anzahl von Anwendungen, bei denen Platz und Strom begrenzt sind, aber mehr Leistung und Flexibilität erforderlich sind.