De 8-bits microcontroller is, dankzij zijn lage energieverbruik en grote gebruiksgemak, nog steeds een hele goede keus

Gedurende de jaren negentig, een periode die ik de 'Gouden Eeuw van de Microcontrollers' pleeg te noemen, begonnen C-compilers net populair te worden, maar moest je nog steeds in assemblagetaal kunnen programmeren als je een baan in de embedded programming-sector ambieerde. Field applications engineer (FAE's) zoals ikzelf gingen op bezoek bij klanten om, staande voor zalen vol ingenieurs, allemaal met wijd opengesperde ogen en kauwend op de als kadootje meegenomen donuts, ademloos uit te wijden over de deugden van de nieuwste microcontrollers die ik in de aanbieding had.

In die dagen rolden bij halfgeleiderfabrikanten niet elke maand nieuwe microcontrollers van de band zoals tegenwoordig. Gewoonlijk brachten we elk kwartaal een of twee nieuwe modellen op de markt. Toch zijn sommige dingen nooit veranderd. Het clubje ingenieurs dat ik die dag onderhield met mijn vernuftige PowerPoint-magie, hield zich bezig met het bouwen van body controllers voor de automobielsector. Deze body controllers waren simpele kleine dozen die werkten volgens de principes van goesintas/goesoutas, oftewel, de schakelaarsignalen “goesinta” de doos en de stuursignalen voor de aandrijving “goesouta” de doos. Eitje van een cent voor een 8-bits microcontroller met een heleboel GPIO.

Dat betekende het standaard circusnummer van de hond op de pony opvoeren, totdat er ergens achterin de zaal een hand werd opgestoken.

Een overtuigde stem klonk: “Het management heeft besloten dat we op 32-bits microcontrollers moeten overstappen voor body controllers”. Uit het geroezemoes in de zaal kon ik makkelijk afleiden dat het management zoiets helemaal niet had besloten en dat deze persoon misschien andere bedoelingen had, bijvoorbeeld een favoriete leverancier die jammer maar helaas, niet de mijne was.

“Je hebt geen 32-bits microcontroller nodig en ik geloof je niet,” zei ik in het parallelle universum dat alleen in mijn fantasie bestaat. Maar in de echte wereld was dat niet zo'n slim idee met het oog op mijn carrière dus antwoordde ik beleefd: “Kun je me vertellen welke kenmerken van een 32-bits architectuur je nodig hebt voor je controllers van de volgende generatie?”

Er volgde een pauze, waarna de ander, met iets van uitdaging in zijn stem antwoordde: “We hebben gewoon 32-bits nodig.” Er klonk twijfel door in zijn stem. De andere ingenieurs, die fijntjes aanvoelden dat hun collega in het nauw werd gedreven, draaiden hun hoofden snel weer naar voren om mijn antwoord te horen.

Ik legde uitvoerig uit wat de voordelen van een 32-bits architectuur waren ten opzichte van een 8-bits. Hadden ze een hogere kloksnelheid nodig? Voerde het product van de volgende generatie meer complexe berekeningen uit? Zou de firmware multi-threaded worden en had hij een real-time besturingssysteem (RTOS) nodig? Zou de firmware zo groot worden dat er meer geheugen moest worden geadresseerd? Dit waren, en zijn nog steeds, allemaal geldige redenen om van een 8-bits naar een 32-bits core over te stappen (16-bits is de gulden middenweg, maar dat is weer een ander verhaal).

Wat volgde was een zeer plezierige discussie, nog verder opgevrolijkt door de donuts, over de verschillen in architectuur tussen 8-bits en 32-bits. De architectuur van de 8-bits microcontroller is eenvoudiger en heeft een gemakkelijk te begrijpen programmeermodel. Meestal heeft hij slechts een voeding nodig. Ondanks marketingslogans die het tegendeel beweren, verbruikt moderne 8-bits architectuur minder energie vergeleken met 32-bits omdat er intern minder bussignalen worden omgeschakeld.

Een voorbeeld van een 8-bitter die echt bestaat

Microchip Technology is al jaren trots op zijn aanbod van 8-bits microcontrollers. De populaire Microchip megaAVR 8-bits core (ook wel ATMega genoemd) heeft een conventionele Harvard-architectuur die tot 256 Kilobytes (Kbytes) programmageheugen kan adresseren. Hij gebruikt een eenvoudige, op registers gebaseerde architectuur die bijzonder C-vriendelijk is met 32 8-bits general-purpose (GP) registers (Afbeelding 1).

Afbeelding 1: de megaAVR microcontroller is gebaseerd op 32 8-bist registers met toewijzing R0 tot R31. De registers kunnen ook worden geadresseerd als registerparen om zestien 16-bits registers te vormen. (Bron afbeelding: Microchip Technology)

GP-registers kunnen worden verdubbeld als registerparen om zestien 16-bits registers te vormen. De laatste drie registerparen kunnen optioneel worden gebruikt als 16-bits adresregisters X, Y en Z voor indirecte adressering.

Naast deze GP-registers heeft de megaAVR een 16-bits stackregister en een 8-bits statusregister. Dat is alles. Simpel genoeg om in assemblagetaal te programmeren (“Echte programmeurs programmeren in assemblagetaal”).

Nee, je hebt geen toegang tot de programmateller in de megaAVR. Laat die maar lekker met rust.

Een typisch voorbeeld van de megaAVR-familie is de 20 megahertz (MHz) ATMEGA1609. Dit is een gebruikersvriendelijke microcontroller met 16 Kbytes flash, 2 Kbytes RAM en 256 bytes EEPROM. De meeste instructies hebben genoeg aan een cyclus.

Afbeelding 2: de ATMEGA1609 van Microchip Technology is een simpele, flexibele, weinig stroom verbruikende 8-bits microcontroller die in vele uiteenlopende omgevingen kan werken. (Bron afbeelding: Microchip technology)

Hij heeft een 10-bits analoog-digitaalomzetter (ADC), vijf 16-bits timers, een real-time klok (RTC), meerdere opties voor energiebesparing en een signed/unsigned hardware-multiplier met 2 cycli.

De megaAVR heet ook een bitset (een cyclus) en bit-clear instructies, evenals bit-testinstructies die een tot drie cycli nodig hebben.

Het belang van bit-instructies wordt vaak over het hoofd gezien door ontwikkelaars die een vurige liefdesrelatie met de C-taal hebben. De waarheid is dat oorspronkelijke bit-instructies (“We hebben geen ATOMISCHE instructie nodig”) de prestaties drastisch kunnen verhogen, de codegrootte reduceren, de leesbaarheid van de code verbeteren, allemaal zaken waar uw teint aanzienlijk van opknapt.

De voedingsvereisten voor de ATMEGA1609 zijn flexibel: 1,8 tot 5,5 volt over een temperatuurbereik van -40°C tot +125°C. Deze brede mogelijkheden voor de voeding en de bedrijfstemperaturen zijn absoluut niet toevallig. Alles in het ontwerp van deze 8-bits microcontroller is erop gericht om zich aan te passen aan, en te worden gebruikt in, de meest uiteenlopende ontwerpomgevingen. “Gebruiksgemak” scoort alweer een punt!

Soms moet een ontwikkelaar gewoon een eenvoudig project snel rond krijgen; 8-bitters zijn gemakkelijk in gebruik, flexibel en onverwoestbaar. Deze eigenschappen vallen niet te negeren.

Achtergrondinformatie over deze auteur

Image of Bill Giovino

Bill Giovino is een ingenieur in elektronica met een BSEE van de Syracuse University. Hij is een van de weinigen die met succes de overstap maakten van ontwerpingenieur naar ingenieur veldtoepassingen en vervolgens naar technologiemarketing.

Meer dan 25 jaar lang heeft Bill met veel toewijding nieuwe technologieën gepromoot ten overstaan van zowel technisch als niet-technisch publiek voor vele bedrijven, waaronder STMicroelectronics, Intel en Maxim Integrated. Toen hij bij STMicroelectronics actief was, hielp Bill bij de doorbraak van de eerste successen van het bedrijf in de sector van microcontrollers. Bij Infineon stond Bill in voor de eerste toepassingen van het microcontrollerontwerp van het bedrijf in de Amerikaanse autosector. Als marketing consultant voor zijn bedrijf CPU Technologies, hielp Bill vele bedrijven om laag presterende producten op te krikken en er een succesverhaal van te maken.

Bill was een van de eersten die het Internet of Things toepaste. Hij plaatste de eerste volledige TCP/IP-stack op een microcontroller. Bill is trouw aan het motto “Verkoop via opvoeding” en wijst op het toenemende belang van duidelijke, goed geschreven mededelingen om producten online te promoten. Hij is moderator van de populaire LinkedIn Semiconductor Sales & Marketing Group en spreekt vlot B2E.

More posts by Bill Giovino
 TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum