Gebruik een geoptimaliseerde 8-bits microcontroller om het ontwerp van apparaten met beperkte middelen te vereenvoudigen

Update: 25 april 2024

Voor ontwerpers van apparaten met beperkte stroom en ruimte, zoals elektrisch gereedschap, producten voor persoonlijke hygiëne, speelgoed, apparaten en lichtregelaars, is een 8-bit microcontroller unit (MCU) traditioneel voldoende. Naarmate applicaties evolueren, vereisen ze echter een hogere snelheid, krachtigere randapparatuur en robuustere software-ontwikkeltools. Migreren naar een 16-bits of 32-bits alternatief kan helpen, maar vaak ten koste van een grotere pakketgrootte en meer kracht.

Om deze problemen aan te pakken kunnen ontwerpers profiteren van MCU's gebaseerd op de 8051-architectuur die veel van de voordelen van 16-bits en 32-bits processors naar het 8-bits domein brengen. Ze doen dit in een pakket van slechts 2 x 2 millimeter (mm), terwijl ze tegelijkertijd een moderne ontwikkelomgeving bieden.

Dit artikel beschrijft in het kort de 8051-architectuur en de geschiktheid ervan voor toepassingen met beperkte bronnen. Vervolgens introduceert het een familie van op 8051 gebaseerde MCU's van Silicon Labs, beschrijft het de belangrijkste subsystemen en laat zien hoe elk ervan kritische ontwerpuitdagingen aanpakt. Het artikel wordt afgesloten met een bespreking van hardware- en softwareondersteuning.

Waarom de 8051-architectuur gebruiken?

Bij het selecteren van een MCU voor een toepassing met zeer beperkte ruimte bieden 8-bits processors zoals de beproefde 8051 veel voordelen, waaronder een kleine voetafdruk, een laag stroomverbruik en een eenvoudig ontwerp. Veel 8051-processors hebben echter relatief eenvoudige randapparatuur, waardoor hun geschiktheid voor specifieke gebruikssituaties wordt beperkt. Analoog-digitaalomzetters (ADC's) met lage resolutie zijn bijvoorbeeld onvoldoende voor toepassingen met hoge precisie, zoals medische apparaten.

Relatief trage klokken kunnen ook een probleem zijn. De typische 8051 MCU werkt op klokfrequenties van 8 megahertz (MHz) tot 32 MHz, en oudere ontwerpen vereisen meerdere klokcycli om instructies te verwerken. Deze lage snelheid kan het vermogen van 8-bit MCU's beperken om real-time bewerkingen zoals nauwkeurige motorbesturing te ondersteunen.

Bovendien sluiten de traditionele softwareontwikkelomgevingen voor 8051-processors niet aan bij de verwachtingen van moderne softwareontwikkelaars. In combinatie met de inherente beperkingen van een 8-bits architectuur kan dit leiden tot een langzaam, frustrerend codeerproces.

De beperkingen van traditionele 8-bits processors kunnen ertoe leiden dat ontwikkelaars overwegen om naar 16-bits of 32-bits MCU's te migreren. Hoewel deze MCU's voldoende rekenkracht, hoogwaardige randapparatuur en moderne softwareomgevingen bieden, zijn ze ook relatief groot. Dit maakt het een grotere uitdaging om ze te integreren in ontwerpen met beperkte ruimte, wat de ontwikkeling kan vertragen of de ontwerpomvang kan vergroten.

De grotere codegrootte en het grotere stroomverbruik die gepaard gaan met 16-bits en 32-bits MCU's kunnen ook leiden tot suboptimale ontwerpen. Deze nadelen zijn vooral problematisch voor de vele toepassingen die geen complexe wiskunde met zich meebrengen en dus niet profiteren van de geavanceerde mogelijkheden van deze processors.

De ideale balans tussen deze afwegingen is misschien niet duidelijk aan het begin van een project, en het wisselen van processor halverwege het ontwerp kan de ontwikkeling vertragen of de productgrootte of functionaliteit in gevaar brengen. Veel ontwerpen met beperkte ruimte kunnen dus profiteren van een capabelere, op 8051 gebaseerde MCU die veel van de voordelen van 16-bits en 32-bits processors naar het energiezuinige, compacte 8-bits domein brengt.

EFM8BB50 voegt meer functionaliteit toe aan 8-bit MCU's

Silicon Labs bouwde de EFM8BB50 familie van 8-bit MCU's met deze overwegingen in gedachten (Afbeelding 1). Deze MCU's bieden verbeterde prestaties, geavanceerde randapparatuur en een moderne softwareontwikkelomgeving.

Figuur 1: Getoond wordt een blokschema van de EFM8BB50 MCU. (Afbeeldingsbron: Silicon Labs)

Het hart van de MCU is de CIP-51 8051-kern, een Silicon Labs-implementatie van de 8051-architectuur die is geoptimaliseerd voor betere prestaties, lager energieverbruik en verbeterde functionaliteit. Vooral de prestaties zijn opmerkelijk. In de EFM8BB50 bereikt de kern snelheden tot 50 MHz en wordt 70% van de instructies uitgevoerd in één of twee klokcycli. Dit geeft de MCU's aanzienlijk hogere prestaties dan traditionele 8-bits processors, waardoor ontwikkelaars speelruimte hebben voor complexere toepassingen.

De MCU's vallen ook op door hun kleine afmetingen. De 16-pins varianten van de familie, zoals de EFM8BB50F16G-A-QFN16, zijn verkrijgbaar in verpakkingen zo klein als 2.5 mm x 2.5 mm. De 12-polige versies zoals de EFM8BB50F16G-A-QFN12 zijn zelfs nog kleiner, met verpakkingsformaten tot 2 mm x 2 mm.

Ondanks hun kleine afmetingen zitten de EFM8BB50 MCU's boordevol indrukwekkende functies, waaronder:

  • Een 12-bits ADC, die essentieel is voor toepassingen die nauwkeurige sensorgegevens vereisen
  • Een geïntegreerde temperatuursensor waarmee de MCU de interne temperatuur of de omgevingstemperatuur kan bewaken zonder dat er externe componenten nodig zijn
  • Een driekanaals programmeerbare tellerarray (PCA) met pulsbreedtemodulatie (PWM) die PWM-signalen kan genereren voor variabele uitgangsregeling in toepassingen zoals motorbesturing en LED-dimmen
  • Een driekanaals PWM-motor met dead-time insertion (DTI) voor extra controle van vermogenselektronica, zoals motordrivers of stroomomvormers

Andere input/outputs (I/O) omvatten een verscheidenheid aan seriële communicatie-interfaces, een set 8-bit en 16-bit timers en vier configureerbare logische eenheden. Alle pinnen in de MCU-familie zijn geschikt voor 5 volt en de digitale I/O kan flexibel worden toegewezen om het beperkte aantal pinnen optimaal te benutten.

Geavanceerd energiebeheer

De EFM8BB50 bevat verschillende energiebeheerfuncties om het energieverbruik te optimaliseren en de levensduur van de batterij te verlengen. Deze beginnen met meerdere energiemodi, waaronder een inactieve modus die de kernkloksnelheid verlaagt terwijl randapparatuur actief blijft. De stopmodus gaat nog verder door de kern en de meeste randapparatuur stop te zetten, terwijl het RAM-geheugen en de registerinhoud behouden blijven. Sommige randapparatuur kan zo worden ingesteld dat de kern uit de stopmodus wordt gehaald, wat voordeel oplevert voor gebeurtenisgestuurde toepassingen die voornamelijk in een laag energieverbruik blijven.

Flexibele klokopties dragen bij aan energiebesparing. Een nauwkeurige interne oscillator elimineert in veel scenario's de noodzaak van externe kristaloscillatoren, waardoor het totale stroomverbruik wordt verminderd. De MCU ondersteunt ook clock-gating, waardoor klokken naar verschillende randapparatuur selectief worden uitgeschakeld, waardoor ontwikkelaars apparaten die niet in gebruik zijn, kunnen uitschakelen.

Bij het ontwerpen van de randapparatuur is ook rekening gehouden met energie-efficiëntie. Het meest opvallende is dat de Configurable Logic Unit (CLU) eenvoudige logische functies onafhankelijk kan uitvoeren, waardoor de kern minder vaak hoeft te ontwaken uit de energiezuinige modi voor eenvoudige taken. Bovendien kan de Low Energy UART (LEUART) werken in vermogensmodi waarbij de primaire oscillator is uitgeschakeld, waardoor seriële communicatie mogelijk is in toestanden met laag vermogen.

Ondersteuning van intuïtieve softwareontwikkeling

Ontwikkelaars kunnen software voor de EFM8BB50-familie bouwen in de Simplicity Studio Suite van Silicon Labs. Deze omgeving wordt gebruikt voor de 8-bit EFM8BB50, de 32-bit MCU's van het bedrijf en de draadloze systemen op chip (SoC's). Als gevolg hiervan krijgen ontwikkelaars een moderne omgeving met de functies die ze van krachtigere processors zouden verwachten. Het biedt bijvoorbeeld een energieprofiler die in realtime energieprofilering van code mogelijk maakt (Afbeelding 2).

Figuur 2: Simplicity Studio bevat een energieprofiler die in realtime de krachtprofilering van code mogelijk maakt. (Afbeeldingsbron: Silicon Labs)

De tools zijn gebouwd rond een geïntegreerde ontwikkelomgeving (IDE) met industriestandaard code-editors, compilers, debuggers en een gebruikersinterface (UI)-engine om moderne, responsieve interfaces te ontwikkelen. Deze ontwikkelomgeving biedt toegang tot apparaatspecifieke web- en SDK-bronnen, evenals gespecialiseerde software- en hardwareconfiguratietools.

Simplicity Studio ondersteunt ook de Silicon Labs Secure Vault. De Secure Vault, een zeer geavanceerde beveiligingssuite met PSA-certificeringsniveau 3, stelt ontwerpers in staat Internet of Things (IoT)-apparaten te beschermen en hun aanvalsoppervlak te beschermen tegen escalerende cyberdreigingen, terwijl ze tegelijkertijd voldoen aan de veranderende cyberbeveiligingsregelgeving.

Snel aan de slag met evaluatiekits

Ontwikkelaars die geïnteresseerd zijn in het experimenteren met de EFM8BB50 kunnen de BB50-EK2702A Explorer Kit overwegen, weergegeven in figuur 3. Deze kit met kleine vormfactor is uitgelijnd met de afmetingen van een breadboard voor eenvoudige bevestiging aan prototypesystemen en laboratoriumhardware. Het beschikt over een USB-interface, een ingebouwde SEGGER J-Link-debugger, een LED en een knop voor gebruikersinteractie. De kit wordt volledig ondersteund door de Simplicity Studio Suite en kan worden gebruikt met het hulpprogramma Energy Profiler. Voor elk randapparaat worden softwarevoorbeelden gegeven, en demo's oefenen de LED, knop en UART uit.

Afbeelding 3: Afgebeeld is de BB50-EK2702A Explorer-kit. (Afbeeldingsbron: Silicon Labs)

De kit bevat een mikroBUS-aansluiting en een Qwiic-connector. Met deze hardware-add-on-ondersteuning kunnen ontwikkelaars snel applicaties maken en prototypen met behulp van kant-en-klare boards van verschillende leveranciers.

Ontwikkelaars die geïnteresseerd zijn in een uitgebreider uitgangspunt kunnen de BB50-PK5208A Pro Kit gebruiken, weergegeven in afbeelding 4. Deze kit is ontworpen voor diepgaande evaluatie en testen en bevat sensoren en randapparatuur die veel van de mogelijkheden van de MCU demonstreren.

Afbeelding 4: Afgebeeld is de BB50-PK5208A Pro Kit voor diepgaande evaluatie en testen. (Afbeeldingsbron: Silicon Labs)

De Pro Kit bevat USB-connectiviteit en een geheugen met een ultralaag vermogen van 128 x 128 pixels LCD-scherm, een analoge joystick met acht richtingen, een LED en een gebruikersdrukknop. Het beschikt ook over de Si7021-sensor voor relatieve vochtigheid en temperatuur van Silicon Labs en meerdere stroombronnen, waaronder USB en een knoopcelbatterij.

Voor uitbreiding biedt het bord een 20-pins, 2.54 mm header. Het biedt ook breakout-pads voor directe toegang tot I/O-pinnen. Net als de Explorer Kit ondersteunt de Pro Kit de Energy Profiler en wordt deze geleverd met softwarevoorbeelden voor elk randapparaat.

EFM8BB50 debugger-opties

Silicon Labs biedt meerdere debuggers ter ondersteuning van zijn MCU's. Voor algemene foutopsporing biedt het bedrijf de DEBUGADPTR1-USB, een 8-bit USB-foutopsporingsadapter met een eenvoudige 10-pins connector.

Meer gespecialiseerde mogelijkheden zijn beschikbaar via de SI-DBG1015A Simplicity Link Debugger. Deze wordt aangesloten op de Mini Simplicity Interface die in beide bovengenoemde kits zit. Naast de basisfunctionaliteit biedt Simplicity Link extra mogelijkheden, waaronder een SEGGER J-Link debugger, een packet trace interface, een virtuele COM-poort en breakout-pads voor het eenvoudig onderzoeken van individuele signalen.

Conclusie

Moderne 8051 MCU's zoals de EFM8BB50 brengen functies die doorgaans worden geassocieerd met 16-bits en 32-bits apparaten naar het 8-bits domein. Met zijn hoge kloksnelheden, krachtige randapparatuur en robuuste softwareontwikkelomgeving biedt deze MCU-familie ontwikkelaars de juiste mix van mogelijkheden voor een toenemend aantal toepassingen waarbij ruimte en kracht beperkt zijn, maar grotere prestaties en flexibiliteit vereist zijn.