SK LABS Prženje utovarivača čizama
Butloader (bootloader) smo često pominjali, pa je red da napišemo koji red više o njemu. U pitanju je mali komad softvera koji ostaje na mikrokontroleru (govorimo o mikrokontrolerima) i nakon spuštanja korisničkog programa. Njegova uloga je da smesti korisnički program na fleš memoriju. Lakoću upotrebe Arduino i duguje butloaderu, a bez njega bi proces bio u određenoj meri komplikovaniji i zahtevao bi posebne programatore. Svaka Arduino razvojna ploča dolazi sa već isprogramiranim butloaderom, bez obzira na to da li govorimo o originalu, klonu iz Kine ili nekoj sličnoj kompatibilnoj ploči. Podrazumeva se da se na različitim AVR mikrokontrolerima vrti i za nijansu drugačija verzija butloadera, uglavnom zbog specifičnosti samog čipa. Razlike se tiču i same veličine ovog programa, a koja zavisi od čipa do čipa. U početku, Arduino Uno je dolazio sa butloaderom koji je zauzimao dva kilobajta fleša. Uzimajući u obzir ionako malu veličinu fleša na ATmega328p, jasno je da je to mnogo. Sa druge strane, butloader za ATmega8 iznosio je samo jedan kilobajt. Sve do pojave Optiboota. Optiboot je univerzalni butloader i može se naći na skoro svakom AVR čipu, bez obzira na to da li jer reč o nekom ATtiny, standardnom ATmega328p ili ATmega2560. Prednosti nisu samo u njegovoj veličini i fleksibilnosti, već i u brzini spuštanja korisničkog programa, jer Optiboot radi na većim vrednostima bauda. Sve novije, pa i zvanične Arduino i Arduino kompatibilne ploče dolaze sa Optibootom. Ipak, dešava se da neke i dalje dolaze sa starim Arduino butloaderom, a posebno Arduino Nano, gde je prilikom odabira postavki za ploču, za butloader potrebno odabrati opciju Old Bootloader. Kod ovakvih situacija, na Nano može da se preprogramira Optiboot (kao, uostalom, i na druge AVR). Za programiranje butloadera na bilo koji AVR čip, potrebni su nam SPI izvodi, Reset linija, a naponske linije se podrazumevaju. Butloader može da se programira korišćenjem nekog od programatora, poput AVR ISP, USBTinyISP, USBasp, Atmel STK500, Atmel ICE i drugi. Butloader može da se isprogramira i korišćenjem druge AVR razvojne ploče. Svaki paket podrške za Arduino IDE za određenu grupu AVR mikrokontrolera dolazi i sa butloaderom, te ako želimo da isprogramiramo butloader za neki AVR čip, dovoljno je da smo dodali JSON paket, kao i svaki drugi. Nakon toga, sve što treba da se uradi u IDE, osim odabira čipa, jeste odabir programatora iz liste Programmer i na kraju opcija Burn Bootloader pri dnu liste Tools. Drugo alternativno rešenje je Nick Gamon skeč, koji će automatski da prepozna čip i ponudi opcije za programiranje butloadera na povezanom čipu (gammon.com.au/bootloader). Skeč je nastao pre više od deset godina i generalna je preporuka da se koristi standardno rešenje iznad. Tim pre što je kod ove varijante razvijena podrška tek za nekih 12 AVR čipova. USBasp USBasp programator je jedan od starijih programatora za AVR mikrokontrolere i baziran je na ATmega8 (ili 88) čipu. Dizajniran je u formi USB stika sa 10-pinskim IDC konektorom na drugom kraju. Uz programator se obično dobija IDC kabl i adapter sa deset na šest pinova koji omogućava direktno povezivanje programatora sa ICSP headerom standardne Arduino ploče. Na njemu se nalaze dve LED, jedna koja sija kada je programator pod naponom, a druga kada se odvija proces spuštanja programa na mikrokontroler. Tu je još par pinova za upravljanje programatorom. Sa oznakama 3.3V i 5V su pinovi za odabir napajanja mikrokontrolera koji programiramo. Sa oznakom JP2 su dva nepopunjena pina, a njihovim spajanjem pre povezivanja USBasp sa računarom se ATmega8 na njemu postavlja u BOOT režim, što je proces koji se koristi prilikom nadogradnje firmvera. Zvuči neverovatno, ali iako je poslednji zvanični firmer sa podrškom za Tiny Programming Interface (TPI) star deset godina, još uvek nam dolaze USBasp sa starijim firmverom od toga. Za nadogradnju firmvera može da se koristi isti USBasp koji će se povezati IDC kablom između sebe. Procedura se izvršava preko komandne linije (Command Prompt) uz Avrdude komandu: avrdude -c usbasp -p m8 -U flash:w:d:PutanjaDoHEXFajla:i Gde je „m8”, zapravo, ATmega8. U slučaju da je ATmega88, tada bi stajalo „m88”. Za HEX fajl ključne reči za pretragu su Thomas Fischl. Isti takav nepopunjen header sa oznakom JP3 koristi se kada je potrebno programirati mikrokontroler sa manjim SCK brzinama (ispod 1,5 megaherca). Računar neće prepoznati USBasp kako treba, te je potrebno instalirati drajvere, a Zadig je odličan alat za to. Ako je sve u redu, na računaru pod Prozorima bi programator trebalo da se pojavi pod libusbK USB Devices, kao USBasp. Spisak ATmega mikrokontrolera je pozamašan. Tu su svi „viđeniji” Arduino AVR čipovi, ali i dobar deo ATtiny i AT90 mikrokontrolera. Osim AVR, sa USBasp mogu da se programiraju i 51 mikrokontroleri, serije AT89x (istina, tek njih sedam). USBtinyISP Takođe „mator kao Biblija”, USBtinyISP je programator malo drugačijeg dizajna. Na njemu se nalazi ATtiny2313 mikrokontroler u DIP20 pakovanju. Vredan pomena je i bafer čip 74AHC125, koji se bukvalno nalazi između Attiny2313 i dva IDC konektora (10-p, 6-p), preko kojih se programator povezuje sa čipom koga treba programirati. Programator, takođe, dolazi sa dve LED iste namene kao na USBasp. Popunjeni header tik do 10-p IDC konektora upravlja napajanjem čipa koji treba da se programira. Kada je spojen, tada je na VCC IDC konektora pet volti. Ako će se programirati 3,3-voltni čip, ovi pinovi ne smeju da budu spojeni. Neobeleženi i nepopunjeni header sa druge strane spaja Reset liniju IDC konektora sa Reset pinom ATtiny2313 čipa. Ako pogledamo šemu, videćemo da, zapravo, spajamo PB4 na VCC, što je opcija za nadogradnju firmvera na programatoru. Drajvere za USBtinyISP rešava Zadig. Ako je sve u redu, programator će se prijaviti pod libusb-win32-devices kao USBtiny. Pored AVR mikrokontrolera, sa ovim programatorom mogu da se programiraju i neki 8051 čipovi. Postoji novija verzija, vrlo malih dimenzija, ali sa ATtiny44 mikrokontrolerom. Suštinski, razlike nema. Umesto bočnih headera za napajanje povezanog mikrokontrolera i nadogradnju firmvera samog programatora, ovde su padovi za lemljenje. Programator se prijavljuje isto, ponaša isto, te je zbog svojih manjih dimenzija i modernijeg dizajna možda i bolja opcija. Arduino kao ISP U nedostatku programatora, dovoljan je i dobri, stari Uno uz šest žica. Ne mora biti Uno, može Nano, Mega ili slično. Recimo da želimo da sa Unom isprogramiramo butloader na Nano, na kome imamo stari butloader. Prvo što treba uraditi je spustiti skeč iz File: Examples: ArduinoISP: ArduinoISP na Uno. Nakon toga, potrebno je povezati SPI linije između dva mikrokontrolera, kao i naponske. Na kraju, pin D10 sa Una ide na Reset pin na Nano. Sada kao ploču biramo Nano, opciju Processor ostavljamo na ATmega328 , uz odgovarajući port. Pod Tools: Programmer biramo Arduino as ISP, i sa Burn Bootloader programiramo Nano sa Optiboot. A gde smo tu mi? Mi smo otišli korak dalje i napravili malu ploču za programiranje, gde šemu i drugu dokumentaciju možete da preuzmete ovde: i.sk.rs/359093. Ideja je da koristimo DIP i TQFP32 sockete za nezavisno programiranje DIP i TQFP pakovanja ATmega328p čipova, ako ne želimo da na ploči postoji ikakav interfejs za programiranje. Ali i ICSP header za programiranje ploča, koristeći Arduino as ISP metodu. Naša ploča ima i odabir radnog napona, kao i sockete za promenu HC-49S kristala različitog takta (16 i osam megaherca). Akcenat je na ATmega328p u 5V i 3.3V verziji, bez obzira na pakovanje. ICSP header je tu kao dodatna odlika. Prilikom programiranja butloadera na ATmega328pb, pokazalo se da je potreban kondenzator na Reset liniji, te je i on našao svoje mesto, ali kao opcija. Koristimo ovaj programator tako što je na njemu sve vreme ArduinoISP skeč. Menjamo samo ciljani mikrokontroler u okviru IDE. U međuvremenu smo isprogramirali butloadere na nekoliko nestandardnih Arduino mikrokontrolera bez ikakvih problema. O njima u nekom od narednih brojeva. Dobro je znati da, ma koliko delovalo drugačije, princip je isti za svaki AVR čip. A AVR nisu samo ATmega328p, ATmega2560 i ATmega32u4. • • • Kada govorimo o programiranju AVR mikrokontrolera, butloader, zapravo, nije ni potreban. Koristeći bilo koji od navedenih programatora ili drugu Arduino ploču, možemo da programiramo naš AVR čip direktno (opcija Sketch: Upload Using Programmer). Na ovaj način, ako je i postojao butloader, više ga neće biti, jer će sadržaj fleša biti obrisan. Od ove opcije ne treba bežati, jer će u nekom trenutku baš taj ekstra kilobajt biti od koristi. Prilikom butovanja, mikrokontroler prvo učitava butloader, te će tih par delića sekunde u nekoj varijanti biti mnogo. Naša ploča može da se koristi i kao AVR programator mikrokontrolera, bez potrebe za butloaderom na ciljanim čipovima.
|
||||||||||
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Doom: The Dark Ages Doom iz mračnog doba drugačiji je od svih drugih Doomova, jer je Slayer koncipiran kao tenk sa štitom... Clair Obscur: Expedition 33 Estetika Belle Époquea, gameplay u skladu sa kanonima JRPG-a, vrhunsko pripovedanje i ljubav prema igrama... Computex 2025, Tajpej, Tajvan AI NEXT Ovaj, nekada ultra-PC-specifični sajam, odavno se proširio na srodne tehnologije, biznis rešenja i digitalne usluge, postavši varijanta azijskog C... Gigabyte GeForce RTX 5070 Gaming OC 12G Višak samopouzdanja Kartica je sa hardverske strane vrlo kvalitetna, ali ništa ne može da nadomesti nedostatak snage „pod haubom”... Asus ProArt P16 (H7606WP) Pronalazak neverovatnog Novi ProArt P16 donosi moderna rešenja, u dobro usaglašenom odnosu gabarita i performansi – alatka koju ćete sa ponosom nosati sa sobom... Logitech ProX Superlight 2 Sve udvostručeno Ovaj miš predstavlja jasnu indikaciju da najveći proizvođač ne želi da napusti nijedan segment tržišta... Winhance 25.05 Popravka Prozora U pitanju je alatka koja omogućava da se brzo rešite (većine) bloatwarea, ali i da obavite optimizaciju rada Windowsa... .rs: Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije Unapređeno e Zakazivanje Beogradski prevoz na Yandexu • Srbija u SEPA • Loši primeri digitalizacije Google Mariner, Google Astra i AI autonomni agenti Uspon tihog softvera Umesto kliktanja stručnog lica, softver će, već ove godine, u tihom, gotovo nečujnom načinu rada - završavati posao... Fatal Fury: City of the Wolves Fatal Fury je oduvek bio čudna cvećka u svetu borilačkih igara; takav je i ostao... Arc Raiders Novi extraction shooter iz pera autora dobrih delova franšize Battlefield (i potcenjenog The Finals)... |
||||||||||