LAKI PINGVINI<>
052019<><>

Arduino Due

Broj dva

Kada smo razmišljali da nastavimo seriju tekstova o Arduino pločama zasnovanim na 32-bitnim ARM mikrokontrolerima, dvoumili smo se da li da počnemo da brojimo od nule ili od trojke. Odlučili smo se da počnemo od trojke, iako svi znamo odakle brojevi kreću. Zašto od trojke? Prvu Arduino ploču zasnovanu na nekom ARM mikrokontroleru pokreće Atmelov SAM3. Tačnije, SAM3X8E Cortex-M3 CPU. Arduino ju je nazvao Due, kao logičan iskorak nakon vanvremenskog Una. Tre se za sada ne nagoveštava, iako je to možda bilo očekivano sa MKR serijom (SK 9/2018). Za Tre ćemo izgleda morati još da čekamo.

Due je jedna od retkih „velikih” ploča koja radi na 3,3 volta i njeni pinovi nisu tolerantni na napone od pet volti. Ovo je svakako jedan od razlog zašto Due nije zaživeo u nekoj većoj meri. Due deli identičan footprint sa Megom, što će reći da je oblik isti, kao i pinout ženskih hedera, uz par izuzetaka. Za napajanje tu je standardni DC priključak preko koga se ploča može napajati naponima od šest do 16 volti. Ipak, preporučeno je koristiti napone između sedam i 12 volti radi zaštite komponenti i stabilnosti same ploče. Standardno, ploča se može napajati regulisanim naponom na VIN pin istim preporučenim naponima kao za DC priključak. Mikro USB portovi se takođe mogu koristiti uz pet volti. Due se u krajnjoj liniji može napajati i odgovarajućim naponima preko 5V i 3V3 pinova, ali ovaj metod nije preporučljiv jer se na taj način zaobilaze naponski regulatori. Ovde dolazimo do još jedne prednosti kod Due. Naime, Due ne koristi linearni naponski regulator, već switching regulator. Prednosti su u vezi emitovanja toplote i efikasnosti, ali i razlog zašto se ne preporučuje napajanje regulisanim naponima preko 5V i 3V3 pinova.

Prvo što upada u oči je da Due ima čak dva mikro USB porta, od kojih je jedan nativan, a drugi programabilni. Skeč se na Due može prebaciti preko bilo kog od njih, ali se preporučuje ProgrammingPort. Razlog tome je što se ARM mikrokontroleri drugačije programiraju od AVR. Da bi se skeč prebacio na SAM3X8E, potrebna da je prazna fleš memorija. Prebacivanjem skeča preko bilo kog od portova fleš memorija će se obrisati, s tom razlikom da će se kod nativnog koristiti soft reset metoda, dok će se kod programabilnog koristiti hard reset. Prebacivanjem skeča preko programabilnog porta je moguće čak i kada mikrokontroler „krešuje”, što se može vrlo lako desiti prilikom prebacivanja skeča putem nativnog porta. Razloge ovih procedura nalazimo u tome što je nativni port direktno vezan sa Atmelovim čipom i brisanje fleš memorije se radi softverski. Sa druge strane programabilni port se sa mikrokontrolerom vezuje preko poznatog 16u2 UART čipa i to preko serijskog RX0 i TX0. Za razliku od AVR ploča koje za upload koriste avrdude, Due koristi bassac. Nativni port je zamišljen da se na njega priključuju periferni USB uređaji poput tastature kao host, a može se preko njega povezati na računar kao klijent. Takođe, može se koristiti i kao virtuelni port.

Centralno mesto na ploči zauzima Atmelov SAM3X8E mikrokontroler i rekli smo da je u pitanju 32-bitni ARM Cortex-M3. MCU radi na 84 megaherca i osetno je veći od 2560 koji je na Megi. Due dolazi sa 512 kilobajta fleš memorije uz 96 kilobajta SRAM, što je dosta više nego na Megi. Due donekle prati pinout Mege, kao i heder sekcije. Sa leve strane imamo standardnu Power sekciju sa sve 5V pina, koji se mora obazrivo koristiti, jer, rekli smo da Due ne reaguje baš najbolje na taj napon. Ispod je Analog sekcija gde imamo 12 analognih ulaza. Svi oni imaju 12-bitnu rezoluciju, ali je predefinisana 10-bitna, što se može promeniti u okviru skeča. Dvanaestobitna rezolucija nudi teoretskih 1000 kS/s (kilosemplova u sekundi), što je velika razlika u odnosu na 10-bitnu na Unu, koja nudi do 15 kS/s. U nastavku analognih pinova imamo dva DAC-a (digital-to-analog converter) gde govorimo o pravim analognim izlazima koji se mogu, na primer, koristiti za audio-izlaz, uz odgovarajuću biblioteku. Napomenućemo da DAC izlazi koriste naponski opseg od 0,55 – 2,75 volti. Pri dnu ove sekcije imamo CAN izvode (CANRX i CANTX) koji bi trebalo da se koriste za CAN komunikacijski protokol (controller area network), ali ova funkcija još uvek nije podržana od strane Arduino API-ja. Due ima 54 digitalna GPIO pina i svi se mogu opteretiti strujom od tri do 15 miliampera u zavisnosti od pina. Takođe, mogu da prime (sink) od šest do devet miliampera. Od ovih 54, njih 12 imaju mogućnost PWM u 8-bitnoj rezoluciji. Due ima čak četiri serijska interfejsa u Comunication sekciji i dva I2C. SPI interfejs je takođe tu, a SPI heder se nalazi na standardnom mestu i moći će se koristiti mnogi šildovi koje inače koristimo na Unu ili Megi. SPI heder ima i posebnu Extended SPI metodu koja se ogleda u automatskom izboru CS između više uređaja. Due ima još muških pinova po sebi, a jedan od njih je i ICSP. S obzirom na to da govorimo o ARM MCU, imamo i 10-pinski JTAG heder, a do njega i 4-pinski Debug SWD heder. Kod Mege je malo nesrećno postavljen ’reset’ taster kog su mnogi šildovi zaklanjali, dok ovde to nije slučaj. Na Due je ’reset’ taster na istom mestu kao i na Unu. Novina je ’Erase’ taster preko koga se može izbrisati sadržaj fleš memorije, to jest skeč. Ovaj taster se koristi za manuelnu proceduru prebacivanja skeča. Standardnih četiri LED su tu: ON, L, RX i TX.

Arduino IDE prilikom odabira ploče nudi dve opcije za upload skeča na Due u zavisnosti koji ćemo port koristiti. Ukoliko u okviru IDE nemate SAM ploče, potrebno je ploče (boards) nadograditi preko Boards Manangera. Ono što je nas najviše zanimalo je razlika u brzini između ARM-a na Due i AVR na Megi. Iskoristili smo isti skeč za računanje broja Pi o kome smo govorili kad smo pisali o Masssduinu (SK 12/2018). Vreme koje je bilo potrebno Megi da se izbori sa malo matematike je 5765 milisekundi. Due, osim što se brže butovao, Pi je izračunao za nestvarnih 685 milisekundi. Da bismo dobili malo jasniju sliku, propitali smo malo ESP32 dev kit kakav je sa matematikom. ESP32 je sa svojim taktom od 160 megaherca i većom količinom memorije obesmislio ovaj test jer ga je završio za 34 milisekunde. Već opisivana MKR1000 ploča je na ovom testu zauzela treće mesto sa 1957 milisekundi.

Due je svakako ozbiljna ploča sa prilično juicea, koja se, nažalost, slabo koristi. Na mreži ćete sresti vrlo malo primera zasnovanih na Due, iako je u stanju da se izbori sa velikom količinom podataka dobijenih od senzora u veoma kratkom roku. Takođe, možemo reći da je Due jeftina ulaznica u svet ARM mikrokontrolera. U Due imamo nativni USB port, nativna čak dva DAC-a, CAN, 12-bitne ADC rezolucije, veliki broj GPIO i uz se to brz MCU.

Da ne bude da samo hvalimo, Due ima i nekoliko mana. Netolerantnost pinova na napone od pet volti se još može i tolerisati, ali alavost u potrošnji baš i ne. Due je veliki potrošač struje u svetu mikrokontrolera. Samo za vreme pismenog iz matematike je trošio i do 120 miliampera. Ovo jasno stavlja do znanja da se za projekte koji traže veliku autonomiju Due obiđe u širem luku. Za projekte gde se traži sirova snaga i brzina, Due može da bude izbor broj jedan.

Dejan PETROVIĆ

SBCMCUArhitekt.KlokSRAMPi test
UnoATmega328p8 bita16 MHz2 KB7221
MegaATmega25608 bita16 MHz8 KB5765
MKR1000SAMD2132 bita48 MHz32 KB1957
DueSAM3X8E32 bita84 MHz96 KB685
ESP32 dev kitESP3232 bita160 MHz8 MB34 ms
 
Buddi 3.4.1.16
Synchronicity
Arduino Due
Šta mislite o ovom tekstu?
Nuts and Bolts (1): IC PCF8574/PCF8574A
Senzori za pokret
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera