LAKI PINGVINI
Olimex Pinguino i Pinguino Micro
Pingvini van Antarktika
D. PETROVIĆ
1. decembar 2021.

Iz Olimexa smo dobili par razvojnih ploča sa kakvima se ni u kakvom obliku ranije nismo družili. Nećemo reći da se dijametralno razlikuju od onih koje smo vam već predstavljali na ovim stranicama, ali razlike svakako nisu male. Pinguino su razvojne ploče koje se zasnivaju na Microchipovim PIC32 mikrokontrolerima. I, da, mogu se programirati koristeći Arduino razvojno okruženje.

Pinguino je porodica razvojnih ploča koje je razvio Olimex, firma iz susedne nam Bugarske. U prošlom broju ste imali prilike da pročitate o njihovom ESP32-EVB. Olimex u ponudi ima nekoliko različitih modela Pingvina, gde jedne možemo svrstati u Arduino Uno format, dok su druge format za sebe. Mi smo dobili PIC32 Pinguino i PIC32 Pinguino Micro, dve ploče sa dosta sličnosti, ali i različitosti.

PIC32 Pinguino je razvojna ploča koja prati format Una. Na prvi pogled, sve je tu: strujni priključak, pinout na identičnim headerima, pozicija SMD mikrokontrolera. Međutim, kada sa prvog pogleda pređemo na drugi, možemo videti da ovaj „Uno” nije baš Uno. Na crvenoj štampanoj ploči koja je zaštitni znak Olimexa ima primetno više komponenata i to onih koje na Unu nisu poznate.

Mikrokontroler na njoj je PIC32MX440F256H sa radnim taktom od 80 megaherca. Na raspolaganju mu je 256 kilobajta fleš memorije i 32 kilobajta RAM-a. PIC označava Peripheral Interface Controller, dok 32 govori da je u pitanju 32-bitni mikrokontroler MIPS arhitekture. Oznaka, dalje, jasno govori o kapacitetu fleš memorije, dok se ostale oznake prema tehničkoj dokumentaciji odnose na pakovanje, broj interfejsa i slično. Model na ovom Pingvinu nam na raspolaganje stavlja dva I2C interfejsa, dva UART i jedan SPI interfejs (iako Olimex tvrdi da ima dva SPI, dokumentacija kaže drugačije). Mikrokontroler raspolaže sa čak 51 IO pinom. Od njih, na pet može da se koristi PWM, dok je njih 16 vezano na 10-bitni ADC. Razumljivo, format Una taj broj GPIO ne dozvoljava i na Pingvinu nam je dostupan isti broj kao i na Unu, uz različite funkcije samih GPIO. Iako PIC32 radi na naponima do 3,6 volti, neki od pinova su tolerantni na pet volti. Nisu obeleženi, te je potrebno prelistati tehničku dokumentaciju.

Header je, rekosmo, nalik Unu, sa par izuzetaka. Digitalni niz GPIO sadrži 14 pinova i završava se sa GND i AREF. Na kraju njih nema dodatnih I2C linija. Sa suprotne strane je šest analognih pinova, kao i standardni naponski header. Međutim, iza „Reset” pina se nadovezuju još dva analogna pina, gde obično ide IOREF i NC. Neke od varijanti Una koje imaju dodatne A6 i A7, ove pinove imaju u malom headeru pored A5. Ovde ih vidimo na sasvim drugačijem mestu. Svi pinovi su jasno obeleženi, a zanimljivo je i to da je Olimex ostavio dodatne redove PTH uz headere, ako se koriste muški headeri ili žice. UEXT header je, naravno, tu, uz ivicu, a o ovom standardu je bilo reči u prošlom broju. Do njega je šestopinski JST konektor sa razmakom pinova 1,27 milimetara. Ovaj ICSP nema istu ulogu kao na AVR mikrokontrolerima o kojima smo često pisali, ali o tome ćemo u nastavku.

Za komunikaciju sa računarom koristi se mini-USB, kao na Nano. Ovaj PIC32 ne zahteva dodatni UART čip, komunikacija je direktna. Naime, PIC32MX440F256H ima FS Device, Host i OtG interfejse. Olimex je ovde napravio jedan manji rez, te ID pin mini-USB konektora nije vezan za RF3 pin mikrokontrolera, stoga je OtG funkcija nedostupna. Ovo je rezervisano za PIC32 Pinguino OtG ploču. Do mini-USB je nepopunjeno mesto CON3 20-pinskog konektora. Ovde su dovedeni svi preostali GPIO, kao i sedam naponskih linija od kojih neke čine analogni referentni krug. Dok smo kod napajanja, Pingvina možemo napajati preko USB kabla, naponskog konektora i konektora LiPo baterije. Preko strujnog konektora (ili VIN pina) ploču možemo napajati naponima do čak 30 volti. Za toleranciju na ovako visoke napone zadužen je MC33063ADR regulator. Za punjenje baterije zadužen je MCP73812T, a tu je i prateća LED. Pored ove, ploča ima još dve LED, obe uz mini-USB konektor. Zelena i žuta LED imaju oznake LED1 i LED2 i imaju donekle drugačiju ulogu u odnosu na, recimo, Uno. Posebno zbunjujući može biti raspored dva tastera. ’RST’ taster se nalazi na suprotnoj strani, do dodatnih analognih pinova, dok na mestu gde bi trebalo da se nalazi ’RST’ stoji ’BUT’ taster. Tasteri su bočni i imaju ulogu da Pingvina prebace u BOOT režim, nalik na sekvencu prebacivanja ESP porodice mikrokontrolera. Vredno pomena je još nekoliko PCB select džampera kojima LED možemo isključiti, ali i izabrati CS pin za UEXT header.

PIC32 Pinguino Micro je u mnogome srezana varijanta osnovne ploče iznad, ali ponegde je prednost na njegovoj strani. Mikro Pingvin ima format sa kakvim se nismo susretali do sada. Ploča je dimenzija 33,4×54 milimetra i nije podesna za prototipsku ploču. Sa strana su jednoredi headeri, sa jedva vidljivim oznakama u vidu rednih brojeva. Sa donje strane su ovi headeri obeleženi sa CON1 i CON2 i jedino što nam može reći šta se krije iza određenog pina su tabele tehničke dokumentacije. Pa je, tako, pin 11 u CON1, zapravo, pin RF1 u označavanju prema portovima ili pin 21 kako bismo ga adresirali u Arduino IDE. U folderu Variants instalacije samog IDE su fajlovi gde možemo videti kako je koji pin mapiran. Ovo je važno čak i za običan Blink skeč, iako se zelena LED u okviru podrške za IDE tretira kao Built-In. Oranž se, recimo, krije iza pina 6 na CON2 headeru, što je RD1, dok ćemo mu se obratiti u Arduino IDE kao pin 26. Jako zbunjujuće, ali sve, ipak, radi.

Osim ovih bočnih headera, tu je i UEXT, te ICSP odmah do njega. Svi izvodi portova manjeg Pingvina konstruisani su na taj način. Interfejsi poput I2C i SPI nisu izvedeni na headere, već samo na UEXT. U odnosu na većeg Pingvina, tu su dve LED koje smo pomenuli, kao i dva tastera sa istom ulogom. Za komunikaciju sa računarom je zadržan mini-USB priključak, ali ovog puta sa povezanom ID linijom sa RF3, što znači sa omogućenom OtG funkcijom. Ovaj priključak je pomeren u stranu da bi napravio mesta za slot mikro SD kartice. Select džamperi su svi na broju, sa istom ulogom. Mikro Pingvin nema DC priključak, kao ni mogućnost napajanja baterijom. Takođe, ovde je LM1117IMPX naponski regulator koji preko 5V_EXT pina ne dozvoljava napone više od 15 volti. Na kraju, srce ploče čini isti PIC32MX440F256H.

PIC32 Pinguino je predviđen da „pliva” u Pinguino IDE okruženju. Do zaključenja ovog broja nismo uspeli da ga instaliramo i pokrenemo, ni na Windows, ni na Linux platformi. Pinguino IDE je inspirisan Arduino IDE okruženjem i trenutno je „under construction”. Sledeći „pik” je MPIDE, razvojno okruženje koje je deo projekta chipKIT. U međuvremenu je chipKIT napustio MPIDE, te išao linijom manjeg otpora. Drugim rečima, omogućio preko JSON paketa integraciju chipKIT kompatibilnih ploča u Arduino IDE. Ovde je dodata podrška i za neke ploče iz MikroElektronikine kuhinje, što nam je podiglo obrvu. Dakle, na kraju svi putevi vode ka Arduino IDE, pa čak i Pingvine.

Dodavanje podrške za chipKIT ploče obavlja se kao i za sve druge. Ovoga puta u URL polje dodajemo github.com/chipKIT32/chipKIT-core/raw/master/package_chipkit_index.json, a nakon toga ploče instaliramo. Postoji i Olimexova zvanična podrška preko raw.githubusercontent.com/OLIMEX/Arduino_configurations/master/PIC/package_olimex_pic_index.json. Instalirali smo oba paketa, jer donose podršku za različite komplete razvojnih ploča. Treba znati da Olimex paket zavisi od chipKIT. Prvi može sam, ali drugi ne može bez prvog. Da bi Pingvina uopšte programirali kroz Arduino IDE, potrebno je Pinguino bootloader zameniti Arduino bootloaderom. Na zvaničnim Olimex GitHub stranicama se nalazi detaljno uputstvo, kao i HEX bootloaderi ploča. Ostaje još programator.

Za programiranje bootloadera koristili smo PicKit3. Programator koristimo uz MPLAB IPE (integrated programming environment), alat koji nam u par koraka dovodi Pingvina u Arduino IDE. U okviru IPE potrebno je odabrati programator i na njemu nadograditi softver. Nakon toga biramo mikrokontroler. Kada je sve ispravno odabrano i Pingvin preko PicKit3 povezan sa računarom, trebalo bi da sa Connect dobijemo ispravne podatke o Target MCU. Podrazumeva se da Pingvina nezavisno napajamo. Ako je sve u redu, programiranje HEX odgovarajućeg bootloadera odvija se za par sekundi. Najveći problem je prelazak sa 2,54 razmaka headera na programatoru, na 1,27 na ICSP header Pingvina. Neverovatno, ali nigde kod nas nismo mogli da nađemo odgovarajući adapter, u bilo kom formatu, pa smo posegli za hirurškim zahvatom na žicama.

U suštini, nismo imali problema da oba Pingvina programiramo kroz Arduino IDE. Ne treba se zavaravati da će biblioteke pisane za standardne Arduino ploče sa PIC32 raditi out-of-the-box. Imali smo određenih problema sa I2C kod nekih biblioteka, kao što je Adafruit_SSD1306, koja nije mogla ni da se kompajlira. Rešenje za OLED ekran je u Cariad biblioteci.

Veći Pingvin je klasični format Una i odličan je izbor za razvoj projekta. Smatramo ga i za odličan izbor za prelazak u novi svet mikrokontrolera. Manji Pingvin je, po našem mišljenju, više rešenje za određeni projekat, gde ćemo ga preko headera spojiti sa nekom „matičnom” pločom na kojoj će on činiti srce sistema. U prevodu, ne smatramo ga podesnim za razvoj. Manji Pingvin ima određene prednosti, a tu prvenstveno mislimo na OtG. U svakom slučaju, za više nego prihvatljivu cenu, iz Olimexa imamo pristup industrijskim PIC32 mikrokontrolerima koje „na mala vrata” možemo da programiramo i kroz nama dobro poznato IDE. Od nas, sve preporuke, posebno za većeg Pingvina. Tim pre što se obe ploče preko PicKit3 mogu programirati i kroz MPLAB IDE (XC32 kompajler).

chipKIT

Microchipov pokušaj da se uvuče u Arduino sistem rezultovao je predstavljanjem par chipKIT PIC32 razvojnih ploča još 2011 godine. U međuvremenu se broj razvojnih ploča povećavao, dobili smo integraciju PIC32 mikrokontrolera u Arduino IDE preko JSON paketa. Međutim, ne možemo reći da je PIC32 posebno zaživeo u Arduino svetu. Ono što možemo da kažemo jeste da je postignut visok nivo kompatibilnosti. Same chipKIT ploče bile su prvi 32-bitni mikrokontroleri koji su mogli da se programiraju u Arduino IDE. Na zvaničnim Microchip stranicama može da se bira između nekoliko različitih chipKIT modela. Možemo da posmatramo chipKIT razvojne ploče kao industrijske uređaje koje na mala vrata postaju dostupne mejkerima. Cene su od razumljivih do nerazumljivo visokih.

PicKit3

PicKit3 je programator/debager zasnovan na 16-bitnom PIC24 mikrokontroleru. Postoje ranije verzije, ali i novije. PicKit3 ima i svoj poseban softver, PicKit3 Programmer koji zahteva flešovanje samog programatora. Istim softverom se lako vraćamo u MPLAB režim. Sa računarom se povezuje putem mini-USB kabla koji se dobija uz programator. Takođe se dobija i šestopinski dupont kablić. Ovim kablićem se programatorski konektor povezuje sa target mikrokontrolerom. U našem slučaju je problem pravio razmak pinova, a negde može biti problem i raspored pinova. Na programatoru je prvi MCLR/Vpp pin obeležen strelicom. Pinovi konektora na programatoru nemaju oznake, podrazumeva se da je dovoljno ispratiti samo prvi obeleženi pin. Na Pingivinima MCLR/Vpp nije obeležen, te je potrebno baciti pogled na pinout šemu. Međutim, postoje izuzeci. Uz MPLAB IPE postoji opcija da se target mikrokontroler napaja preko programatora, međutim, ako postoji mogućnost kao na Pinguino pločama, poželjno ih je napajati zasebno. Na programatoru su tri LED koje govore o napajanju, aktivnosti i statusu programatora. Taster na programatoru koristi se za Programmer-To-Go. Na PicKit3 se može prebaciti firmver namenjen mikrokontroleru. U tom slučaju, za njegovo flešovanje nije potreban računar, dovoljno ga je povezati sa programatorom i pritisnuti taster. Nije poželjno pritisnuti taster dok je PicKit3 povezan sa mikrokontrolerom, a pritom na sebi nema firmver namenjen mikrokontroleru.


PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
MAJ 2025
Microsoft Majorana 1
Kvantna topologija
Topološki kvantni računar otporan je na uticaj kosmičkog zračenja, ali i dalje mora da se ohladi skoro do apsolutne nule...
AMD Ryzen 9 9950X3D
Jedan, da svima vlada
Ako vam je potreban najbrži procesor, i za igranje, i za ozbiljnije zadatke, Ryzen 9 9950X3D nema konkurenciju...
Gigabyte GeForce RTX 5070 Ti Aero OC 16G i GeForce RTX 5070 Ti Gaming OC 16G
I za kreativce, i za igrače
Sasvim sposoban da se nosi sa 4K rezolucijom u svim igrama i pruži sasvim pristojne performanse, dok u 1440p apsolutno blista...
Asus ROG Strix Scar 18 (G835LX)
Fantastična zver i kako je kupiti (3)
Laptop namenjen onima koji „ne žale pare” da imaju ono što je trenutno najbolje i najbrže...
Deset najboljih Microsoft PowerToys alatki
Najbolji od najboljih
PowerToys Run je alatka kojoj treba da se okrenete ukoliko vam sistemska rutina za pretragu ne odgovara...
Apple iPhone 16e
Malo muzike za mnogo para
Problem nije samo cena i slabiji grafički podsistem, već i trajanje baterije...
Cemu 2.6
Wii U emulacija
Cemu omogućava pokretanje i privođenje kraju oko 57 procenata igara „napisanih” za Wii U...
.rs: nove usluge eUprave - novi propisi - najava 5G
Mnogo eNoviteta
U novom esDnevniku roditelji će dobijati notifikacije za ocene i izostanke...
Trgovinski rat Istoka i Zapada
Velika igra, nesagledive posledice
Kao u igri „kukavice”, dve supersile kreću se velikom brzinom jedna prema drugoj, izazivajući drugu da prva skrene...
Blue Prince
Jedinstveni dijamant i jedna od najoriginalnijih igara u poslednjih nekoliko godina...
Tempest Rising
Skupa i ambiciozna fotokopija legendarnog RTS klasika Command & Conquer...
South of Midnight
Magična igra koja izgleda kao živa bajka, animirana u stilu filmskog serijala „Spiderverse”...
© 2025 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama