8-bitars mikrostyrenheter är fortfarande ett bra alternativ för låg strömförbrukning och enkel användning

På 1990-talet – mikrostyrenheternas guldålder – började C-kompilatorerna bli populära, men ville du jobba med inbäddad programmering krävdes det fortfarande kunskaper i assembly. Fältapplikationsingenjörer, som jag, var ofta ute på kundbesök. Framför grupper av storögda ingenjörer redogjorde jag utförligt kring fördelarna med de senaste mikrostyrenheterna.

Halvledarföretagen på den tiden utvecklade inte nya mikrostyrenheten varje månad, som idag. Kanske en eller högst två nya enheter per kvartal fick vi ut på marknaden. Men vissa saker förändras inte. Det dussintal ingenjörer som jag, under ett av de där kundmötena, underhöll med hjälp av min PowerPoint-magi, tillhörde en grupp som byggde styrenheter för bilkarosser. Karosstyrenheterna var enkla små lådor som fungerade enligt principen goesintas/goesoutas, som i ”goesinta” (goes into) lådan och ”goesouta” (goes out of) lådan. Inga konstigheter för en 8-bitars mikrostyrenhet med massor av GPIO.

Föredraget flöt på som vanligt, tills någon räckte upp handen längst bak i rummet.

”Cheferna har bestämt att vi ska börja använda 32-bitars mikrostyrenheter för karosstyrenheterna”, sa en bestämd röst. Av mumlandet i rummet kunde jag gissa att påståendet kanske inte stämde, och att den som yttrade sig hade en viss baktanke, till exempel att gynna en viss leverantör – som alltså, deppigt nog, inte var jag.

”Ni behöver inte en 32-bitars mikrostyrenhet och jag tror dig inte”, sa jag – i ett alternativt universum. Det jag i själva verket sa var kanske lite smartare med tanke på karriären: ”Kan du tala om för mig vilka egenskaper i en 32-bitars arkitektur som ni skulle behöva i nästa generations styrenheter?”.

Det blev tyst en liten stund, innan han lite trotsigt svarade: ”Vi behöver 32-bitars, helt enkelt”. Men han sa det med viss tvekan. De andra ingenjörerna vände sig ivrigt mot mig för att höra mitt svar.

Jag började förklara 32-bitarsarkitekturens fördelar jämfört med 8-bitarsarkitekturen. Behövde de snabbare klockhastighet? Skulle nästa generations produkt utföra mer avancerade beräkningar? Skulle den fasta programvara vara flertrådig, och behövdes det ett RTOS (realtidsoperativsystem)? Kunde den fasta programvaran bli så stor att det behövdes utökad minnesadressering? De här frågorna var – och är fortfarande – viktiga att ta ställning till innan man gör övergången till en 32-bitars kärna (16 bitar är ett trevligt mellansteg, men också en helt annan historia).

Sedan följde en givande diskussion om skillnaderna mellan 8-bitars- och 32-bitarsarkitekturerna. 8-bitarsarkitekturen för mikrostyrenheter är enklare och har en programmeringsmodell som är lätt att förstå. Oftast behövs bara en enda matning. Trots att marknadsföringen ofta säger motsatsen, har modern 8-bitarsarkitektur lägre strömförbrukning än 32-bitarsarkitekturen eftersom de inre komponenterna utbyter färre signaler.

8-bitarsexempel från verkligheten

Microchip Technology är stolt leverantör av sina 8-bitars mikrostyrenheter sedan flera år. Uppskattade 8-bitarskärnan Microchip megaAVR (även kallad ATMega) har konventionell Harvard-arkitektur som kan adressera upp till 256 kbyte programminne. Den registerbaserade arkitekturen är enkel och mycket C-vänlig, med 32 8-bitars GP-register (general purpose) (figur 1).

Figur 1: Mikrostyrenheten megaAVR baseras på 32 8-bitarsregister med beteckningarna R0 till R31. Registren kan också adresseras som registerpar, och därmed bilda sexton 16-bitarsregister. (Bildkälla: Microchip Technology)

GP-registren kan ”parkopplas” till sexton stycken 16-bitarsregister. De sista tre registerparen kan användas som 16-bitars adressregister X, Y och Z, för indirekt adressering.

Utöver GP-registren har megaAVR ett 16-bitars stackregister och ett 8-bitars statusregister. Det är det hela. Tillräckligt enkelt för att programmera i assembly (”Real Programmers Program in Assembly”).

Nej, man kan inte komma åt programräknaren i megaAVR. Glöm det.

Ett typiskt exempel på megaAVR-familjen är 20 MHz ATMEGA1609. Det är en lättanvänd mikrostyrenhet med 16 kbyte flash, 2 kbyte RAM och 256 byte EEPROM. De flesta instruktioner är enkelcykliga.

Figur 2: ATMEGA1609 från Microchip Technology är en enkel, flexibel, lågeffekts 8-bitars mikrostyrenhet som fungerar i en rad miljöer. (Bildkälla: Microchip Technology)

Den har en 10-bitars AD-omvandlare, fem 16-bitars timers, en realtidsklocka, flera lågeffektsalternativ och en 2-cyklers signerad/osignerad maskinvarumultiplikator.

megaAVR har också en enkelcykels bituppsättning och ”bit clear”-instruktioner liksom ”bit test”-instruktioner som kräver en till tre cykler.

Bit-instruktionernas betydelse förbises ofta av utvecklare som har förälskat sig i C-språket. Men sanningen är att bit-instruktioner (”Vi behöver ingen ATOMIC-instruktion”) kan öka prestanda, minska kodmängden, förbättra läsbarheten och förenkla kraftigt.

Matningsbehovet för ATMEGA1609 är flexibla 1,8 V till 5,5 V i temperaturområdet -40 °C till 125 °C. De breda matnings- och temperaturområdena är ingen slump. Denna 8-bitars mikrostyrenhet är utformad för att klara en lång rad designmiljöer. Återigen: enkelhet!

Ibland behöver man som utvecklare bara ett snabbt sätt att bli klar med projektet. 8-bitarssystem är enkla att använda, flexibla och hårda som sten. Det är egenskaper som är svåra att bortse från.

Om skribenten

Image of Bill Giovino

Bill Giovino arbetar som elektronikingenjör och har kandidatexamen i elektroteknik från Syracuse University. Han är en av få personer som med framgång har bytt karriär från konstruktör via fältapplikationsingenjör till att arbeta med marknadsföring av teknik.

I mer än 25 år har Bill arbetat med att marknadsföra ny teknik för en publik både med och utan tekniska kunskaper för många företag (bland dem kan nämnas STMicroelectronics, Intel och Maxim Integrated). På STMicroelectronics var Bill en av de drivande personerna i att leda företagets framgångar på den nya branschen för mikrostyrenheter. På Infineon drev Bill konstruktionen av prisvinnande mikrostyrenheter för bilindustrin i USA. I sin roll som marknadsföringskonsult för CPU Technologies har Bill hjälpt många företag att omvandla mindre framgångsrika produkter till framgångshistorier.

Bill var tidig med att använda sakernas internet, bland annat genom att placera den första kompletta TCP/IP-stacken på en mikrostyrenhet. Bill tror mycket på att försäljning ska bedrivas genom utbildning och att det är allt viktigare med tydlig, välskriven kommunikation för att marknadsföra produkter online. Han är moderator för den populära gruppen Linkedin Semiconductor Sales & Marketing och kan allt om 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