Vis dažniau kompiuteriuose COM ir LPT jungtys yra nebeįtraukiamos į
pagrindinę komplektaciją. Nors ir yra labai mėgiamos elektronikos entuziastų dėl savo
paprastumo, tačiau tampa vis didesne retenybe. Valdyti prietaisus ar
programuoti mikrokontrolerius tampa sudėtingiau. Tai dar labiau pasireiškia
nešiojamuose kompiuteriuose, kuriuose jau senokai dominuoja USB ir kitos
sudėtingesnių protokolų jungtys. Ką daryti tokiu atveju, jeigu reikia įrašyti
sukompiliuotą programą į mikrokontrolerį, o paprastų priemonių nėra? Šiame
straipsnyje pabandysiu į tai atsakyti, panaudojant tą pačią šiuolaikinę komunikavimo jungtį - USB.
I. Galimybės
Taigi, turint tik USB jungtis kompiuteryje, kaip išgauti COM/RS232 arba LPT funkcionalumą? Internete paieškojus įmanoma surasti galybę informacijos ir metodų. Sužinoti, kurie veikia, gali tekti ir paeksperimentuoti, nuomonių galima prisiskaityti įvairių. Yra kelios realios alternatyvos, kurias ir aptarsime. Vienas iš tokių elementariausių ir
greičiausiai ateinančių į galvą pavyzdžių būtų nusipirkti USB-2-COM adapterį ar pan. Kuris verčia vienos jungties signalus į kitos jungties palaikomus signalus. Tokio adapterio pavyzdys pateiktas
žemiau foto. Nesudėtinga rasti jų ir ebay.com parduotuvėje. O kainos įvairios –
tuomet teko pakloti 20 Lt
už šį daikčiuką.
Prie konverterio pridedami ir specialūs draiveriai. Tačiau naudos iš tokio
konverterio mažai. Bėda tame, kad jis tinka tik prijungti seną COM printerį ar
kitą įrangą, siųsti elementarius TX/RX TTL signalus per USART, tačiau visiškai netinka
atlikinėti tokius darbus, kaip mikrokontrolerių programavimas. Nors virtualiai emuliuojamas COM prievadas yra sistemoje, bet reikiamo darbo taip ir
neatlieka. Pilnas COM jungties funkcionalumas taip ir nėra sukuriamas - gauname kažkokį hibridinį variantą. Prijungus Atmega mikrokontrolerį, prietaisas taip ir nerandamas. Išbandžius su tikra COM jungtimi, viskas kuo puikiausiai veikia. Taigi ši alternatyva yra visiškai nepanaudojama mūsų atveju, nes AVRDUDE nemoka dirbti ir siųsti signalų per šį adapterį. Tas
pats ir su USB-2-LPT
konverteriais. Taigi, belieka ieškoti kitų galimybių.
II. Geresnės alternatyvos
Dar vienas sprendimas – nusipirkti USB programatorių. Kinai juos štampuoja gana pigiai. Turbūt tai greičiausias ir pats optimaliausias tiek laiko, tiek išlaidų požiūriu variantas. USB
programatorių, skirtų Atmega programavimui, pilnos interneto parduotuvės, kaip
ebay.com įdedu net foto.
Tokį programatorių tenka naudoti ir pačiam – universalus dalykas, mažas ir
patogus, tereikia teisingai sujungti ir atlieka visą reikiamą darbą.
Šis paminėtas programatorius remiasi gerai žinomu USBasp modeliu, kurį sukūrė Thomas
Fischl. Labai populiarus tarp mėgėjų. Pats programatorius turi valdiklį - Atmega8 mikroprocesorių, kuris apdoroja
USB duomenis ir toliau perduoda SPI protokolo signalus. Dėka mikrovaldiklyje veikiančios programos, yra virtualiai emuliuojamas USB stekas, todėl galima bendrauti per USB protokolą. Kaip teigiama, programavimo greitis siekia 5kB/s. Yra
galimybė pačiam pasidaryti šį programatorių - pateikiama schema ir sukompiliuota
mikrokontrolerio programa autoriaus svetainėje. Jei neturite galimybės
nusipirkti iš eBay, tai verta apsvarstyti ir šią alternatyvą. Tačiau toks malonumas greičiausiai atsieis brangiau. Šiam projektui reikia diskretinių komponentų, kuriuos galima rasti elektroninių dalių
parduotuvėse www.lemona.lt, www.rcl.lt, www.evita.lt
ir pan. Tačiau yra šioks toks paradoksas – šiam programatoriui pasigaminti
reikia jau turėti kitą, COM arba LPT programatorių tam, kad galėtumėte įrašyti
USBasp kodą į Atmega8 mikrovaldiklį, kuris ir valdo patį programatorių.
Taigi, tai iš tiesų nedžiuginantis niuansas. Žinoma, kūrėjo svetainėje yra net galimybė nusipirkti Atmega lustą su jau įrašyta reikiama programa, tada viską gavus, belieka tik sulituoti dalis. Pradedančiajam viską išsiaiškinti
iš tikrųjų yra nemažas darbas, todėl tikiuosi pagelbės bent ši informacija.
Teko gaminti šį USBasp programatorių vien dėl edukacinių tikslų. Straipsnio pabaigoje pateikiu ir
savo projektų failus, jeigu vis dėlto nuspręsite pasigaminti. Visi komponentai schemoje yra reikalingi, nereikėtų dar labiau optimizuoti ar ką nors išmetinėti – tai jau
minimalus variantas. Zenerio diodai tinka 3.3-3.9V diapazone. Pradžioje galima susirinkti ir išbandyti ant testinės plokštės (breadboard).
III. Schemos failai
Aukščiau minėto USBasp programatoriaus modifikuotą mini versiją galite parsisiųsti iš žemiau esančios nuorodos. Projektas paruoštas EAGLE programa.
Komentarų nėra:
Rašyti komentarą