AVR i implementacja USB HOST

Aug 30, 2007 26 Replies

Witam



Interesuje mnie implementacja hosta USB 1.1 na AVR. Chodzi o możliwość podłączenia urządzeń HID, pamięci, aparatu foto, itp. Google pomogło mi na razie znaleźć tylko ogólne informacje nt USB, z których na początek niewiele wynika.



Bardzo proszę o jakieś linki / materiały nt implementacji USB 1.1, opisu standardu, marzeniem byłby przykładowy kod w C, ASM, BASCOMIE ( o ile w tym ostatnim przypadku to w ogóle możliwe), ew. informacje od czego zacząć i jak się za to zabrać.



Docelowo planuję wgrać to na ATTINY, ew na ATMEGAxx jeśli ATTINY okaże się niewystarczające.



Pierwszym pomysłem było podpięcie urządzenia do USB i podgląd zdarzeń na analizatorze stanow logicznych, ew jakieś rozwiązanie programowe (jest parę programów do podsłuchu usb) w celu "rozpoznania" komend i powtórzenia ich na AVR. Ma to jakiś sens?



Z gory dzięki za pomoc. Paweł



PS. Widziałem AT90USB... To raczej ostatnia rzecz brana pod uwagę... Słabo z dostępnością no i cena spora.


pwl napisał(a):

formatting link

Krzysztof Piecuch napisał(a):

Na poczatek uzyteczne moze byc

formatting link
dokumenty z
formatting link

Zaczac nalezy od przejzenie dokumentacji, nastepnie zalecalbym poszukanie gotwego kodu np.

formatting link
jest niestety dosc zlozone - szczegolnie strona "servera".

IMHO niewielki - protokoly komunikacyjne typowych urzadzen USB sa dobrze zdefiniowane i opisane w dokumentacji (patrz link do

formatting link
Pozdrawiam GRG

inaczej IMHO nie masz wielkich szans..

albo uprosc sobie zycie i uzyj Vinculum FTDI. kosztuje jakies 8EUR w detalu. dodajesz ten chip do dowolnego proca i na nim masz nie dosc ze implementacje hosta, to jeszcze obsluge systemu plikow FAT i inne uzyteczne rzeczy.. mam probki tego chipu, ale jeszcze sie nim nie bawilem.. bawil sie ktos z Was nim? jak wrazenia?

VNC1L - 37zł netto AT90USB1287-16AU - 32zł netto

Dostępność albo podobna albo jeszcze gorsza :(

Mimo to.. bardzo ciekawy chip :)

Pozdrawiam Paweł

Dzięki! Właśnie o to chodziło :) Zdaję sobie sprawę ze złożoności "serwera", ale też w przypadku, gdy tylko jedno urządzenie będzie podpięte w danym czasie, na pewno będzie można uprościć aplikację.

Na razie zabieram się za lekturę :)

Pozdrawiam Paweł

pwl pisze:

Możesz od razu o tym zapomnieć. W trybie "client" na Atmega maksymalnie da się wyciągnąć transfery rzędu 5kB/s co dalekie jest od limitu 192kB/s (1.5Mb/s). "Hosta" raczej nie uda się w ogóle odpalić.

Dariusz Żołna

pwl pisze:

Do HID programowa implementacja powinna wystarczyć:

formatting link
w.

naprawde nie ma? cene znasz wiec jak jest?

formatting link
fajnie bedzie jak uda ci sie zrobic hosta w sofcie ale moim zdaniem marne szanse... moze gdyby to byl jakis sx albo propeller... A moze uda sie obudowac to kilkoma TTL i najbardziej krytyczne sciezki czasowe zrobic na jakiejs prostej logice? Powodzenia.

przy okazji: a jest tu kto¶ kto napisa³ i uruchomi³ jakie¶ urz±dzenie usb (podrzêdne nie hosta)?

Jeszcze jedno pytanie.. co myślicie o wykorzystaniu ARM zamiast AVR? Taki LPC2141FBD64 ma już znośną cenę i jest wyposażony w USB 2.0 (chociaż nie znalazłem magicznego słówka HOST). Nadaj się?

Paweł

pwl pisze:

On może pracować tylko jako device.

identyfikator: 20040501 pisze:

Ja, ale nie sam napisałem tylko skorzystałem z darmowej biblioteki. Niestety jej autorzy zapomnieli poinformować o bardzo istotnej rzeczy - osiągalne transfery są bardzo niskie, na poziomie 5-6kB/s i nic się nie da z tym zrobić (w każdym razie nie na zwykłym AVR).

Dariusz Żołna

pewno siê nie podzielisz ¼ród³em? mówisz o tym LibUsb-Win32?

U¿ytkownik "identyfikator: 20040501" snipped-for-privacy@onet.eu napisa³ w wiadomo¶ci news:fb6qvd$ojn$ snipped-for-privacy@nemesis.news.tpi.pl...

Ja - tez sie pochwale;] Urzadzenie emuluje klawiature HID i odczytuje kody pastylek DS1990. Calosc na ATTiny45 plus program Igora Cesko z drobnymi modyfikacjami (co ciekawe wszystkie projekty zwiazane z softwarowym USB bazuja wlasnie na programie Igora Cesko) . To chyba najtanszy sposob na komunikacje USB. Wracajac do tematu - mysle ze spokojnie da sie stworzyc implementacje hosta na AVR. pozdrawiam

identyfikator: 20040501 pisze:

Kod na AVR jest tutaj (niewiele go modyfikowałem):

formatting link
Mogę się podzielić prostym kodem na PC.

Dariusz Żołna

U¿ytkownik "Greg(G.Kasprowicz)" <Grzegorz.Kasprowicz_usunto snipped-for-privacy@CERN.CH napisa³ w wiadomo¶ci news:fb6iuu$oqm$ snipped-for-privacy@inews.gazeta.pl...

Tak, bardzo sympatyczny uklad. Dziala tak jak opisuja. Nie wiadamo tylko jaki jest mozliwy do osiagniecia transfer. Ja zapisuje tylko pliki tekstowe wiec nie potrzebuje duzych predkosci i nie chcialo mi sie pod tym kontem badac ukladu. Generalnie juz sama mozliwosc podpiecia np. pendriva do dowolnego mikrokontrolera jest rewelacyjna.

JJJK

pytanie czy taki pendrive bedzie chcial dzialac na najnizszej predkosci (ok

1MHz)

to jak mo¿na prosiæ o podes³anie? snipped-for-privacy@go2.pl

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required