Potem, ko je leta 2016 Microchip kupil Atmel in svoj portfelj dodal njegove mikrokontrolerje, dve leti kasneje pa tudi obetavni Microsemi in njegovo PolarFire FPGA tehnologijo, ima danes skoraj zagotovo najbolj zanimiv izbor mikrokontrolerskih tehnologij za graditelje mikroelektronskih sistemov. Znamo med tisočerimi mikrokontrolerji izbrati ravno pravšnjega?
Avtor teksta in fotografij: dr. Simon Vavpotič
E-pošta: simon.vavpotic@gmail.com
Raba mikrokontrolerjev in sistemov v enem čipu (SoC) pri gradnji vsakovrstne strojne opreme, h kateri je veliki meri pripomoglo tudi popularno razvojno okolje Arduino, se hitro povečuje tudi pri nas. Domači in profesionalni graditelji vse pogosteje uporabljajo 32-bitne mikrokontrolerje, ugnezdene v raznovrstne module in razvojne plošče, ki omogočajo hiter razvoj novih strojnih aplikacij v različnih razvojnih okoljih, med katerimi je za domače projekte v ospredju Arduino, profesionalni graditelji pa raje uporabljajo zmogljivejša in zahtevnejša razvojna okolja proizvajalcev.
Ob misli, da bi za svoj projekt uporabil katerega od zajetnejših 8-bitnih mikrokontrolerjev s 64, 100 ali več priključki marsikateri razvijalec najprej pomisli na paleto možnosti, ki jih nudijo po mikroprocesorski zasnovi sodobnejši 32-mikrokontrolerji, a pri številnih aplikacijah je mikrokontrolerjeva procesna enota zgolj povezovalni element med zmogljivimi funkcijskimi enotami. Je pa 8-bitna programska koda krajša in pogosto zahteva bistveno manj pomnilnika od 32-bitne. Navadno zadošča od nekaj kB do 200 kB Flash RAM-a in od 1 kB do 10 kB RAM-a. Zato pri Microchipu še naprej razvijajo tudi 8-bitnike in sproti posodabljajo njihovo notranjo arhitekturo.
Ta vsebina je samo za naročnike
8-bitniki za enostavne in poceni (velikoserijske) aplikacije
Čeprav domači graditelji pogosto posežemo po za programerja udobnejših 32-bitnih arhitekturah, so 8-bitne arhitekture še kako aktualne med proizvajalci bele tehnike in avtomobilov, saj imajo mikrokontrolerji z enostavnejšimi jedri veliko prostora za specializirano periferijo, po drugi strani pa lahko z vgradnjo v različne digitalne senzorje bistveno zmanjšajo procesorsko obremenitev glavnih mikrokontrolerjev v različnih napravah. Več kot 3.000 različnih Microchipovih 8-bitnih mikrokontrolerjev temelji na preizkušenih arhitekturah PIC16F, PIC18F in AVR z do 16 kB RAM-a in 384 kB Flash RAM-a. Vgrajujejo jih v čipe z od 6 do 100 priključki, ki jih napajamo z napetostmi med 1,6 V do 5,5 V. Omogočajo varčevanje z energijo, saj potrebujejo v stanju pripravljenosti le 20 nA toka, v stanju globokega spanja pa le 9 nA, kar omogoča uporabo baterijskega napajanja, denimo v daljinskih upravljalnikih.
Microchip na 8-bitni mikrokontrolerski osnovi izdeluje tudi kopico tovarniško predprogramiranih krmilnih, komunikacijskih in senzorskih čipov, ki jih lahko enostavno uporabimo v svojih projektih gradnje strojne opreme, ne da bi se morali ukvarjati z razvojem in nalaganjem ugnezdene programske kode.
Eden izmed zimzelenih popularnih tovrstnih mikrokontrolerjev je MCP2200, ki deluje kot USB-RS-232 most in ga je mogoče celo reprogramirati z lastno ugnezdeno programsko opremo. A to odsvetujem, če uporabljate zastonjsko licenco za MPLAB X, saj ta ne dopušča dovolj optimizacij programske kode, zaradi česar bo doma izdelana programska koda delovala kvečjemu slabše od tovarniško ugnezdene, saj bo za programerske trike preprosto zmanjkalo pomnilnika. Poti nazaj ni, saj tovarniške programske kode zaradi zaščite pomnilnika ni mogoče prekopirati, v internetu pa je tudi ne moremo dobiti.
Bistvene so ugnezdene periferne enote
Ob naraščajoči stopnji integracije Microchip v svoje 8-bitne mikrokontrolerje vgrajuje vse več funkcijskih enot, kar poenostavlja stojne aplikacije in zmanjšuje dimenzije mikrokontrolersko krmiljenih modulov. Je pa res, da moramo potrebne funkcionalnosti natančno opredeliti že pred začetkom projekta in se v skladu z njimi odločiti za najustreznejši mikrokontroler. Vsekakor pa moramo prej poznati izbor funkcijskih enot in njihovo število pri članih izbrane mikrokontrolerske družine.
Pri tem nam je veliko pomoč pregledna tabela, v kateri so prikazane okvirne zmogljivosti posameznih poddružin mikrokontrolerjev. V dokumentu 8-bit MCU Brochure (30009630) najdemo tudi tabeli z opisom funkcionalnosti vseh 8-bitnih PIC in AVR mikrokontrolerjev, med katerimi so tudi popularni PIC10, PIC12, PIC16, PIC18, ATtiny, ATmega in AVR mikrokontrolerji.
Vendar naj opozorim, da je potrebne pozorno prebrati tudi kratke opise funkcionalnih enot, saj so v tabelah le podatki, ki se med posameznimi poddružinami mikrokontrolerjev razlikujejo, ne pa tudi tisti, ki so enaki za vse. Tako pri PIC mikrokontrolerjih hitro ugotovimo, da nekateri omogočajo celo 32-bitne časovnike in števce.
Kaj so bistvene razlike med funkcijskimi enotami PIC, ATtiny, ATmega in AVR mikrokontrolerjev? Po številu funkcionalnosti so med 8-bitni mikrokontrolerskimi družinami po zmogljivosti nekoliko v ospredju PIC18 mikrokontrolerji, a ne čisto za vse naloge, saj na primer pri PIC nimamo ugnezdene podpore za kriptografijo.
–Kje 8-bitne mikrokontrolerje pogosto uporabljamo? Implementacija kompleksnih senzorjev, kot je tisti za merjenje dotika in premika prstov in rok, je gotovo eden izmed problemov, ki jih zlahka rešimo s PIC16F18076. Za tiste, ki si želite sami eksperimentirati pa je kot nalašč razvojna ploščica Microchip Xpress Development Board s PIC16F18855 mikrokontrolerjem z bogato funkcionalnostjo. Vsekakor pa ne morete pričakovati, da boste v 8-bitnik vgradili tudi zmogljiv spletni grafični vmesnik ali z njim hitro zajemali gore podatkov iz digitalne kamere na SD kartico ali jih pošiljali prek Wi-Fi v osebni računalnik. Za kaj takega rabite 32-bitni mikrokontroler…
16-bitniki in digitalni signalni procesorji posebne aplikacije
Družini PIC24 in dsPIC33 nista redkeje uporabljamo za domače aplikacije, saj zahtevata precejšnjo optimizacijo programske kode, krati pa za enostavnejše domače projekte nimata prednosti pred 8-bitniki, medtem ko so 32-bitni mikrokontrolerji hitrejši, enostavnejši za uporabo in za večino problemov bistveno zmogljivejši. Povejmo še, da je razporeditev priključkov PIC32MM GPL enaka kot pri večini PIC24 in dsPIC DSC mikrokontrolerjih, zato slednje lahko zamenjamo s PIC32MM, ne da bi morali bistveno spreminjati tiskano vezje. Kakorkoli, PIC24 in dsPIC33 družini mikrokontrolerjev v zadnjem času nista doživeli bistvenih posodobitev, zato smo ju le omenili.
Zmogljivi 32-bitniki za vsakogar
Zmogljivejše digitalne (IoT) naprave za vsakdanjo rabo z boljšimi prikazovalniki z zasloni na dotik potrebujejo tudi zmogljivejše mikrokontrolerje, ki ne le olajšajo delo programerju, ampak omogočijo hitrejši dostop in shranjevanje velikih količin podatkov. Nanje lahko namestimo tudi za mikrokontrolerje prilagojene različice Linuxa, kot je FreeRTOS.
PIC32 je zaradi svoje zmogljivosti in skalabilnosti vsekakor zavidanja vredna mikrokontrolerska družina. PIC32 mikrokontrolerji z MIPS32 arhitekturo danes temeljijo na treh različnih procesorskih jedrih: starem in preverjenem M4K, M-Class, ki poganja poddružini PIC32MZ EC in PIC32MZ EF, in najnovejšem microAptiv, ki poganja poddružini PIC32MZ DA in PIC32MM GPx. Medtem, ko je slednja namenjena raznovrstnim krmilnim aplikacijam, se DA ponaša z največ vgrajenega statičnega RAM-a in krmilnikom DDR2 RAM-a, oziroma z do 32 MB vgrajenega ali z do 128 MB zunanjega, ter vgrajenim krmilnikom LCD grafičnih prikazovalnikov, kar omogoča pocenitev in poenostavitev proizvodnje, hkrati pa tudi hitrejše osveževanje grafičnega prikaza.
Prav posebna pa je mikrokontrolerska poddružina PIC32C, ki so jo pri Microchipu dozdevno nekdaj zasnovali predvsem kot odgovor na Atmelove SAM-e z ARM procesorskimi jedri. PIC32C temelji na temelji na CM0+ (ARM Cortex-M0+) jedru, ki ga obkroža nabor zmogljivih in dodelanih Microchipovih funkcionalnih enot, ki ga srečamo tudi v drugih PIC32 mikrokontrolerjih.
Po Microchipovem nakupu konkurenčnega Atmela leta 2016 se zdi, da je razvoj PIC32C arhitektur na osnovi ARM procesorskih jeder zastal, saj je široko polje ARM-ovih mikrokontrolerskih arhitektur zdaj povsem zapolnjeno s SAM-i. Vendar to ne preseneča, saj tudi večina enostavnejših SAM mikrokontrolerjev temelji na CM0+ procesorskih jedrih, zmogljivejši pa na CM4, CM4F in CM7. Slednji imajo sicer podobno količino vgrajenega pomnilnika (do 2 MB Flash RAM-a in do 384 kB RAM-a) kot PIC32MZ-ji in PIC32MK-ji (do 2 MB Flash RAM-a in do 640 MB RAM-a), a imajo nekoliko drugačen nabor zmogljivih funkcionalnih enot, katerega zasnova je nastala še v konkurenčnem Atmelu. A to ne pomeni, da ni prenosa pomembnih tehnologij iz PIC v SAM in obratno.
Vse številčnejše periferne enote
Za tiste, ki se sprašujejo, ali so po številu strojnih operacij v sekundi hitrejši PIC ali SAM mikrokontrolerji, povejmo, da pri najzmogljivejših SAM jedra tiktakajo pri 600 MHz in več. Zato skoraj ni dvoma, da so najzmogljivejši SAM-i hitrejši od najzmogljivejših PIC-ov, a veliko vlogo pri prenosih in obdelavah podatkov imajo tudi v mikrokontroler ugnezdene funkcijske enote, kot so krmilniki: DMA, GMAC, Wi-Fi, U(S)ART, I2C, SPI, QSPI, USB, CAN, večkanalni A/D pretvorniki, primerjalniki analognih signalov, časovniki, matematični soprocesorji, ugnezdeni krmilniki LCD prikazovalnikov itn. Pogosto potrebujemo več istovrstnih funkcionalnih enot, denimo UART-ov za implementacijo RS-232 vmesnikov. Zato pogosto hitrejša procesorska enota k hitrosti delovanja ne pripomore toliko kot ugnezdene funkcijske enote s strojni podporo različnim komunikacijskim protokolom.
Denimo, PIC32MK GP/MC mikrokontrolerji so edini z dvema funkcijskima USB enotama, kar pomeni, da za priklop več USB naprav ne potrebujemo dodatnih krmilnikov, obenem pa lahko mikrokontroler deluje kot gostitelj USB naprav in USB naprava hkrati. Vendar je USB 2.0 komunikacija prehitra in prekompleksna, da bi jo lahko implementirali zgolj v ugnezdeni programski opremi SAM mikrokontrolerja, tako da bi uporabili zgolj splošno-namenske priključke, kot to lahko storimo pri počasnejših in enostavnejših SPI in I2C komunikacijah.
Lahko pa dodatne USB enote implementiramo v sistemih v enem čipu (SoC) z FPGA tehnologijo PolarFire, o katerih lahko preberete na koncu članka.
PIC32MM za krmilne aplikacije
Mikrokontrolerska družina PIC32MM temelji na novem procesorskem jedru microAptiv s prilagojenim naborom funkcionalnih enot, ki ga lahko s pridom uporabimo pri krmilnih aplikacijah, denimo tistih za pogon brezkrtačnih elektromotorjev. PIC32MM primerjavi s PIC32MX porabi manj energije in omogoča daljši čas baterijskega napajanja, obenem pa ima boljše električne lastnosti, predvsem boljšo zaščito pred poškodbami zaradi nepravilne napetosti. Tako ob električnem napajanju z več kot 2 V vsi vhodno-izhodni priključki zdržijo med -0,3 V in +6 V napetosti, brez napajalne napetosti pa med -0,3 V in +4 V. Nekoliko razširjen je tudi obseg napajalnih napetosti, ki omogoča normalno delovanje, saj je slednje mogoče že pri napetosti 2 V, medtem ko je najvišja napajalna napetost 3,6 V.
V PIC32MM razveseljuje tudi ugnezdeni 12-bitni A/D pretvornik, pri GPM pa tudi 5-bitni D/A pretvornik, medtem ko je števcev, analognih primerjalnikov, U(S)ART, SPI, I2S in drugih funkcijskih enot ter možnost za strojno generiranje PWM signalov precej več. USB funkcijska enota je na voljo le pri poddružini GPM, a jo pri krmilnih aplikacijah pogosto niti ne potrebujemo, saj komunikacija z glavnim računalnikom navadno poteka prek SPI ali I2C vodila. Je pa PIC32MM nekoliko manj radodaren pri (podatkovnem) RAM-u, ki ga je največ 32 kB (pri PIC32MX največ 64 kB), pri čemer dodajmo, da ima jo mikrokontrolerji PIC32MM GPL največ le 8 kB RAM-a. Zato ne moremo trditi, da PIC32MM v vsem prekaša PIC32MX, ampak le, da nudi obilico novih možnosti.
Kot zanimivost za domače samograditelje povejmo še, da PIC32MM0064GPL028 mikrokontroler izdelujejo tudi v klasičnem SPDIP-28 ohišju z 28 priključki, vendar ne podpira USB, s katerim nas v enakem ohišju razvajata starejša in energetsko potratnejša PIC32MX250F128B in PIC32MX270F256B.
Priključek za digitalno kamero in dodaten pomnilnik
Zajemanje in sprotno procesiranje digitaliziranega videa visoke ločljivosti postaja z uveljavljanjem umetno-inteligenčnih (AI) informacijskih rešitev vse pomembnejše. Ker mikrokontrolerji po definiciji nimajo možnosti dodajanja perifernih enot na hitro notranje procesorsko vodilo, sta neposredni zajem in obdelava podatkov z digitalne kamere skoraj edini možnosti. Digitalne kamere navadno povezujemo z mikrokontrolerji prek namenskih vzporednih vodil z velik pretočnostjo podatkov, katerih slabost je velika poraba priključkov na mikrokontrolerskem čipu, obenem pa tudi močna obremenitev njegovih procesnih zmogljivosti pri shranjevanju in obdelavi podatkov. Slednji se lahko izognemo z vgradnjo funkcijske enote za zajem (in predobdelavo) podatkov iz digitalne CMOS kamere, oz. druge podobne naprave.
SAM mikrokontrolerji SAM4E/S/L, SAM D5x, SAM S7x in SAM V7x imajo vgrajen paralell capture controller (PCC), ki omogoča poenostavitev in pohitritev zajemanja podatkov z digitalnih kamer, medtem lahko pri PIC32MZ EC in EF za ta namen izkoristimo enega od paralelnih vmesnikov EBI (external bus interface) ali PMP (parallel master port).
Vmesnika lahko uporabimo tudi za priklop dodatnega pomnilnika velikosti do 16 MB, kar ni ravno impresivno, še posebej če vemo, da ni krmilnika poceni DDR2 RAM, kakršnega lahko povežemo s PIC32MZ DA mikrokontrolerjem.
Ethernet
V zadnjem času vse večji pomen dobivajo tudi funkcijske enote za podporo delovanju ethernetnih in Wi-Fi povezav, ki navadno so bistveno hitrejše od vseh ostalih vmesnikov, tudi USB. Slaba lastnost Ethernetnih vmesnikov je, da je v mikrokontrolerju implementirana zgolj upravljalna funkcijska enota, zato moramo dodati še vmesniki s krmilnim čipom (npr. LAN8740) in ostalimi potrebnimi komponentami, med katerimi je seveda tudi ethernetna vtičnica.
Ethetnet prek vodil MII in RMII podpirajo PIC in SAM mikrokontrolerju z vgrajenimi krmilnik za hitrosti 10 Mb/s in 100 Mb/s. Višje hitrosti (1 Gb/s) zmorejo le PolarFire SoCi.
IoT in Wi-Fi
Čeprav IoT naprave lahko delujejo tudi prek Etherneta in drugih ožičenih omrežij, so brezžične povezave še vedno ključ od večine uporabnih in kompaktnih IoT rešitev, ki jih lahko povezujemo tudi v velike računalniške storitvene oblake, kot so Amazonov AWS, Googlov Google Services in Microsoftov Azure.
Microchip že dolgo nudi k IoT usmerjene Wi-Fi rešitve, vendar so vse še donedavna vključevala ločena mikrokontroler in prek različnih vodil povezan komunikacijski modul z lastnim mikrokontrolerskim krmilnikom. Pred dobrim letom smo dobili tudi prve kompaktne module s PIC32 in SAM mikrokontrolerji, ki podobno kot Espressif Systemsovi ESP32 moduli, v enem čipu združujejo mikrokontroler in Wi-Fi komunikacijski vmesnik, kar ob dobri Wi-Fi povezavi omogoča nekajkrat hitrejši pretok podatkov.
Starejši moduli ATWILC1000 in ATWILC3000 se z mikrokontrolerjem lahko povežejo prek vodil SPI, SDIO(+) in UART, medtem ko novejši, ATWINC3400 in ATWINC15x0, uporabljajo zgolj hitrejše SPI vodilo. Še hitrejši so WFI32E01PC-I in ATSAMW25H18 moduli, ki temeljijo na PIC32MZ1025W104 in SAM21D mikrokontrolerjih z vgrajenimi Wi-Fi vmesniki, ki so povezani na hitro notranje vodilo mikrokontrolerja.
Vsi moduli podpirajo Wi-Fi komunikacije po standardih IEEE 802.11 b/g/n, Bluetooth 5 povezave pa omogočajo le ATWINC3400 in ATWILC3000 moduli. Moduli podpirajo protokola WPA in WPA2, medtem ko WPA3 podpira le WFI32E01PC-I. Vsi moduli podpirajo enostavnejši način PSK način izmenjave kriptirnih ključev, medtem ko varnejši Enterprise način (EPA) ne omogoča zgolj WFI32E01PC-I modul.
WFI32E01PC-I, ATSAMW25H18, ATWINC15x0 in ATWINC3400 moduli imajo TCP/IP protokolni sklad vgrajen, vendar ATWINC15x0 in ATWINC3400 moduli omogočajo tudi implementacijo sklada v gostiteljskem mikrokontrolerju.
Slednje je edina možnost za ostale module. Implementacija TCP/IP sklada v modulu pohitri prenos podatkov in zmanjša obremenitev gostiteljskega mikrokontrolerja.
Je pa pri implementaciji TCP/IP protokola v modulu, razen v WFI32E01PC-I, omejeno največje število TCP/UDP vtičnikov (socketov) na 4 UDP in 6 TCP (7 TCP pri ARWINC3400). Povejmo še, da za varnostno kodiranje podatkov vsi moduli uporabljajo TLS protokol.
Matematični soprocesor in varnost
Najzmogljivejši PIC in SAM mikrokontrolerji imajo vgrajen matematični soprocesor, s katerim lahko pohitrimo zahtevne izračune, denimo Furierovo ali Laplaseovo transformacijo. Uporaba soprocesorja v C/C++ programih je samodejna, oziroma je odvisna od pravilne izbire mikrokontrolerja pred prevajanjem programske kode v neposredno izvedljivo strojno kodo, ki s programatorjem naložimo v mikrokontroler.
Med računske enote uvrščamo tudi posebne funkcijske enote, ki izračunavajo CRC in ECC kode, kriptografske stroje za podporo AES, SHA in RSA/DSA algoritmom ter generatorje pravih naključnih števil. Slednji navadno delujejo na osnovi vzorčenja izmerjenih vrednosti belega šuma kot posledice nekega fizikalnega pojava, ki poteka v mikrokontrolerju. PIC in SAM mikrokontrolerji uporabljajo tudi različne tehnologije, ki preprečujejo spreminjanje zagonskega nalagalnika programske kode.
Programerji lahko izbiramo med Microchip MPLAB X in Microchip Studio razvojnim okoljem
Pri Microchipu so dali velik poudarek integraciji podpore razvoja programke kode za SAM mikrokontrolerje iz nekdaj Atmelovega razvojnega okolja Atmel Studio (danes Microchip Studio) v MPLAB X, v katerem lahko danes razvijamo programsko kodo za celoten nabor Microchipovih mikrokontrolerjev.
Še vedno razvijajo tudi Microchip Studio, ki pa ga lahko uporabljamo samo za programiranje AVR in SAM mikrokontrolerjev. Microchip Studio temelji na odprtokodni Microsoft Visual Studio školjki za gradnjo razvojnih okolij, ki jo uporabljajo vsi Microsoftovi programski jeziki jeziki, kot so: Visual Basic, Visual C/C++ in Visual C#.
Nasprotno, MPLAB X temelji na IBM-ovem NetBans razvojnem okolju, ki so ga bolj vajeni programerji PIC mikrokontrolerjev. Kljub temu prevajanje kode za SAM mikrokontrolerje v MPLAB X poteka brezhibno, le da se EDBG programator/razhroščevalnik predstavi kot COM vrata in deluje prek protokola USB CDC kot navidezna RS232 povezava; prej smo lahko uporabljali le programatorje z ICSP in JTAG za PIC mikrokontrolerje.
Vendar MPLAB X potrebuje tudi programske knjižnice in podporne NetBeans vtične module, ki z dodatnimi funkcionalnostmi omogočajo tudi grafično načrtovanje konfiguracije mikrokontrolerjev in poenostavljajo integracijo programskih knjižnic ter razvoj uporabniških vmesnikov, kar je združeno v MPLAB Harmony embedded software development frameworku z MPLAB Harmony Configuratorji (MHC) in Microchip MPLAB Harmony Graphics Suitom (MHGS).
MPLAB Harmony Configuratorji MHC so grafična načrtovalska orodja, ki poenostavljajo nastavitve mikrokontrolerjev, izbiro in konfiguracijo potrebnih programskih knjižnic ter razvoj aplikacij. Na voljo je v dveh različicah, kot vtični modul za MPLAB X ali kot samostojno orodje za druga razvojna okolja. Povejmo še to, da je na voljo več različic konfiguratorjev. Pri razvoju vredno uporabljamo različico ali različice, ki so združljive z našim mikrokontrolerjem in različico MPLAB X razvojnega okolja.
Microchip MPLAB Harmony Graphics Suite (MHGS), ki je del MPLAB Harmony embedded software development framework, uporabljamo pri razvijanju uporabniških grafičnih vmesnikov (GUI).
Namenjen je predvsem za mikrokontrolerje z vgrajenimi krmilniki prikazovalnikov) za 32-bitne mikrokontrolerje (MCU) in mikroprocesorje (MPU). Vsebuje programsko opremo in razvojna orodja za hitro implementacijo GUI z veliko slikami in animacijami.
Med MPU in MCU
Microchip poleg mikrokontrolerjev razvija tudi mikroprocesorske enote (MPU), ki nimajo vgrajenega glavnega pomnilnika, temveč zajeten del priključkov namenjajo zunanjim procesorskim vodilom, prek katerih lahko povežemo druge naprave, pa tudi DDRx RAM, ki ga osvežuje ugnezdeni krmilnik pomnilnika. Vseeno pa imajo tudi MPU-ji ugnezdene funkcijske enote, ki jih srečamo tudi v mikrokontrolerjih (MCU).
Najzmogljivejši MPU je trenutno SAM9X60 s 600 MHz procesorskim jedrom ARM926 z ločenima 32 kB predpomnilnikoma za ukaze in podate, 64 kB vgrajenega SRAM-a in z do 512 MB zunanjega DD2-SDRAM-a, kar je primerljivo z manj zmogljivimi Raspberry Piji, a k temu dodaja še bogat nabor funkcionalnih enot, kot ga imajo MCU-ji. Kaj so prednosti in slabosti MPU v primerjavi z MCU? MCU je SoC (sistem v enem čipu), medtem ki MPU za delovanje potrebuje vsaj še zunanja RAM in EEPROM, a slednja sta lahko veliko večja kot pri MCU-jih in zato omogočata poganjanje klasičnih operacijskih sistemov z grafičnimi uporabniškimi vmesniki. Zbirko Microchipovih razvojnih plošč z MPU jih, ki niso prav nič večje od tistih z MCU-ji, najdete na spletni strani www.at91.com.
PolarFire za najzahtevnejše
PIC in SAM 8-, 16- in 32-bitne mikrokontrolerje s strojnimi arhitekturami Microchip (PIC16, PIC18 in AVR), ARM (SAM in PIC32MC), MIPS32 (vsi PIC32 razen PIC32MC) danes srečamo v večini aplikacij, medtem ko izjemno hitri Microchip PolarFire čipi v enem ohišju združujejo 64-bitno RISC-V arhitekturo Mi-V RV64GC s petimi procesorskimi jedri in programirljivo FPGA logično vezje.
S programskim prilagajanjem FPGA dizajnov za potrebe različnih aplikacij lahko dosežemo izredno visoke zmogljivosti. Zato ne preseneča, da so nekdaj Microsemijeve (zdaj Microchipove) rešitve za vesoljske aplikacije uporabili tudi pri gradnji Nasinih roverjev Spirit in Opportunity, ki sta raziskovala površje Marsa.
PolarFire čipi majo od 25.000 do 460.000 logičnih elementov, obenem pa tudi 12,7 GHz transiverje, ki omogočajo hitro izmenjavo podatkov s periferijo. Ob bistveno manjši porabi energije dosegajo podobne zmogljivosti kot mikrokontrolerji z ARM-ovimi procesorskimi jedri Cortex-A9 in Cortex-A53, oziroma tistim v Raspberry Pi 3 in Raspberry Pi 4. A prednost jim daje predvsem ugnezdeno vezje FPGA, ki po konfiguraciji računske in logične operacije izvaja v strojni opremi, kar je bistveno hitreje, kot če bi jih izvajali programsko.
Denimo, če z FPGA izvajamo vektorske operacije, lahko posamezni operacijo hipno izvedemo nad veliko podatki, ne da bi za to morali čakati na izvedbo dolge programske zanke, kar pomeni zmanjšanje časovne kompleksnosti za eno stopnjo.
Zakaj ne raje nekaj podobnega z Raspberry Pi?
Medtem, ko se najzmogljivejši mikrokontrolerji po zmogljivostih počasi spogledujejo z mikro PC-ji in zanje že pripravljajo popolne različice Linuxa in ne samo oskubljenih Linuxovih jeder, kakršno je FreeRTOS, si lahko resno zastavimo vprašanje, ali ne bo že v nekaj letih v mikrokontrolerski čip zapakiran mikro PC prevzel opravljal enake in podobne naloge kot jih ima danes Rasberry Pi in v katerih že vrsto let tiktaka ARM-ov procesor.
Čeprav se zdi, da želita, po drugi strani različici Raspberry Pi Zero in Pico, vstopiti v svet mikrokontrolerjev, za kaj takega nimata dovolj specializiranih funkcijskih enot, kot je tista za generiranje PWM signalov, ki ji lahko uporabimo za krmiljenje elektromotorjev robota.
Prihajajoči rodovi Microchipovih mikrokontrolerjev bodo zagotovo podprli kakovostnejše uporabniške vmesnike, obenem pa bodo imeli tudi standardno periferijo, ki jo pri Raspberry Pi pogrešamo.
Pričakujemo lahko tudi podporo večjim zunanjim pomnilnikom velikost nekaj GB, ki bodo omogočili hitrejše procesiranje signalov pa tudi grafiko visoke ločljivosti.
Spletna stran:
https://sites.google.com/site/pcusbprojects