LAKI PINGVINI
MikroElektronika STM32 M4 Clicker
Kliker za klikove
D. PETROVIĆ
1. januar 2022.

Uprošlom broju smo se malo upoznali sa Mikroelektronikinim Klikovima. Pisali smo i o SAM3X „obrni i utakni” rešenju. Pored premium razvojnih sistema i Flip&Click, Mirkoelektronika ima rešenja i za manje projekte. Ako pretražujete njihovu prodavnicu i tražite način da sa manjom i povoljnijom razvojnom pločom završite projekat, a pritom koristite sve pogodnosti MikroBUS standarda, ključna reč je Clicker.

Klikeri su razvojne ploče drugačijeg formata u odnosu na one o kakvim ste mogli čitati na ovim stranicama. Po dimenzijama, Kliker je sa 31,6×75,6 milimetara dosta van standarda za Arduino sistem. Prvo što se primećuje na pločici je kompaktni „kavez” MikroBUSheadera. Kao i kod SAM3X, i ovde su oznake prema portovima i interfejsima, što je, zapravo, standard. Sama podnožja kod SAM3X su zaklanjala oznake, a koje su smeštene unutar njega. Ovde na Klikeru su oznake i dalje unutar podnožja, ali isto tako ispisane sa strane podnožja. Ovo je odlično, jer ne treba gledati u dokumentaciju ili vaditi Klik iz Klikera, dovoljno je pogledati sa strane. Oznake su na Klikeru obeležene i sa donje strane pločice.

Ispod MikroBUS podnožja je taster ’Reset’, kao i još dva korisnička tastera sa jasnim oznakama sa kojim pinovima mikrokontrolera su povezani. Između ova dva korisnička tastera su dve crvene LED za koje smo na prvi pogled pomislili da je u pitanju Neopixel. Tu se našlo mesta i za jednu Power LED. O SAM3X rekli smo da zameramo što LED koje se odnose na podnožja nemaju oznake pinova sa kojima su povezane; ovde je sve označeno vrlo jasno. Zanimljivo je povezivanje LED i tastera sa mikrokontrolerom. Dok se LED „pale” sa logičkom jedinicom, pritisnuti tasteri će mikrokontroleru prijaviti logičku nulu. Tasteri su preko 4,7K otpornika povezani u pull-up konfiguraciji. Drugim rečima, ako ćemo tasterom uključiti LED, sa nulom treba da pošaljemo jednog lepog keca.

I na kraju (a možda je trebalo na početku), srce sistema je STM32F415RG. Ovaj mikrokontroler sa RISC jezgrom ARM Cortex-M4 32-bitne arhitekture kuca na frekvenciji od 168 megaherca. Mi smo o ARM arhitekturi pisali u više navrata, a više o tome možete saznati ako krenete sa čitanjem od prvog od ukupno tri teksta (SK 8/2018, i.sk.rs/15211). Isto tako, podsećamo na jedan jako zanimljiv tekst o STM32 uopšte (SK 2/2018, i.sk.rs/14854). Mikrokontroler na Klikeru na raspolaganju ima jedan megabajt fleš memorije i 192 kilobajta SRAM-a. STM32F415xx porodica mikrokontrolera dolazi u raznim pakovanjima, sa različitim brojem pinova. RG varijanta (LQFP64) na Klikeru u osnovi ima 51 GPIO, od toga 16 ADC u 12-bitnoj rezoluciji. Tu su i dva DAC u istoj rezoluciji. Od interfejsa, čip u osnovi raspolaže sa tri I2C, do četiri USART, dva UART, tri SPI, dva CAN, I2S, SDIO. Kao naprednije funkcije svrstavamo dva USB 2.0 device/host/OtG kontrolera (FS i FS/HS), 10/100 Ethernet MAC, zatim 8 do 14-bit Parallel kamera interfejs i drugo. Za debagovanje, tu su SWD i JTAG interfejsi. Spisak je još duži, ali mi ovde stajemo.

Mikrokontroler na Klikeru dolazi sa svoja dva prateća kristala, ostalom neophodnom elektronikom, ali i jednim „most” otpornikom od nula oma na J1. Naime, u konfiguraciji kakva jeste, RTC modul će raditi samo onda kada sam Kliker dobije napajanje. Odlemljivanjem ovog otpornika, a povezivanjem baterije (CR2032) sa padovima odmah pored, možemo omogućiti da se interni RTC modul napaja bez obzira na napajanje Klikera. Dok smo kod napajanja, STM32 radi na 3,3 volta, a može se napajati preko mini-USB priključka. Petovoltni pin se nalazi i na MikroBUS podnožju, ali pretpostavka je da se podnožje koristi za pametnije stvari. Koristeći mini-USB, Kliker će preko AP7331 naponskog regulatora dobijati do 500 miliampera struje, što je sasvim dovoljno za najveći broj situacija.

Sa leve i desne strane mikrokontrolera su dva nepopunjena headera. Desni razvodi dodatnih osam pinova uz 3,3V i GND. Preko ovog headera se sa mikrokontrolerom mogu povezati dodatni senzori, tasteri, moduli i slično. Levi header je JTAG u formatu 2×5. Uz Kliker, u kutiji se nalaze muški headeri pod uglom i pravi za gorepomenute.

Na redu je programiranje. Mikroelektronika navodi da se Kliker može programirati na dva načina. Jedan je preko USB HID mikroBootloadera. Sa zvaničnih stranica se može preuzeti paket koji sadrži sam USB HID Bootloader, ali i mikroBootloader USB HID softver. Kliker već stiže sa odgovarajućim Bootloaderom, a za programiranje je još potreban data kabl i korisnički softver kao HEX fajl. MikroBootloader se koristi isključivo za flešovanje Klikera, ali ne i za programiranje samog kôda. Prilikom povezivanja sa računarom, STM32M4 će otići u Bootloader režim na pet sekundi, a nakon toga će početi da izvršava korisnički program. Za to vreme, u tih pet sekundi, potrebno je kliknuti Connect. U suprotnom, dovoljno je pritisnuti taster ’Reset’ na Klikeru i ponoviti postupak. Dok je Kliker povezan sa mikroBootloaderom, potrebno je izabrati HEX fajl i prebaciti se na mikrokontroler sa Begin uploading. Sve se odvija veoma brzo. U slučaju da softver ne prepozna STM32M4, iznad su opcije Device i MCU Type. Ovo može da se desi ako smo obrisali originalni bootloader. Već nakon odabira HEX fajla sa Browse for HEX, mikroBootloader će utvrditi da li je on kompajliran upravo za povezani mikrokontroler. Za HEX fajl kompajliran za neodgovarajući mikrokontroler, mikroBootloader će prijaviti grešku već prilikom njegovog odabira.

Ako dolazite iz Arduino okruženja, pitaćete se „Pa gde da nađem sad taj HEX fajl?”. Zapravo je vrlo lako. I Arduino IDE kompajlira INO u HEX fajl, s tim što je on u skrivenom privremenom folderu koji ćete naći obično pod C:Users{user}AppDataLocalTemparduino_build_{random nr}. Pravu putanju možete dobiti i tako što pod Preferences u Arduino IDE čekirate Verbose output compilation. Nakon kompajliranja, između hrpe podataka će biti i direktna putanja ka HEX fajlu sa nazivom skeča koji smo i kompajlirali. Taj fajl izaberemo u mikroBootloaderu i voilà, naš sledeći primer radi.

void setup() {

pinMode(PA1, OUTPUT);

pinMode(PA2, OUTPUT);

pinMode(PC0, INPUT);

pinMode(PC1, INPUT);

}

void loop() {

digitalWrite(PA1, !digitalRead(PC0));

digitalWrite(PA2, !digitalRead(PC1));

}

Rekosmo da ne možemo da kompajliramo naš program za bilo koju ploču i prebacimo na Kliker (kao i inače za bilo koju drugu). Naš skeč iznad moramo da kompajliramo baš za ovaj specifični mikrokontroler, što znači da moramo da omogućimo podršku za njega u okviru Arduino IDE. Za Arduino okruženje postoji JSON paket stm32duino, a podršku dodajemo na isti način kao i za sve prethodne, tako što u URL polje pod Preferences unesemo „https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json” i STM32 ploče instaliramo. Pod Boards biramo Generic STM32F4, pa tek onda pod Boards Part Number tražimo ovaj naš čip. U primeru iznad vidite da smo pinove LED i tastera adresirali prema nazivima na samim portovima. Nakon kompajliranja, HEX se pojavio na svom mestu, a uz pomoć Mikroelektronikinog alata smo ga prebacili na STM32 M4 i mogli smo da tasterima uključujemo LED.

Druga varijanta programiranja Klikera je preko mikroProg STM32 programatora ili ST-Link V2 programatora, za šta koristimo mikroProg Suite alat, a koji se može preuzeti sa zvaničnih stranica Mikroelektronike. Programiranje Klikera se odvija slično kao iznad, u par koraka, s tom razlikom da je Mikroelektronikin programator možda za nijansu bolje rešenje, jer već dolazi sa 2×5 headerom na ribbon kablu. Kod ST-Link V2 programatora je 2×10, te je neophodan adapter, a koji se isto može nabaviti kod beogradske firme. Naravno, HEX fajl se podrazumeva.

Postoji i treća varijanta koju Mikroelektronika ne pominje, jer je za njihova razvojna okruženja to third-party solution - Arduino IDE. Nažalost, iako Clicker dolazi sa HID Bootloaderom, on nije kompatibilan sa podržanim iz STM32duino paketa. Koliko vidimo, nismo jedini koji su bezuspešno pokušavali da programiraju ovaj Kliker direktno kroz Arduino IDE. Ništa zato, idemo težim putem. Podrazumeva se da je jedan od ST-LINK/V2 programatora na stolu. Bez njih se nema smisla upuštati u rad sa STM porodicama mikrokontrolera uopšte.

Koristili smo ST-LINK V2, međutim, već prilikom prvog pokušaja programiranja Klikera dobili smo nekoliko grešaka. Prva se tiče zastarelog firmvera na programatoru. Sa zvaničnih stranica STMicroelectronics preuzimamo STM32CubeProgramer, koji je i inače neophodan zbog drajvera koji dolaze u paketu. Povezujemo programator, biramo ST-LINK, zatim Connect i idemo na Firmware upgrade. Ceo proces se brzo završava. Ponovni pokušaj prebacivanja skeča na Kliker prijavljuje novu grešku - jezgro je zaključano. Dok je Kliker povezan sa programatorom, opet otvaramo STM32CubeProgrammer, biramo ST-Link, povezujemo se, ali ovaj put u levoj bočnoj traci biramo OB (Option bytes). Pod Read Out Protection za RDP u padajućem meniju biramo AA, što je Level 0, no Protection i idemo na Apply. Nakon ovih „popravki” naš skeč se za tili čas našao na STM32 M4 Clickeru. U okviru IDE, za ovaj Kliker biramo odgovarajuću osnovnu porodicu ploča Generic STM32F4 boards. Board part number je Generic F415RG. Za Upload metod biramo STM32CubeProgrammer(SWD). Nakon prvog skeča, Kliker će se privremeno prijaviti pod nekim COM portom, međutim, to i dalje ne znači da možemo da ga programiramo koristeći mini-USB port i opciju HID Bootloader za Upload metod. Drugim rečima, ne možemo da ga programiramo samostalno, bez programatora. Za sada ne postoji HID Bootloader za STM32 na Klikeru, a da je kompatibilan sa STM32duino paketom ploča. Bez obzira na to, Kliker se uz pomoć ST-Link programatora lako programira, bez potrebe za boot tasterom.

STM32 M4 Clicker u Mikroelektronikinim razvojnim okruženjima pliva kao riba u vodi. Međutim, odlično pliva i u Arduino IDE. Programiranje ovog mikrokontrolera nekim UART adapterom nije moguće bez neke veće prepravke, jer neke linije nisu izvedene, dok su druge iskorišćene, recimo za LED na ploči. Jeftini ST-Link V2 programator savršeno funkcioniše. Maltretirali smo ploču prilično dugo; postoje određeni sitni problemi koji se tiču mapiranja, jer mnoge biblioteke koriste default linije interfejsa. Naravno, problem se može rešiti, bilo u okviru biblioteka, bilo u definicijama za samu ploču. U svakom slučaju, čak i za početnike, STM32 M4 Clicker neće predstavljati problem.


PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
NOVEMBAR 2023
Counter Strike 2
Stari, dobri Kanter u osveženom ruhu je više veliki update, nego puna nova igra...
Intel Core i9-14900K i Core i7-14700K
Nema zime uz Intelove mašine
Da li je Raptor Lake Refresh samo još vrelija i neznatno brža verzija prethodne generacije?
Apple iPhone 15, iPhone 15 Pro i iPhone 15 Pro Max
Petrovača, ajdared i zlatni delišes
iPhone 15 je „prepakovana” verzija modela 14 Pro, sa Appleovim čipsetom A16 Bionic „ispod haube”...
High tech igračke i razvoj naučnog razmišljanja
M’mera mpoyamba
Visokokvalitetne, a povoljne edukativne igračke postoje za svaku sferu interesovanja vašeg deteta...
Dell Alienware AW2724DM
Ponos na vašem stolu
Odličan monitor. Vrhunski! Međutim, kao što verovatno znate, Alienware je neka vrsta statusnog simbola...
Hisense 43A7KQ
VIDAA sa više smisla
Neobičan brak pametnog i tradicionalnog televizora, koji se lako koristi i bez ijedne napredne opcije za gledanje TV programa...
Finansijske tehnologije
Turbulencije ne prestaju
Da li nas očekuje recesija ili „meko prizemljenje”? Ključne kompanije sektora finansijskih tehnologija ne čekaju previše...
EmulationStation Desktop Edition 2.1.1
Vizuelna strana emulacije
Emulation-Station je frontend za emulatore, koji donosi mogućnost kastomizacije prikaza sadržaja...
Super Mario Bros. Wonder
Super Mario Bros. Wonder je dragulj u serijalu 2D Mario platformera, na koji se čekalo više od tri decenije...
Assassin’s Creed Mirage
Igra ima fokusiranu, vrlo linearnu priču kakvu su imali prvi naslovi u serijalu...
Forza Motorsport
Pre trka nije moguće voziti kvalifikacije, već sami birate startno mesto na gridu...
Marvel’s Spider-Man 2
Akciona komponenta Marvel’s Spider-Mana 2 je stravično dobra, mada su Majls i Piter previše slični...
© 2023 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama