USBtinyISP
Programátor AVR a SPI rozhranie v jednom [ATtiny2313]
Limor, 20.09.2009-00:00

Pretože je lacný, ľahko sa používa, skvele spolupracuje s avrdude (verzia 5.5), je kompatibilný s AVRStudiom a je testovaný pod Windows, Linux (Ubuntu 7.04) a aj Mac OS X.
Je perfektnou voľbou pre študentov a začiatočníkov, ale môžete ho mať doma aj ako záložný programátor.


Môžete si ho postaviť za cca. 16 dolárov, čo činí polovicu ceny AVRISP v2.
Všetky súčiastky sú vybrané tak, aby ste nemali problém ich zohnať u väčšiny veľkých distribútorov. Dosku plošných spojov je možné si objednať na tejto adrese, avšak vzhľadom k jednoduchosti zapojenia si ju určite každý z vás dokáže urobiť aj doma.

Ako je vidieť z obrázka, programátor obsahuje oba štandardné ISP konektory (6-pinový a aj 10-pinový), ktoré zároveň nemá skoro žiadny programátor od Atmelu, vrátane AVRISP v2. Napájaný je 5-timi voltami z USB portu a spotrebuje menej ako 100 mA. Stav programátora indikujú dve ledky.

Rýchlosť zapisovania dát do cieľového mikrokontroléru je 1Kb/s, rýchlosť čítania 2Kb/s, čo napríklad pre Atmega8 znamená, že jej pamäť naplníte za 8 sekúnd a verifikácia alebo čítanie vám bude trvať 4 sekundy. Ak chcete používať USBtinyISP pod Windowsami, príslušné ovládače nájdete tu, tí čo používajú LINUX, alebo MAC OS X nepotrebujú inštalovať žiadne ovládače. Myslím, že návod na inštaláciu ovládačov netreba nikomu nijak extra vysvetľovať, ale ak predsa, tak pekný aj s obrázkami sa nachádza na tejto stránke.

USBtinyISP môže byť slúžiť aj ako SPI zariadenie pre všeobecné použitie, tzn. umožnuje priame rýchle prepojenie zariadení s rozhraním SPI na USB (resp. ku PC v ktorom sa dané USB nachádza). Najlepšie miesto kde hľadať príklady, ako ho používať, je stiahnuť si zdrojové kódy avrdude a prečítať si súbor usbtiny.c. Alebo tu máme aj ukážku jeho použitia pod Linuxom v C++.



Ďalej by bolo vhodné zmieniť sa, že USBtinyISP existuje vlastne v dvoch verziách.
Prvá verzia umožňuje len programovanie cieľových aplikácií napájaných 5-voltami a jej schému vidíte po kliknutí na obrázok vyššie.
Druhá verzia umožňuje programovanie cieľových targetov od 2 do 6V.
Ako vidno zo schémy nižšie, táto výhoda oproti prvej verzii je daná použitím I/O buffera (konkrétne obvod 74AHC125N), ktorý je napájaný napätím z cieľovej aplikácie a tým pádom sú na jeho výstupoch napäťové úrovne zhodné s napäťovými úrovňami obvodov v aplikácii. Za povšimnutie a to dosť dôležité stojí jumper JP3, ktorý vidíme na obrázku zostaveného programátora vpravo hore.





Zasunutie tohto jumpera umožňuje napájanie cieľového targetu 5-voltami priamo z USB (pekne je to vidieť v schéme, kde jumperom JP3 pripojíme 5V na oba koncové konektory programátora a aj na obvod 74AHC125), čím aspoň pri vývoji odpadá externý napájací zdroj pre danú aplikáciu (pozor však aby ste ho tam nezabudli zasunutý, ak budete programovať aplikácie z nižšími napájacími napätiami ako 5V!). Nakoniec pre tých čo majú radi obrázky tu máme obrázkový návod ako poskladať DPS na obrázku vyššie .


USBtinyISP a AVRDUDE

Tento veľmi populárny comand-lineový program, určený na programovanie mikrokontrolérov AVR, porporuje USBtinyISP výlučne vo verzii 5.5. Ak ste začiatočníkom a zaujíma vás ako používať AVRDUDE a ako programovať AVR-ká, kliknite si na tento návod.

Ak si chcete preveriť, či avrdude funguje správne, otvorte okno príkazového riadka a napíšte príkaz avrdude -c usbtiny -p m8, pričom USBtinyISP musí byť pripojené k PC (musí svietiť zelená LED). Mali by ste dostať odpoveď, že avrdude komunikovalo s programátorom, ale nenašiel sa nijaký pripojený mikrokontrolér viď. obr (na obrázok treba kliknúť a ukáže sa vám v normálnej veľkosti).



Ak sa nepodarí programátor nájsť dostanete takúto odpoveď:



V tomto prípade skúste odpojiť a opätovne pripojiť programátor k USB portu (tým hore resetnete), alebo skontrolujte či máte správne nainštalované ovládače.

Ak ku programátoru pripojíte cieľový mikrokontrolér (v tomto ukážkovom prípade to je ATtiny2313) a napíšete do príkazového riadku avrdude -c usbtiny -p t2313, mali by ste dostať oznámenie, ktoré je na nasledujúcom obrázku a znamená, že komunikácia s pripojeným mikrokontrolérom je správna.



Ako vidíte použitie je jednoduché, ako typ programátoru stačí uviesť usbtiny, voľba portu je ignorovaná, pretože pri tomto programátore sa vždy používa USB.
Taktiež môžete použiť voľbu -B a zvoliť si rýchlosť ISP. Východzia hodnota je nastavená na 10 a znamená frekvenciu 100kHz, čo je dobré ak je taktovacia frekvencia cieľového mikrokontroléru vyššia ako 500kHz. Ak chcete využiť rýchlosť 400kHz, vhodnú pre cieľové mikrokontroléry s taktovacou frekvenciou nad 4MHz, môžete použiť voľbu -B1 k urýchleniu programovania.
K výpočtu frekvencie SPI z hodnoty oneskorenia môžte použiť nasledujúci vzťah:

frekvencia SPI v kHz = 1000/(1.5+B), kde B je hodnota oneskorenia


Všeobecne platí, že hodinová frekvencia by mala byť aspoň 4 krát väčšia ako taktovacia frekvencia cieľového mikrokontroléru.

Teraz sa pozrieme na to, ako správne nainštalovať avrdude pre Windows , MAC OS X a Linux.


Návod ako nainštalovať WinAVR nájdete na tejto stránke, ktorá vás prevedie inštaláciou krok za krokom. Uistite sa, že máte verziu z 20.12.2007, alebo novšiu. Samozrejme nezabudnite si nainštalovať aj príslušné ovládače.


Pre návod, ako si nastaviť svoj MAC OS pre vývoj a programovanie AVR, sa pozrite na túto stránku.


Návod ako nastaviť vašu Linuxovú mašinu na vývoj a programovanie AVR nájdete tu. Opäť apelujem na to, aby ste sa uistili, že máte verziu avrdude 5.5 alebo vyššiu. Ak po zadaní avrdude -c usbtiny -p m8 dostanete odpoveď, ako na nasledujúcom obrázku, problém je s právami pri prístupe na USB a zvyčajne nastáva ak nieste prihlásený ako root.



Takže, buď sa môžete prihlásiť ako root, alebo je tu jeden trik ako to rozbehať aj bez prihlasovania sa ako root: trik je umiestnení nového pravidla do /etc/udev/rules.d/, ktoré nastaví správne používateľské práva na USb pre USBtinyISP. Stačí pridať nasledujúci jeden riadok a malo by to fungovať.

SUBSYSTEM=="usb", SYSFS{idVendor}=="1781", SYSFS{idProduct}=="0c9f", GROUP="users", MODE="0666"


USBtinyISP a AVRStudio

Je veľa dobrého softvéru na programovanie a debuggovanie AVR-iek, ako napríklad AVRStudio. Avšak AVRStudio naozaj podporuje iba oficiálne programátory od Atmelu a to STK500 a AVRISP. Pretože poväčšine budete chcieť používať AVRStudio, je napísaný aj softvér, ktorý vám umožňí použiť USBtinyISP v kompatibilnom režime s AVRISP/STK500. Softvér dokáže emulovať skoro všetky funkcie AVRISP (STK500v2), okrem nasledujúcich:


Upozorňujeme, že tento softvér je vo verzii ALFA (snáď, každý vie čo to znamená) a preto sú vítané všetky vaše pripomienky, návrhy a skúsenosti čo funguje prípadne nefunguje, všetko poprosíme smerovať do fóra.

A teraz k inštalácii krok za krokom:

Krok prvý:

AVRISP, ktoré budeme emulovať sa zvyčajne pripája ku PC pomocou sériového (COM) portu. Trik spočíva v inštalácii "COM mostu" - softvéru, ktorý vytvára dva virtuálne COM porty napojené na seba. Kompatibilita spočíva v tom, že softvér donúti myslieť si AVRStudio, že na druhej strane sa nachádza originálny AVRISP programátor.
Najprv si treba stiahnuť aplikáciu com0com z sourceforge, klasicky rozbaliť a nakoniec spustiť. Po prvom kliknutí na next sa vám objaví nasledujúce okno, kde treba odkliknúť CNCA0<->CNCB0 !.



Ďalej kliknete na next a potom na finish a spustí sa konfigurátor com0com v príkazov riadku, kde si môžete príkazom help pozrieť všetky dostupné príkazy programu. Teraz chceme nainštalovať naše dva porty, prvé čo urobíme je , že sa pozrieme do správcu zariadení (device manager). Pod položkou PORTY vidíme zoznam COM portov. Oba virtuálne porty, ktoré urobíme musia byť medzi COM1 až COM9. Vyzerá to, že používaný je iba port COM1. Napíšte teraz do konfigurátora pre com0com nasledovné install PortName=COM2 PortName=COM6, tým zmeníte COM2 na COM3 alebo COM4 podľa toho, či sa niektorý z nich už používa alebo nie. Druhý port by sa mal nachádzať niekde medzi COM5 až COM10. Sledujte si čísla portov, neskôr ich totižto budete ešte potrebovať.



Keď ukončíte konfigurátor, v pravom dolnom rohu vám vyskočí okienko s textom, že bol nájdený nový hardware. Následne na to sa objaví veľké okno, ktoré patrí správcovi zariadení , ktorý sa vás bude pýtať, či sa má pripojiť na lokalitu windows update a hľadať príslušný softvér. Zaklikneme NIE, dáme next, v ďalšom okne zvolíme automatickú inštaláciu a opäť klik na next. V pravom dolnom rohu na nás vyskočí okienko, ktoré oznámi že nový hardvér je nainštalovaný a pripravený na používanie. Teraz skontroluje správcu zariadení a mali by sme v ňom vidieť naše nainštalované porty - konkrétne uvidíte com0com serial emulators viď. ďalší obrázok.



Krok druhý:

Nainštalujete si AVRStudio.

Krok tretí:

Stiahnite si USBtiny500. To je softvér vytvárajúci ono spomínané prepojenie - "most". Nainštalujte ho a spustite. Vyberte jeden z dvojice COM portov, kroré ste si "vytvorili" pomocou com0com. Ak vyberiete port, ktorý nie je práve k dispozícii objaví sa nasledujúce varovanie:



Softvér si zapamätá zvolený port, takže toto varovanie by sa malo vyskytnúť iba jediný krát. Následne softvér hľadá pripojené USBtinyISP, ak sa mu ho nepodarí nájsť vyskočí na vás nasledujúca hláška:



Ak sú nájdené dostupný COM port a aj USBtinyISP, softvér vás poteší nasledujúcim oznámením:



Spustite si AVRStudio a otvorte programmer communcation panel. Vyberte AVRISP a zvoľte ďaľší z dvojice COM portov, ktoré ste vytvorili pomocou com0com. Tento výber budete musieť robiť len raz, pretože AVRStudio si ho zapamätá.



Teraz by ste už mali byť schopný pomocou softvéru komunikovať s vaším cieľovým mikrokontrolérom. Ak ale máte problémy s komunikáciou overte si či je pripojené napájanie, alebo či nie je potrebné ku mikrokontroléru pripojiť kryštáľ či iný zdroj taktovacieho signálu, alebo či nie je rýchlosť ISP príliš vysoká. Rýchlosť ISP môžete zmeniť v záložke BOARD.



Posledná správa, ktorú by ste mali uvidieť v konzole USBtiny500 bude nasledovná viď. obr a týmto máme inštaláciu dokončenú.



Súbory na stiahnutie:




Ostatné súbory ako napríklad ovládače nájdete na tejto adrese. A na záver ak vás budú pri "spojazdňovaní" tohto programátora sprevádzať nejaké problémy môžte sa pozrieť sem, kde sú niektoré prípadné problémy rozobraté alebo napísať do fóra, rátajte však s tým, že sa budete musieť trochu potrápiť s anglickým jazykom.

Odkazy

Preklad: Kiwwicek

Všetky zdrojové kódy sú distribuované pod licenciou GPL a súbory týkajúce sa hardwaru obdobne pod CC 2.5 Attrib./Share-alike.


tento článok je z mikroZONE
( https://www.mikrozone.sk/pluginy/content/content.php?content.23 )