USBasp ako programátor

Page

Stránky / Nezaradené stránky /

Pokiaľ sa človek viac venuje programovaniu mikrokontrolérov, uvedomí si, že má Arduino stále vyhradené pre ISP programovanie. Tak to síce funguje krásne, ale je dosť prácne pamätať si všetky tie prepojenia. Na časté programovanie slúži pohodlnejší spôsob.

Treba si kúpiť dve pomôcky:

  • USBasp (USBasp USBISP 3.3V / 5V AVR Programmer USB ATMEGA8) - Programátor sa pripojí na jednej strane do USB a na druhej strane do nasledovného adaptéra. Stojí približne 2,5 USD na Ebay. Na Banggood stojí približne 3 USD.

  • Adaptér z 10 na 6 pinov (10Pin Convert To Standard 6 Pin Adapter Board For ATMEL STK500 AVRISP USBASP) - Vo všetkých schémach, ktoré pripájajú Arduino-like mikrokontroléry sa používa 6 pinový konektor. Šetríte tak miestom. Stojí približne 1 USD na Ebay.

Ku tomu je dobré si vyrobiť ešte jeden adaptér, ktorý sa využije pri programovaní na skúšobnom poli. Ten zabezpečí, že na jednej strane je klasický 6 pinový konektor, ktorý nájdete aj na svojom Arduine (označený ako ICSP), ktorý sa pomocou kúska plošného spoja roztiahne na šírku stredného poľa na skúšobnom poli. Dosiahnete tak šírku z 2x2,51 mm na 4x2,51 mm.

Na prvom obrázku sú všetky tri veci samostatne.

Na druhom obrázku je to zmontované dokopy a pripojené na skúšobné pole. Ak si dobre všimnete obrázok, uvidíte, že stačilo použiť iba štyri prepojovacie vodiče, pretože +5 V a GND boli prepojiteľné iba krátkymi drôtikmi.

Na treťom obrázku je schéma zapojenia z druhého obrázku.

https://upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Icsp-pinouts.png/600px-Icsp-pinouts.png

Na štvrtom obrázku som si pomohol schémou z Wikipedie. V našom prípade sa orientujeme podľa obrázku v strede ISP6PIN. Na schéme tretieho obrázku je konektor otočený o 90 stupňov v smere hodinových ručičiek.

Inštalácia

Po zastrčení programátora do USB portu sa dočkáte oznamu, že je potrebné nainštalovať driver. Toto sa robí iba raz.

  • Otvorte stránku www.fischl.de/usbasp. To je stránka autora pôvodnej verzie programátora, podľa ktorého návrhu všetci ostatní vyrábajú programátory.
  • Stiahnite si driver. V čase písania tohoto textu bola jeho verzia www.fischl.de/usbasp/usbasp-windriver.2011-05-28.zip.
  • Po jeho rozbalení nasmerujte inštalátor do podadresára libusb_1.2.4.0.

 Takto to fungovalo až do čias Windows 10 (alebo takých Windows, ktoré vyžadujú podpísané drivery). Ďalšia zmena prišla aj s novšími verziami IDE, kde sa zmenil program Avrdude.

Windows 10

Pokiaľ máte Windows 10, alebo novšiu verziu IDE, predchádzajúci postup nebude fungovať. Treba na to isť inak. Predpokladajme, že máte aj Windows 10 aj nové iDE (1.6.10+). Nepodpísané drivery tu nebudú fungovať.

Zo stránky http://zadig.akeo.ie/ si stiahnite program Zadig. Ten v sebe má všetko potrebné. Najprv zastrčte USBasp do USB a spustite program. V rozbaľovacej ponuke nájdite USBasp. Ak tam nie je, v menu zapnite Options/List All Devices.

V riadku Driver vidíte, aký konkrétny driver je nainštalovaný a na aký ho môžete zmeniť. Pre vaše potreby sú použiteľné tieto:

  • libusbK - Na čínske klony bude pravdepodobne fungovať tento. Ja ho mám nastavený pre Windows 10 a verziu Arduino IDE 1.8.1 (v čase modifikácie tohto článku)
  • libusb-win32 - Malo by fungovať na originálne firmvéry.

Či vám to funguje zistíte ľahko. Ak máte napríklad mikrokontrolér ATtiny85 a pokúsite sa do neho nahrať program, ak to nepôjde, uvidíte takéto chybové hlásenie.

avrdude: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor=’www.fischl.de’ product=’USBasp’

Čínske klony

Zdá sa, že môžete zohnať niekoľko rôznych modifikácií programátora.

  • To čo je na obrázku. Má vyvedené piny prepínača 3,3 a 5 V. Kryštál je umiestnený pozdĺžne. Text na plošnom spoji ho označuje ako USBasp v2.0.
  • To čo je linknuté na Banggood. Nemá vyvedené piny, ale je tam údajne rezistor, ktorý treba odletovať pre 3,3 V. Nemám ho, takže to len píšem podľa diskusie na nete. Kryštál je umiestnený kolmo.
  • Ešte jedna verzia, označená ako predchádzajúca s doplneným slovíčkom New. Táto verzia pravdepodobne obsahuje novšiu čínsku úpravu programu. Kryštál je umiestnený kolmo. Táto verzia pravdepodobne nehlási pri programovaní problém s SCK.

Programovanie

Je treba vykonať iba nasledovné kroky:

  • V menu vyberte Tools/Programmer/USBasp.
  • V menu Tools/Board vyberte zodpovedajúce nastavenie. Keďže predpokladáme, že ste skladali ATmega328P s kryštálom na 16 MHz, vyberte si Arduino Uno.
  • Zastrčte konektor podľa schémy.
  • Keďže predpokladáme, že máte použitý nový mikrokontrolér, je treba mu prepnúť fuses. Spolu s tým sa síce nahrá aj bootloader, ale ten nás v tomto type programovania nezaujíma. V menu vyberte Tools/Burn bootloader.
  • Potom už len stačí nahrať do prostredia ľubovoľný program (napríklad obľúbený File/Examples/01.Basics/Blink) a v menu vybrať File/Upload Using Programmer.

Počas programovania sa objaví síce chybové hlásenie, ale to obvykle môžete ignorovať, pretože to znamená len to, že vám čínsky predavač predal USBasp so starším programom. Puristi sa môžu pokúsiť tento program preprogramovať pomocou Arduina, ale väčšina ľudí sa na to vykašle.

Používanie 3,3 V

Na programátore je malý prepínač (viď Čínske klony). Ním je možné prepnúť medzi 5 V a 3,3 V. Skúšal som ho používať s mikrokontrolérom ATtiny85 a v oboch prípadoch programovanie prebehlo.

Prepísanie EEPROM

Pri experimentoch s programovaním som zistil, že naprogramovanie cez ISP prepíše celú EEPROM v mikrokontroléri. Nemôžem to ešte na 100% potvrdiť, ale asi je to tak. Ešte to trochu budem skúmať, ale tu je pravdepodobne rozdiel medzi programovaním klasického Arduina cez bootloader a týmto spôsobom.


10.06.2016


Menu