SAMSUNG_042024 Advertisement SAMSUNG_042024 Advertisement SAMSUNG_042024 Advertisement

Arduino Giga R1 WiFi / Výkonná vývojová doska s bohatou konektivitou

0

Pod názvom Arduino si väčšina hobby konštruktérov a programátorov predstaví mikrokontrolérovú dosku s osembitovým čipom ATmega 328, ktorý je taktovaný na 16 MHz, má 32 kilobajtov pamäte flash na program a 2 kilobajty RAM. Na väčšinu jednoduchých aplikácií pre robotiku, ovládanie elektroniky a zber údajov to stačí, no napríklad interpreter Pythonu do tejto dosky nemožno implementovať. Klasické Arduino má takisto obmedzený počet vstupov, výstupov a len základné komunikačné rozhrania. Pripojenie k Wi-Fi je možné len pomocou rozširujúcich modulov. Tomu zodpovedajú aj jednoduché scenáre vy­užitia. Arduina s prívlastkom Mega a čipom ATmega 2560 majú podstatne viac I/O ­portov, ale taktovacia frekvencia je takisto 16 MHz a kapacita flash sa zvýšila len na 256 kb a RAM na 8 kb.

Nové Arduino Giga R1 WiFi je rozmerovo kompatibilné s Arduinom Mega alebo Due, ale má výkonný dvojjadrový 32-bitový SoC (System on Chip) STM32H747XI, ktorý má jedno výkonné jadro Cortex M7 s maximálnou taktovacou frekvenciou 480 MHz a jedno úsporné jadro Cortex M4 s maximálnou frekvenciou 240 MHz. Na čipe sú 2 MB pamäte flash a 1 MB RAM. Na doske je ešte ďalších 16 MB QSPI flash pamäte a 8 MB SDRAM, takže spolu máte k dispozícii 9 MB RAM a 18 MB úložného priestoru. Pre Wi-Fi a bluetooth LE sa využíva čip Murata 1DX. Konštruktéri pamätali aj na zabezpečenie komunikácie. Na doske je čip ATECC608A na šifrovanie údajov.


V balení je aj anténa pre Wi-Fi a bluetooth

Arduino Giga R1 WiFi poznáte nielen podľa čipov, ale aj podľa toho, že pod doskou plošného spoja je ešte priehľadná ochranná plexisklová doska. K dispozícii máte 76 I/O pinov, z toho 12 pinov podporuje PWM čiže impulzovú šírkovú moduláciu. Môžete využiť 12 analógových vstupov a dva analógové výstupy. K dispozícii sú tieto komunikačné rozhrania: 4× UART, 3× I2C, 2× SPI, pre zbernicu CAN využívanú v autách potrebujete externý vysielač. Pribudli aj piny VRTC na pripojenie batérie napájajúcej hodiny reálneho času, ktoré budú bežať aj v prípade, keď je doska v hlbokej hibernácii s minimálnym odberom. Prerušením od RTC sa doska môže zobudiť, vykonať požadované operácie a znovu hibernovať. Napríklad z každej sekundy môže doska 20 milisekúnd pracovať a 980 milisekúnd byt v hibernácii s minimálnym odberom. To sa hodí pri batériovom napájaní. Je tu aj pin pre signál OFF na vypnutie dosky, keď bude na tomto pine úroveň GND. Ak chcete využiť shieldy čiže rozširovacie moduly pre klasické Arduino, Mega či Due, treba mať na pamäti, že tieto dosky využívajú napájacie napätie pre čipy 5 V, zatiaľ čo čipy Arduino Giga R1 WiFi sú napájané napätím 3,3 V.

Konektory na pripojenie kamery a displeja sú prístupné z oboch strán dosky, takže ich môžete využiť aj v prípade, ak máte na doske nasunuté rozširovacie moduly. Jednoducho zasuniete modul zospodu. Vľavo je konektor pre kamery kompatibilné s rozhraním ArduCam. Konektor DSI vpravo je určený pre zobrazovacie jednotky. K dispozícii sú rozhrania pre LCD TFT dotykové displeje s maximálnym rozlíšením 1024 × 768, MIPI DSI rozhranie. Na SoC je aj grafický akcelerátor Chrom-ART, aby CPU nemusel riešiť zobrazovanie. Piny D1N a D1P sa môžu využiť ako DisplayPort.

Popis pinov konektorov

Dosku môžete napájať zo zdroja s napätím 6 – 24 V. Je na nej aj konektor USB-A s rozhraním USB 2.0, napríklad na pripojenie klávesnice, myši či USB kľúča s multimediálnym obsahom, a 3,5 mm audio jack, ktorého vstupný pin je pripojený na analógový vstup a výstupný na D/A prevodník. Výstupy 12-bitových prevodníkov DAC0 a DAC1 sú vyvedené aj na konektor. Rozsah výstupných hodnôt je 0 – 1023.

Na vývoj a ladenie programov môžete využiť Arduino IDE 2.0, pričom Giga je k vývojárskemu počítaču pripojené cez USB-C. Na priame zavádzanie programu do mikrokontroléra je k dispozícii konektor JTAG. Túto možnosť však využijú len pokročilí používatelia. V Arduino IDE treba nainštalovať knižnicu Arduino Mbed OS Giga Boards. V menu Nástroje môžete vybrať jadro procesora a pomocou voľby Tools > Flash Split definovať konfiguráciu pamäte, teda jej rozdelenie medzi dve jadrá, jedno výkonnejšie M7 a druhé úspornejšie M4. Implicitné rozdelenie je 2 MB pre M7 + M4 v SDRAM. Na každom jadre môže paralelne bežať iný program či firmvér.

Ako prvý odporúčame vyskúšať vzorový program MultipleBlinks. Ak sa program skontroluje, zavedie do mikrokontroléra, spustí sa a RGB LED bude blikať, znamená to, že všetko máte správne prepojené a nakonfigurované. Vo väčšine aplikačných scenárov sa bude jadro M7 využívať ako hlavný procesor a M4 ako koprocesor na pomocné úlohy, pretože pri spustení sa program do jadra M7 zavádza z jadra M7. Na jednom jadre môže napríklad bežať interpreter populárneho programovacieho jazyka Micro Python a druhé jadro môžete naprogramovať cez Arduino IDE. Jadrá môžu medzi sebou komunikovať. Prípadne jedno jadro môže obsluhovať hardvér a druhé riešiť spracovanie údajov či komunikáciu. Z hľadiska udržiavania programu je výhodné využívať v obidvoch jadrách rovnaký kód. Program sa potom vetví podľa toho, v ktorom jadre beží.

String currentCPU() {

 if (HAL_GetCurrentCPUID() == CM7_CPUID) {

  return "M7";

 } else {

  return "M4";

 }

}

...

 if (currentCPU() == "M4") {

  //run M4 code

 }

 

 if (currentCPU() == "M7") {

  //run M7 code

 }

Nevýhodou je plytvanie pamäťou, pretože v jadre M7 sa nebude vykonávať kód pre M4 a naopak. Ak vytvoríte samostatný kód pre každé jadro, môže byť pre toto jadro optimalizovaný. Pri takejto konfigurácii sa mi niekoľkokrát stalo, že som kódy pre jadrá vymenil, takže nič nefungovalo. Pomohlo pridať do názvov súborov s kódom textový reťazec „_M7“ a „_M4“.

Pri vzájomnej komunikácii medzi jadrami sa využíva filozofia server/klient.

Server (typicky M7)

int addFunction(int a, int b){

 return a + b;

}

 

RPC.bind("addFunction", addFunction);

 

klient (typicky M4)

int x,y = 10;

 

RPC.call("addFunction", x, y);

V tomto prípade serverové jadro M7 vypočíta pre klientske jadro M4 hodnotu 20.

Interpreter Micro Pythonu stiahnete zo stránky https://docs.arduino.cc/tutorials/giga-r1-wifi/giga-micropython ako súbor s príponou dfu. Treba dať pozor na to, že Micro Python je implementovaný pre mikrokontrolér, a nie pre konkrétnu dosku. V programoch sa využíva označenie pinov mikrokontroléra STM32H7, a nie označenie na konektoroch dosky Arduino. Napríklad pin označený na doske ako D0 je pripojený na pin mikrokontroléra označený PB7, pin D0 na PA9... Nie je v tom žiadny systém, takže potrebujete prevodnú tabuľku. Na upgrade firmvéru sa používa program dfu-util zo stránky https://dfu-util.sourceforge.net/ Programy sa vyvíjajú vo vhodnom editore podporujúcom Micro Python, napríklad Arduino Lab for MicroPython (labs.arduino.cc/en/labs/micropython) alebo Thonny (thonny.org).

Rovnakú čipovú súpravu ako Giga R1 WiFi, teda STM32H7 využíva aj vývojová doska Arduino Portenta H7. Táto doska umožňuje využiť port USB-C aj na pripojenie monitora prostredníctvom technológie DisplayPort. Giga R1 tento port využíva len na napájanie a programovanie dosky, prípadne na simulovanie HID zariadení typu myš alebo klávesnica. Výhodou dosky Giga R1 sú štandardné konektory s rozstupom pinov 2,54 mm, takže táto doska je výhodnejšia na experimentovanie a prototypovanie. Na ilustráciu, mikrokontrolér STM32H7 má rozmery 28 × 28 mm a spolu 208 vývodov, na každej strane po 52. Prispájkovať takýto čip na dosku plošného spoja si vyžaduje veľké skúsenosti a adekvátne technické vybavenie. Naproti tomu do konektora s rozstupom pinov 2,54 mm môžete priamo zasúvať vodiče.

Technické parametre:

32-bitový mikrokontrolér STM32H747XI dual Cortex-M7+M4; pamäť: 16 MB flash, 9 MB RAM; 76 I/O pinov, z toho 12 PWM, 12 analógových vstupov, 2× 12-bit. DAC analógové výstupy; komunikačné rozhrania: 4× UART, 3× I2C, 2× SPI, CAN, konektory na pripojenie kamery a displeja; rozmery: 101 × 53 mm

Cena: 87 EUR

Zobrazit Galériu

Ľuboslav Lacko

Všetky autorove články

Pridať komentár

Mohlo by vás zaujímať

Mohlo by vás zaujímať