Avtor: dr. Simon Vavpotič
Waveshare je domače samograditelje in tiste, ki se z razvojem elektronike ukvarjajo poslovno, presenetil z Raspberry Pi 5 podobnim računalnikom za razvoj nadzornih plošč.
Če so bili doslej Raspberry Pi in podobni računalniku na eni ploščici tiskanega vezja zaradi enostavnosti programiranja in uporabe ter možnosti priklopa vsakovrstne periferije, popularni tudi pri gradnji industrijskih krmilnih naprav, so za enostavnejše projekte energetsko preveč potratni. Delovanje pri frekvencah med 1 GHz on 2,4 GHz zahteva vsaj pasivno hlajenje sistema v enem čipu (SoC), kar pomembno vpliva na velikost naprave.
Ta vsebina je samo za naročnike
Čeprav ESP32-P4NRW32 čip izdelujejo pri Espressif Systems, kjer so izdelali tudi razvojno ploščo ESP32-P4 Function EV, je Waveshareova ESP32-P4 Module razvojna plošča nekaj posebnega, saj je podobna veliko zmogljivejšemu Raspberry Pi 5 in ima veliko priključkov na istih mestih. 40-polna razširitvena vtičnica je električno združljiva s tisto na Raspberry Pijih, obenem pa je enaka tudi 4-polna vtičnica za napajanje iz Etherneta. ESP32-P4 Modul lahko iz Etherneta zato napajamo kar s pomočjo klobuka za Raspberry Pi 5. Tudi priključek za baterijo za napajanje ure realnega časa omogoča uporabo polnilnih baterij za Raspberry Pi 5. Če vseeno želimo uporabiti navadno baterijo, jo lahko, tako kot pri Raspberry 5, vežemo prek usmerniške diode (npr. 1N4001).
Razvojno ploščico, ki na Amazon.de stane okoli 35 evrov, lahko napajamo z enakim napajalnikom kot Raspberry Pi 4 ali 5 prek priključka USB-C. Zaradi majhne porabe energije je 3-amperski napajalnik za Raspberry Pi 4 povsem dovolj, razen če priključimo USB naprave z visoko porabo. ESP32-P4 ima dva USB-C priključka, prek katerih ga lahko napajamo. Prvi je povezan z vgrajenim zaporednim vmesnikom, prek katerega lahko ESP32-P4 napajamo, programiramo in razhroščujemo. Drug priključek prav tako omogoča napajanje in programiranje. Ker je neposredno povezan s ESP32-P4 čipom, nimamo možnosti razhroščevanja.
Zgradba
Od zunanjih priključkov so najbolj impresivni štirje priključki USB 2.0, ki so razporejeni v skupini po dva, prav tako kot pri Raspberry Pi 5. Natančnejši pregled električnega načrta razvojne plošče, ki je za razliko od Rasbperry Pi 5 javno objavljen na spletni strani Waveshare.com, razkrije vgrajeni USB 2.0 spojnik (CH334F) in USB 2.0 preklopnik (FSUSB42UMX). Slednji omogoča izbiro načina delovanja USB priključkov. V običajnem načinu je USB 2.0 spojnik vezan na običajni gostiteljski USB 2.0 izhod ESP32-P4NRW32 čipa, v načinu delovanja kot naprava pa je aktiven le četrti priključek, ki je povezan neposredno s priključkom ESP32-P4NRW32 čipa – torej mimo spojnika. Tako lahko razvojno ploščo povežemo na primer s PC kot napravo.
Za povezovanje prikazovalnika je namesto HDMI izhodov na voljo le izhodni 2-kanalni MIPI (DSI) priključek, ki je tak kot na Raspberry Pi 4, medtem ko ima Raspberry Pi 5 drugačna 4-kanalna priključka, od katerih lahko vsak deluje kot izhod za digitalni prikazovalnik, ali vhod za digitalno kamero. Drugi 2-kanalnik MIPI priključek je vhodni (CSI) in omogoča enak priklop digitalne kamere kot za Raspberry Pi 4.
Med priključki za krmiljenje industrijskih vezij sta pomembna še I2C port in I3C port, ki sta med priključkom USB-C in enim od priključkov MIPI. Vsak izmed njiju ima 4-polni konektor, ki je videti kot tisti, ki ga Raspberry Pi 5 uporablja za pogon ventilatorja.
Na mestu, kjer ima Raspberry Pi 5 16-polni priključek za vodilo PCIe x1 sta še 4-polni priključek in 2-polni priključek. Prvi je namenjen predvsem programiranju ESP32-C6 modula, saj omogoča serijsko povezavo z njim, drugi pa je le 5-voltni napajalni priključek.
Pri Waveshare so se res potrudili, da bi bila vsaj vizualna podobnost z Raspberry Pi 5 kar se da velika, zato so vtičnico za SD kartice namestili na isto mesto. Prav tako so LED za prikaz prisotnost napajalne napetosti namestiti na isti mesto, kot pri Raspberry Pi 5, le da ima Raspberry Pi 5 še dodatno LED, ki prikazuje morebitno kodo napake ob neuspelem zagonu, v operacijskem sistemu pa hitrost prenosa podatkov.
Vseeno od ESP32-P4 Modula ne smemo pričakovati preveč, saj na primer nima PCIe vodila in HDMI priključkov. Zato nanje ne moremo povezati najzmogljivejših klobukov in razširitvenih plošč za Raspberry Pi 5.
Procesorska jedra in pomnilniki
ESP32-P4 Modul pod velikim kovinskim pokrovčkom na miniaturni ploščici tiskanega vezja, ki je s spodnje strani prispajkana na razvojno ploščo s krogličnimi kontakti, skriva kar dva sistema v enem čipu (SoC): Zmogljivejši ESP32-P4NRW32 poganjata dve glavni 64-bitni procesorski jedri RISC-V s taktom do 400 MHz, ki so med izdelovalci procesorskih čipov in SoC priljubljeni zaradi visoke zmogljivosti in zaradi brezplačnega dizajna, ki ga lahko po svojih željah dopolnijo. ESP32-P4NRW32 čip ima še manj zmogljivo RISC-V procesorsko jedro s taktom do 40 MHz, ki lahko zagotavlja minimalno funkcionalnost SoC v varčnem načinu delovanja, v katerem lahko daljši čas deluje tudi na baterijsko napajanje.
ESP32-P4NRW32 čip ima 768 kB RAM za visoko zmogljiv RAM in 32 kB RAM z nizko porabo, od katerih sta oba dostopna tako visokozmogljivima jedroma, kot tudi nizko zmogljivemu jedru. Enako velja tudi za ROM z vnaprej vgrajenimi programčki za zagotavljanje osnovnega delovanja SoC, kot je možnost samodejnega zaganjanja uporabniške programske kode iz zunanjih pomnilnikov, ki so z SoC povezani prek enote za upravljanje pomnilnika (MMU). Dodatnih 8 kB RAM je dostopnih samo visoko zmogljivima jedroma. ROM (bralni pomnilnik) je razdeljen na 128 kB za podporo delovanju visoko zmogljivih jeder in 16 kB za podporo delovanju nizko zmogljivega jedra.
Visoko hitrost delovanja omogočajo tudi sorazmerno veliki predpomnilniki visoko zmogljivih jeder: 96 kB prvo-nivojskega predpomnilnika, od tega 16 kB za ukaze in 64 kB za podatke. Večji drugo-nivojski predpomnilnik ima 128 kB za ukaze in 256 kB za podatke. Če primerjamo razmerja velikost med glavnim pomnilnikom in predpomnilniki, ugotovimo, da je glavni pomnilnik skoraj nesorazmerno majhen. Vendar je to smiselno, ker lahko z ESP32-P4NRW32 prek vgrajene MMU in povezave 1-, 2-, 4- ali 8-bitne SPI ali QPI povezave povežemo tudi zunanji EEPROM pomnilnik in/ali zunanji RAM s skupno kapaciteto do 64 MB. Branje podatkov pri tem poteka v 8-, 16-, 32- ali 128-bitnih besedah, odvisno od implementacije. ESP32-P4 Modul ima vgrajenega 32 MB PSRAM (RAM z zaporednim dostopom), medtem ko za trajno shranjevanje programov in podatkov uporablja SD kartico.
Zajemanje in predvajanje zvoka
ESP32-P4 modul ima grajen tudi enokanalni avdio kodek, ki omogoča zajemanje in predvajanje enokanalnega (mono) zvoka, kar je še posebej zanimivo pri gradnji pametni komunikacijskih panelov z glasovnim upravljanjem, za katere potrebujemo le še ustrezen prikazovalnik. Za predvajanje zvoka moramo lahko prek posebnega konektorja za priključku USB povežemo 8-ohmski 2-vatni zvočnik, medtem ko je mikrofon že serijsko vgrajen nad konektorjem za zvočnik.
Komunikacije
Zanimivo pa je, da ESP32-P4NRW32 čip nima vgrajenega Wi-Fi/Bluetooth vmesnika, kot smo ga vajeni pri ESP32-S(2) modulih. Namesto tega je v ESP32-P4 Modul grajen še ESP32-C6 SoC, ki temelji na dveh 32-bitnih RISC-V jedrih, katerega osnovni namen je zagotavljanje hitrih brezžičnih komunikacij. Eno od jeder je visoko zmogljivo z delovno frekvenco do 160 MHz, medtem ko je drugo, z delovno frekvenco do 20 MHz, namenjeno predvsem delovanju v načinih z nizko porabo energije.
Po drugi strani je v ESP32-P4NRW32 čip vgrajen Ethernet krmilnik, ki je povezan z vmesniškim čipom, slednji pa na 100-megabitno Ethernet vtičnico (RJ45). Najvišja hitrost prenosa podatkov je tako sicer desetkrat nižja kot pri Raspberry Pi 5, a je vseeno glede na zmogljivost ESP32-P4NRW32 čipa povsem dovolj.
Programiranje
Pri programiranju ESP32-C6 modula si lahko pomagamo s tipko, ki je ob 4-polni vtičnici, s katero izberemo način zagona za programiranje. Ker zanj nimamo na volji USB-serijskega vmesnika, kot za ESP32-P4NRW32 čip, moramo uporabiti zunanjega s TTL nivoji. Uporabimo lahko takega, ki ga uporabljamo tudi za programiranje ostalih ESP32 modulov, denimo ESP32-CAM modula.
Pri tem si lahko pomagamo tudi s tipko reset, s katero ponovno zaženemo tako ESP32-C6 kot ESP32-P4NRW32 čip.
Glede programske opreme za programiranje povejmo, da razvojno okolje za ESP32-P4 Modul poganjamo v klasičnem PC iz Microsoft Visual Studia Community z dodatki za programiranje ESP32 modulov. Programiramo ga lahko tudi iz Arduino okolja in okolja IDF, na katerega se navezuje tudi podpora v Visual Studiu Community.
Različice razvojnih kompletov
Najenostavnejši in najcenejši razvojni komplet (na Amazon.de stane okoli 30 evrov) vsebuje zgolj ESP32-P4 Modul razvojno ploščico, ostale dodatka pa si moramo zagotoviti sami. V nekoliko dražji komplet za okoli 45 evrov so priloženi še digitalna kamera s kablom in 2-vatni zvočnik, medtem ko najdražja kompleta vsebujeta še 7-inčni oziroma 10-inčni prikazovalnik z zaslonom na dotik.
Kako deluje?
Pri Waveshare se radi pohvalijo z vzorčnimi slikami nadzornih panelov, denimo za motorno vozilo, ki jih lahko izdelamo a pomočjo ESP32-P4 Modula in prikazovalnika z zaslonom na dotik. Čeprav ne moremo govoriti o več kot enostavni barvni 2D grafiki, je prikaz več kot zadovoljiv za industrijske projekta.
Ob izpadu napajanja iz omrežja lahko procesorska jedra z nizko porabo vzdržujejo vitalne funkcije s pomočjo baterijskega napajanja tudi daljše časovno obdobje.
Zato lahko trdimo, da ima razvojna plošča za enostavnejše in energetsko varčne industrijske projekte (skoraj) vse, kar imajo veliki in še več (npr. Raspberry Pi 5 je energetsko le nekoliko manj požrešen od ultra tankih prenosnikov), kljub temu pa je cenejša in enostavna za programiranje….