port USB

May 23, 2006 14 Replies

witam



czy zbudowanie urz±dzenia i komunikowanie siê z nim poprzez port usb jest du¿o trudniejsze ni¿ wykorzystanie portu szeregowego?



chodzi mi o to, ¿e na przyk³ad mam zbudowaæ urz±dzenie, które bêdzie wysy³aæ do kompa jakie¶ dane i odbieraæ od kompa jakie¶ parametry. Czy je¿eli zechcê zrobiæ to z wykorzystaniem portu usb (co by³oby mi na rêkê) to bardzo utrudniê sobie ¿ycie?



Dodam jeszcze, ¿e aplikacjê musia³bym sam napisaæ - nie ma mowy o wykorzystaniu gotowca.



pozdrawiam



U¿ytkownik "Sirtap" <sirtap snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:e4vu3e$hbp$ snipped-for-privacy@inews.gazeta.pl...

(...)

Najprostszym rozwi±zaniem bêdzie wsadzenie do urz±dzenia uk³adu konwertera USB -> UART (np. FT232). Wówczas urz±dzenie pod³±czone przez USB do PC bêdzie widziane jako wirtualny COM, tak wiêc od strony oprogramowania jednej i drugiej strony masz doczynienia tylko z "RS-em" (USB ciê wogóle nie obchodzi).

Bardziej eleganckim rozwi±zaniem (i daj±cym wiêksze mo¿liwo¶ci) bêdzie wykorzystanie procka z wbudowanym kontrolerem USB-device. Wówczas nie obêdzie siê chyba bez napisania dedykowanego sterownika na PC, no chyba ¿e Twoje urz±dzenie da siê poci±gn±æ pod któr±¶ z klas USB.

Pzdr, Maciek Wywrocki

U¿ytkownik "Maciej Wywrocki" napisa³ w wiadomo¶ci

Tia. Wlasnie wygalda na to, ze moj dyplom zaczyna przybierac niepokojace rozmiary (sterownik dla USB nie byl wkalkulowany ;) ).

Echhh, dobrze ze mam jeszcze rok czasu, ale jakos nie widze jak na razie szans na zabranie sie za to :|

a niema zadnych standadow ? napraewde trzeba pisac samemu sterownik ?? producenci procków nic nie dostarczaja ??

U¿ytkownik "Konrad Rokicki" napisa³ w wiadomo¶ci

Szukalem - w sumie na razie niewiele. Mysle, ze jest jakas szansa zakwalifikowac uklad do ktorejs z istniejacych klas i sprobowac obsluzyc w ten sposob, ale czy cos z tego bedzie, to w wakacje sprawdze ;)

U¿ytkownik "Konrad Rokicki" napisa³ w wiadomo¶ci

Szukalem - w sumie na razie niewiele - ale nic takiego nie znalazlem. Co gorsza - nie widzialem nawet przykladow dla ARMa, procz tego jednego jedynego. Mysle, ze jest jakas szansa zakwalifikowac uklad do ktorejs z istniejacych klas i sprobowac obsluzyc w ten sposob, ale czy cos z tego bedzie, to w wakacje sprawdze ;)

Maciej Wywrocki napisal:

Najprostszym (a calkiem mozliwe ze i najtanszym) rozwiazaniem bylby zakup kabla usb<->rs232 i podlaczenie urzadznia za jego posrednictwem. Jwesli jednak autor zdecyduje sie na uzycie chipa FTDI (np. zeby to ladnie w opisie projektu wygladalo :) AFAIR mozna przy pomocy eeproma zmienic VID, PID i string z opisem tak ze aplikacja bedzie mogla automatycznie wyszukac urzadzenia odpowiedniego typu. GRG

Polecam ci wykorzystanie FTDI232 lub pochodnych. Ze strony procka komunikujesz sie z tym przez zwykly RS232, ze strony kompa masz doskonale drivery (emulujace zarowno rs232 jak i mozliwosc bezposredniej komunikacji bez tworzenia virtualnych portow COM). Latwo to zintegrowac z wlasna aplikacja napisana w Windows lub pod Linuksem. IMHO stopien zlozonosci porownywalny z wykorzystnaiem RS232. A nowe chipy FTDI nie wymagaja zadnych dodatkowych elementow zewnetrznych.

mozesz posilkowac sie programowymi USB realizowanymi na bazie uC AVR, sa co najmniej dwie implementacje z driverami dla windows. Rozwiazanie znacznie tansze niz FTDI i do wielu zastosowan wystarczajace.

Nie tak dawno temu robili¶my z koleg± dyplom pt. "Implementacja sprzêtowa protoko³u transmisji USB 2.0 w technologii uk³adów programowalnych FPGA". Stworzyli¶my nasze w³asne urz±dzenie i musieli¶my pokazaæ jak siê komunikuje z PC - ta czê¶æ pracy by³a ju¿ tylko dodatkiem, ale koniecznym. Skorzystali¶my z 30-dniowej wesji oprogramowania Jungo WinDriver - dziêki niemu wygenerowali¶my sterownik do naszego urz±dzenia i plik .inf. Oprogramowanie na komputer PC napisali¶my w Borland C++ Builder. Jungo daje do¶æ ³atwe gotowe do wykorzystania bardzo wysokopoziomowe API. Polecam zainteresowanie siê :-)

Pozdrawiam Piotr Wysocki email: snipped-for-privacy@dgt.com.pl There are only 10 types of people in the world: Those who can uderstand binary, and those who don't.

Konrad Rokicki napisał(a):

Polecam procki

formatting link
- modele C8051F34x. Mają wbudowane USB i jest to dość szeroko opisane w notach aplikacyjnych. Noty aplikacyjne mają gotowe przykłady firmware i sterowników, tylko że firmware jest pod Keil C - ale udało mi się znaleźć w sieci przeróbkę na SDCC.

Jeśli wystarczy prosta komunikacja, to najlepiej zaprogramować procka jako urządzenie klasy HID - nie trzeba żadnych sterowników. Wspomniany przeze mnie przykład na SDCC od pierwszego podejścia się skompilował, zaprogramował i nawiązał komunikację z Windows.

Pozdrowienia, MKi

U¿ytkownik "mIrO"

poszukaj na:

formatting link
a dok³adnie:
formatting link
autor wykorzystuje FT8U245BM do USB, i Atmega161. Masz soft, schematy, opis. BTW ten projekt jest na tyle uniwersalny, ¿e du¿o siê mo¿na nauczyæ. P.

mIrO napisał(a):

Zastosuj np. AT91SAM7S256 albo AT91RM9200 - dla tych procesorów Atmel daje kod źródłowy przykładowego sterownika klasy CDC (od strony uC). Do tego na pececie jest wykorzystywany standardowy sterownik usbser.sys wraz z przykładowym plikiem .inf i już widzimy nasz procesor jako kolejny wirtualny port COM albo modem (spotkałem się z dwoma rozwiązaniami - różne są tylko pliki .inf dla Windows). Z współpracą tego uC przez USB z Linuxem też nie ma problemów - port widać jako /dev/ttyUSB0 i można z nim zagadać dowolną aplikacją, np. minicom'em.

U¿ytkownik "Adam Dybkowski" napisa³ w wiadomo¶ci

dzieki za uwagi, mam ten pierwszy kontroler, ale jeszcze nie mialem czasu nawet poszukac, co atmel dla niego proponuje.

Nadmienie tylko, ze rodzaj IO konwertera nie determinuje rodzaju sterownika. Np. FT245BM ma 8-bit IO (nie UART), a tez moze byc widziany przez PC jako VCOM.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required