Digi-Key Electronics
Avtor: Rich Miron
2019_277_18
Za zadovoljstvo uporabnikov s potrošniškimi napravami je dolga življenjska doba baterije pomembna. Poleg tega daljša življenjska doba baterije zmanjša stroške vzdrževanja in izboljša zanesljivost končnih točk interneta stvari (IoT) z baterijskim napajanjem. Ker mikrokontroler v teh napravah lahko porabi veliko energije, morajo oblikovalci izbrati in uporabiti pravo arhitekturo, ki izpolnjuje zahteve teh aplikacij. V večini primerov so 16-bitni mikrokontrolerji najboljša izbira.
Čeprav 8-bitni mikrokontrolerji postajajo zmogljivejši, je njihova zmogljivost sama po osebi omejena, kar zadeva zmogljivost obdelave in naslovljiv pomnilnik. Zato 8-bitni mikrokontrolerji niso ustrezni za visokozmogljive aplikacije. Po drugi strani pa so sistemi, ki temeljijo na 32-bitnih jedrih, pogosto preveč potratni za uporabo, saj velikokrat porabijo več energije kot je potrebno.
Rešitev so 16-bitni mikrokontrolerji, ki predstavljajo zlato sredino med 8- in 32-bitnimi jedri. Ponujajo nizko porabo energije enostavnega 8-bitnega mikrokontrolerja z enim virom napajanja ter zmogljivost in prednosti pomnilnika 32-bitnih jeder. Če aplikacija intenzivno ne uporablja več niti in če pomnilniške zahteve niso previsoke, lahko 16-bitni mikrokontroler zagotovi ustrezno raven zmogljivosti z znatnim prihrankom energije.
V tem članku je opisana arhitektura 16-bitnih mikrokontrolerjev in zakaj so najboljša izbira za številne potrošniške aplikacije in aplikacije končne točke interneta stvari (IoT) z baterijskim napajanjem. Nato je predstavljenih nekaj primerov 16-bitnih mikrokontrolerjev ponudnikov Microchip Technology in Texas Instrumentster uvod v 16-bitno oblikovanje.
Izbira mikrokontrolerja
Izbira ustreznega mikrokontrolerja za aplikacijo je eden prvih korakov v procesu oblikovanja po določitvi projektnih zahtev. Izbirate lahko med 8-, 16- in 32-bitnim mikrokontrolerjem.
Zmogljivost 8-bitnih mikrokontrolerjev je podcenjena: za oblikovalce predstavljajo gonilno silo. Za cenovno ugoden 8-bitni mikrokontroler z majhno porabo energije nobeno opravilo ni premajhno: imajo najmanjšo porabo energije med mikrokontrolerji, pri nekaterih je tok v stanju pripravljenosti pod 100 nanoamperi (nA).
So tudi enostavni za uporabo. 8-bitni mikrokontroler običajno temelji na zbiralniku, nekatere modernejše arhitekture pa imajo nabor registrov. Model programiranja je enostaven in omejen: zbiralniki ali majhen nabor registrov z enim registrom stanj, kazalcem sklada in enim ali več indeksnih registrov. Pogosto je sklad v strojni opremi in ugnezdena programska oprema ne more dostopati do programskega števca (PC).
Čeprav je 8-bitna arhitektura priljubljena, ima svoje omejitve pri vključevanju v omrežja in komunikacije. Skoraj vsi komunikacijski skladi in omrežni protokoli so 16- ali 32- bitni, zato 8-bitna arhitektura ni ustrezna. Poleg tega so tudi visokozmogljivi 8-bitni mikrokontrolerji pogosto omejeni na 16-bitno naslavljanje brez odstranjevanja, kar omejuje velikost ugnezdene programske opreme in kompleksnost.
Na drugi strani pa so 32-bitni mikrokontrolerji postali priljubljeni za aplikacije vseh zmogljivosti. To so arhitekture na osnovi registra, ki zlahka podpirajo omrežja in komunikacije. Običajno ponujajo 32-bitno naslavljanje, lahko podpirajo matematične operacije s premično vejico in visokozmogljive algebrske operacije ter hitrosti ure v gigaherčnem (GHz) območju. 32-bitna jedra imajo bolj zapleten model programiranja, ki lahko vključuje več registrov stanj, programski števec, ki je izpostavljen ugnezdeni programski opremi, napredno upravljanje prekinitev in dve ali več plasti pravic za izvajanje ugnezdene programske opreme.
16-bitni mikrokontrolerji temeljijo na registru, njihove arhitekture pa so tako enostavne kot pri 8-bitnih. Dobro delujejo pri majhni porabi energije, saj imajo znatno manjšo porabo toka kot 32-bitne arhitekture, poraba energije pa je skoraj tako nizka kot pri 8-bitnih jedrih. Če aplikacija zahteva visokozmogljive matematične operacije, se 16-bitni mikrokontrolerji lahko pohvalijo z matematičnimi soprocesorji, ki imajo enako matematično zmogljivost kot 32-bitni in enako hitrost notranje ure.
Vključevanje 16-bitnih mikrokontrolerjev v omrežja podpirajo tudi številni komunikacijski skladi. Ethernet, CAN, USB in Zigbee je samo nekaj skladov protokolov, ki se v 16-bitnem mikrokontrolerju lahko izvajajo enako hitro kot v 32-bitnem, če je v aplikacijski kodi na voljo zadostna zmogljivost za servisiranje sklada.
Naslavljanje struktur velikih Flash pomnilnikov s 16-bitnim mikrokontrolerjem
Ena najpomembnejših razlik med 32- in 16-bitno arhitekturo je obseg naslavljanja pomnilnika. 32-bitni mikrokontrolerji imajo 32-bitno naslovno vodilo, ki omogoča dostop do 4 gigabajtov pomnilnika. Običajni 16-bitni mikrokontrolerji imajo 16-bitno naslavljanje, ki omogoča dostop do samo 64 kilobajtov. Veliko modernih 16-bitnih arhitektur pa ima zdaj do 24-bitno razširjeno naslavljanje, kar omogoča 16 megabajtov naslovnega prostora spremenljive velikosti.
Dober primer pristopa razširjenega naslavljanja je PIC24Fdružina mikrokontrolerjev z nizko porabo energije ponudnika Microchip Technology. Eden od teh mikrokontrolerjev je PIC24FJ1024GA, 32-megaherčni (MHz), 16-bitni mikrokontroler z 1 megabajtom vdelanega Flash pomnilnika in 32 kilobajtov vdelanega statičnega RAM (SRAM) pomnilnika. Uporablja enostaven model programiranja, ki je podoben številnim 8-bitnim mikrokontrolerjem (Slika 1).
PIC24 ima 23-bitni programski števec, ki lahko dostopa do 8 megabajtov Flash programskega pomnilnika. Ima šestnajst 16-bitnih delovnih registrov (WREG), poimenovanih z oznakami W0 do W15. Registri W0 do W13 so registri za splošni namen (GP), ki se lahko uporabljajo za shranjevanje podatkov v okviru kontrolnika ugnezdene programske opreme. W15 je namenski kazalec sklada (SP). Medtem ko klici funkcije in podprograma, izjeme programiranja in vrnjeni klici samodejno povečajo ali zmanjšajo programski števec, ga lahko spremeni tudi ugnezdena programska oprema, na primer W0 do W13.
W14 služi kot kazalec okvirja sklada (FP) z navodili za sklopa LINK in UNLINK. Je neodvisen register za omejitev kazalca sklada (SPLIM) in se uporablja s kazalcem sklada za preprečevanje prekoračitev v skladu.
PIC24 uporablja harvardsko arhitekturo z ločenim naslovnim in podatkovnim prostorom. TBLPAG (Data Table Page Address) in PSVPAG (Program Space Visibility Page Address) registra se uporabljata s posebnimi navodili za dostop in prenos podatkov med naslovnim in podatkovnih prostorom. Ta funkcija je običajna v 32-bitnih arhitekturah, v 8-bitnih jedrih pa redka.
16-bitni RCOUNT (Repeat Loop Counter) register vsebuje števec zanke za navodila za REPEAT sklop.
16-bitni CORCON (CPU Core Control) register se uporablja za konfiguracijo notranjih načinov delovanja PIC24 jedra.
16-bitni register stanj vsebuje bite stanja delovanja za stanje PIC24 jedra, vključno s stanjem, ki je posledica zadnjega izvedenega navodila za sklop.
Microchip Technology ocenjuje zmogljivost PIC24FJ1024GA606T mikrokontrolerja kot 16 milijonov navodil na sekundo (MIPS) pri 32 MHz, kar je izjemno za 16-bitno jedro. Jedro ima številne funkcije, ki jih najdemo pri 32-bitnem mikrokontrolerju, na primer 17×17-bitni strojni množitelj, ki podpira tudi ulomke, in 32×16-bitni strojni delitelj. To je uporabno pri končnih točkah interneta stvari (IoT), ki morajo izvesti izračune s podatki senzorjev. Arhitektura lahko tudi hkrati bere in zapisuje iz podatkovnega pomnilnika, ne da bi se zmogljivost zmanjšala.
Čeprav ima PIC24FJ1024GA606T širok nabor standardnih zunanjih naprav, tudi USB On-the-Go (OTG), porabi zelo malo energije za aplikacije z baterijskim napajanjem. Potrebna napajalna napetost je samo 2,0 do 3,6 volta, pri polni hitrosti pa mikrokontroler porabi največ 7,7 miliampera (mA) pri 32 MHz, kar je za 32-bitno jedro težko dosegljivo. Ugnezdena programska oprema ima dober nadzor nad jedrom in zunanjimi urnimi signali. Na voljo sta dve navodili za sklop v načinu majhne porabe energije. Navodilo IDLE (nedejavnost) zaustavi jedro PIC24, vendar dovoli izvajanje zunanjih naprav. Navodilo SLEEP (mirovanje) zaustavi vse operacije naprave, razen izbirnega čuvaja in zaznavanja zunanjih prekinitev. Tok v načinu nedejavnosti je samo 2,8 mA (največ), največji tok v načinu mirovanja pa je med 10 in 45 mikroamperi (µA), odvisno od konfiguracije zunanjih naprav. V načinu najmanjše porabe energije, tj. način mirovanja z ohranjanjem vsebine pomnilnika RAM (pomnilnik z naključnim dostopom), ta mikrokontroler PIC24F porabi zgolj 190 nA.
Za večjo zmogljivost ponuja Microchip Technology visokozmogljiv 16-bitni mikrokontroler, ki je del njihove dsPIC®družine. Primer je 16-bitni dsPIC33EP512GP506T mikrokontroler s 512 kilobajti Flash pomnilnika in nazivno zmogljivostjo 70 MIPS (Microchip). dsPIC ima skoraj enake osnovne registre kot PIC24 ter dodatne registre, ki podpirajo navodila za obdelavo digitalnih signalov (DSP), vključno z dvema 40-bitnima zbiralnikoma in 32-bitno podporo za množenje. Pri nadgradnji PIC24 mikrokontrolerja v sistemu so pri številnih PIC24 mikrokontrolerjih na voljo nadgradnje dsPIC mikrokontrolerja, združljive s priključki, ki zagotavljajo večjo zmogljivost z uporabo istega tiskanega vezja.
Seveda pa dodatna zmogljivost zahteva dodatno moč. Ta dsPIC33 mikrokontroler zahteva 3,0- do 3,6-voltno napetost in porabi največ 60 mA, ko se izvaja pri 70 MIPS.
Manjša poraba energije in večja zmogljivost
Družina MSP430FR599xmikrokontrolerjevpodjetja Texas Instruments uporablja feroelektrični RAM (FRAM) programski pomnilnik za doseganje večje zmogljivosti branja/zapisovanja pri manjši porabi energije kot pri mikrokontrolerjih s Flash pomnilnikom. 16-bitni MSP430FR5994IPNRmikrokontroler je član te družine izdelkov s 16 MHz taktnim signalom in 256 kilobajti pomnilnika FRAM.
Jedro tega MSP430FR mikrokontrolerja ima izboljšave zmogljivosti, ki vključujejo dvosmerni povezani predpomnilnik s štirimi predpomnilniškimi vrsticami po 64 bitov za boljše delovanje pomnilnika FRAM. 32-bitni strojni množitelj izboljša zmogljivost za zahtevne matematične operacije. Ima tudi LEA (Low Energy Accelerator) soprocesor, ki deluje neodvisno od glavnega jedra MSP430 mikrokontrolerja. LEA lahko izvede 256-točkovno kompleksno hitro Fourierjevo transformacijo (FFT), filtriranje končnega impulznega odziva (FIR) in matrično množenje, za katerega TI trdi, da je do 40-krat hitrejše kot ARM® Cortex®-M0+. LEA izboljša zmogljivost za operacije združevanja senzorjev, izboljšavo slik in obdelavo podatkov ultrazvočnega senzorja. Vse to so aplikacije, pri katerih razvijalci najprej pomislijo na 32-bitno jedro in ne na 16-bitni mikrokontroler z izjemno majhno porabo energije.
Model programiranja za MSP430R je zelo enostaven (Slika 2). Ima šestnajst 16-bitnih registrov (R0 do R15). R0 je programski števec, R1 je kazalec sklada, R2 je register stanj, R3 pa je generator konstant (uporablja se za takojšnje operande). R4 do R15 so registri za splošni namen. Preostali konfiguracijski registri so preslikani iz pomnilnika, podobno kot pri večini 32-bitnih jeder.
Takšno delovanje ne porabi več energije. V načinu pripravljenosti, pri čemer se izvaja ura realnega časa (RTC), TI MSP430FR5994 mikrokontroler porabi samo 350 nA. V načinu zaustavitve porabi zgolj 45 nA. To je manj kot pri kateremkoli trenutno znanem 32-bitnem mikrokontrolerju in celo manj kot pri večini 8-bitnih mikrokontrolerjev.
MSP430FR5994IPNR lahko deluje pri 1,8 do 3,6 voltih. Pri ugnezdeni programski opremi, ki ji primanjkuje FRAM pomnilnika in pri kateri podatki v predpomnilniku niso na voljo, MSP430FR potrebuje samo 3 mA. Če kodi primanjkuje predpomnilnika, je poraba toka zgolj 790 µA. Skupaj z LEA to zagotavlja veliko zmogljivost obdelave z izjemno majhno porabo energije za 16-bitni mikrokontroler.
Aplikacije z majhno porabo energije za MSP430FR5994 družino mikrokontrolerjev zlahka razvijete s TI MSP-EXP430FR5994 LaunchPad™ razvojno ploščo. LaunchPad vsebuje vse, kar razvijalec potrebuje za pisanje kode in odpravljanje napak v ugnezdeni programski opremi za MSP-EXP430FR5994 mikrokontroler (Slika 3).
LaunchPad ima dve tipki, dve LEDici in režo za microSD kartico. LaunchPad ima velik 0,22-faradni (F) super kondenzator, ki lahko napaja razvojno ploščo – to dokazuje majhno porabo energije MSP430FR5994 mikrokontrolerja. Super kondenzator se polni tako, da priklopite LaunchPad na zunanje napajanje in nastavite stikalo J8 na nastavitev »Charge« (Polnjenje). Super kondenzator se napolni v dveh do treh minutah. Po treh minutah se stikalo J8 premakne na nastavitev »Use« (Uporaba) in zunanje napajanje se odstrani. MSP430 lahko deluje več minut, odvisno od aplikacije.
LaunchPad se lahko uporabi tudi za merjenje trenutne porabe MSP430 mikrokontrolerja in aplikacije. Blok J101 ima sedem stikal, vključno s 3-voltnim stikalom za napajanje 3V3. Stikalo z dvema priključkoma lahko odstranite in izmerite tok aplikacije prekopriključkov.
LaunchPad podpira tudi tehnologijo TI EnergyTrace™ in se lahko poveže z računalnikom prek grafičnega uporabniškega vmesnika (GUI) EnergyTrace podjetja Texas Instruments. Tako lahko razvijalci opazujejo sprotno porabo energije MSP430 mikrokontrolerja in aplikacije ter natančno nastavijo aplikacijo za porabo energije.
Spremljanje in beleženje toka v realnem času lahko na primer pokaže občasno povečano porabo toka MSP430 mikrokontrolerja. Sunki toka lahko poškodujejo baterijo in skrajšajo njeno življenjsko dobo. Sunke toka lahko povzročijo napačno konfigurirane zunanje naprave na čipu, zunanje induktivne ali kapacitivne obremenitve ali celo ugnezdena programska oprema, ki poskuša vklopiti vse hkrati. Spremljanje in beleženje toka lahko razvijalcem pokaže, kje morajo prilagoditi ugnezdeno programsko opremo, da odpravijo sunke.
Zaključek
Za številne ugnezdene aplikacije z baterijskim napajanjem, ki imajo majhno porabo in so srednje zmogljive, lahko razvijalci izberejo ustrezen 16-bitni mikrokontroler namesto 32-bitnega jedra. Kot je navedeno v tem članku, lahko pri številnih aplikacijah 16-bitni mikrokontroler porabi precej manj energije kot 32-bitna naprava in še vedno doseže zahtevano zmogljivost.