You are on page 1of 1

NOTATNIK KONSTRUKTORA

Biblioteka AVRUSB

Programowy interfejs USB


w AVR
Interfejs USB ju na stae zagoci w prawie kadym urzdzeniu,
ktre ma komunikowa si z komputerem PC. Do implementacji
interfejsu USB we wasnych urzdzeniach dostpne s rne
ukady konwerterw poredniczcych w wymianie informacji midzy
mikrokontrolerem a komputerem z interfejsem USB. Dostpne s
rwnie mikrokontrolery z ju wbudowanym interfejsem USB. A jeli
oba z omawianych rozwiza s z jakiego powodu niemoliwe do
zastosowania, to rwnie mona zaimplementowa USB w sposb
programowy. Wanie w tym celu powstaa biblioteka AVRUSB
przeznaczona dla mikrokontrolerw z rodziny AVR.
Bibliotek AVRUSB mona pobra ze
strony http://www.obdev.at/products/avrusb/
index.html. Umoliwia ona emulacj interfejsu USB 1.1 i przeznaczona jest dla dowolnych mikrokontrolerw AVR posiadajcych
co najmniej 2 kB pamici FLASH i 128 bajtw pamici RAM. Co wane, do emulacji
interfejsu nie s potrzebne adne sprztowe
UART-y czy Timery. Naley tylko zapewni
taktowanie mikrokontrolera czstotliwoci co najmniej 12 MHz. Mikrokontroler
moe rwnie by taktowany wewntrznym
oscylatorem o czstotliwoci 12,8 MHz lub
16,5 MHz. Oprogramowanie wykonano w jzyku C.

ternetowej producenta biblioteki AVRUSB


dostpne s liczne przykady projektw
z zaimplementowanym programowym interfejsem USB. Rwnie w spakowanym archiwum biblioteki mona znale kilka ciekawych przykadw jej uycia, a wrd nich
wymieni mona przykad nadawania oraz
odbierania danych przez USB, urzdzenia
HID (np. klawiatury czy myszki).

Podsumowanie
Du zalet implementacji programowego interfejsu USB jest jego niski koszt implementacji przy do duych moliwociach
wykorzystania. Dziki bibliotece AVRUSB
mona interfejs USB zaimplementowa nawet ju w dziaajcych urzdzeniach, rozbudowujc ich moliwoci komunikacyjne.
Programowy interfejs USB mona wykorzysta w wielu urzdzeniach do akwizycji
danych, w programatorach czy innych urzdzeniach, ktre musz si komunikowa
z komputerem. Co wane, biblioteka dostpna jest na licencji GPL i mona j dostosowa do wasnych potrzeb. Moim zdaniem,
przy implementacji interfejsu USB we wasnym urzdzeniu warto rozway to tanie
i efektywne rozwizanie.

Marcin Wizania, EP
marcin.wiazania@ep.com.pl

Implementacja interfejsu USB


Na rys. 1 pokazano przykad elektrycznej implementacji programowanego interfejsu USB dla popularnego mikrokontrolera
ATmega8. Diody D1, D2 zmniejszaj napicie zasilajce mikrokontroler do wartoci
okoo 3,8 V. Jest to niezbdne dla poprawnej
pracy emulowanego interfejsu USB. Zamiast
diod mona rwnie zastosowa stabilizator
o napiciu wyjciowym 3,3 V. Jeli mikrokontroler musi by zasilany napiciem 5 V,
to naley wykona odpowiedni konwerter
napi. Proste rozwizania czsto wykorzystuj diody Zenera (o napiciu stabilizacji
3,6 V), jednak trzeba powiedzie, e nie
jest to profesjonalny sposb konwersji. Co
ciekawe, programowy interfejs USB mona
rwnie zaimplementowa w mikrokontrolerach AVR majcych tylko 8 wyprowadze
(np. ATtiny45), co pokazano na rys. 2. Zaimplementowany programowy interfejs USB
moe poprawnie wsppracowa z rnymi
systemami operacyjnymi, takimi jak Windows, MAC OS oraz Linux. Na stronie inELEKTRONIKA PRAKTYCZNA 6/2009

Rys. 1. Schemat pocze programowego interfejsu USB

Rys. 2. Programowy interfejs USB w ATTiny45

67

You might also like