Robię urządzenie na USB - jak ominąć

Do tematu USB podchodzę jak do jeża. Chcę koledze zaprojektować urządzenie, które ma się komunikować na USB. Projekt komercyjny, urządzenie będzie sprzedawane w ilościach... może 10 szt/mies. Transmisja wolna, przesyłane będą pojedyncze bajty.. Zastanawiam się, jak to najprościej zrobić.

FT232R ze sterownikiem VCP na dzień dzisiejszy jest chyba cofaniem się - poszukiwanie w systemie odpowiedniego COMa i potem jakieś rozpoznanie urządzenia nie jest IMHO eleganckie. Użycie sterownika FTD2xx pozwala chyba na bardziej eleganckie wykrycie podłączonego urządzenia (poprzez nazwę), ale co jeśli ktoś do tego komputera wsadzi przejściówkę USB/UART też na FTDI? Załaduje nie ten sterownik i nie będzie widziany wirtualny port szeregowy?

Kolega proponował, żeby to było urządzenie HID. No tak, nawet na Atmedze16 takie coś uruchamiałem (a w zasadzie to uruchomiło mi się, bo wiele na kod i sposób działania nie spoglądałem), ale VID/PID tylko raczej do testów się nadawały.

Czytałem gdzieś (link zagubiony), że pojedynczą parę PID+VID można gdzieś kupić, ale to niby nie do końca jest zgodne z prawem. Kupno VID ze względu na koszty nie wchodzi w grę.

Macie jakieś swoje rozwiązania?

Reply to
Michał Lankosz
Loading thread data ...

Masz VID+PID + wbudowany sterownik. Jak chcesz pewność z czym gadać a nie wybierać po COM to szukasz dodatkowo po nazwie i producencie.

Nieprawda. Poczytaj o VOTI shared ID.

Reply to
Michoo

W dniu 2013-02-20 13:21, Michał Lankosz pisze:

A, zapomniałem napisać - jest niby sterownik CDM dla FTDI - uniwersalny. Czy on mi pomoże ominąć powyższy problem? Czyli po podłączeniu mojego urządzenia w systemie pojawia się port COM, ale program będzie się komunikował używając FTD2xx.dll, a nie portu COM?

Reply to
Michał Lankosz

Dlaczego chcesz się komunikować przez FTD2xx.dll a nie np libusb?

Reply to
Michoo

Nie znam się, ale czy libusb jest sterownikiem, który zainstaluje się przy pierwszym podłączeniu mojego urządzenia (oczywiście po wskazaniu odpowiednich plików) zamiast sterownika od FTDI i będzie używany też za każdym razem po włożeniu przejściówki USB/RS232 i ona też będzie działać? Czy to nie ta warstwa? O FTD2xx mówię dlatego, że jest gotowy przykład akurat pod Visual C++ w którym to kolega pisze całe oprogramowanie - w ten sposób liczę na bezbolesne uruchomienie układu. Przy okazji lubusb miałem kiedyś problem z ogarnięciem kompilacji OpenOCD. Co rusz czegoś brakowało, a narzędzi nie znałem, nie znam. Z HIDem może by było troszkę więcej pracy... a może nie. W każdym razie chodzi też o to, że mając praktycznie zerową wiedzę o USB i sterownikach systemu, chcę uruchomić program wysyłający jeden bajt i będący przykładem do przekazania osobie programującej w VC++.

A, no i nie wiem jaka jest licencja na libusb, co mówi w przypadku używania tej biblioteki w komercyjnym, zamkniętym kodzie?

Reply to
Michał Lankosz

Jeśli chodzi o sama komunikację polecam HID, jest libhid, dziala na Linux/Windows/MacOS. Szybka komunikacja, nie potrzeba sterowników po stronie hosta. Możesz wybrać mcu z usb albo zewnetrzny hid-uart np mcp2200 lub hid-spi mcp2210. Wtedy pid wezmiesz sobie z microchipa a vid sobie wymyśl, naprawde nic wielkiego się nie stanie.

Reply to
Marek

to może jednak WinUSB? nigdzie nie ma opisu jak powinnno wyglądać urządznenie pracujące z WinUSB, jak znajdziesz to koniecznie daj linka.

Reply to
identyfikator: 20040501

W dniu 2013-02-20 13:21, Michał Lankosz pisze:

JAk bedziesz robil na atmelu, to to moze ci wystarczy ?

formatting link
NXP ma tez podobny program, i chyba ST tez - warunkiem jest oczywiscie uzycie ich procesora.

Pozdr AK

Reply to
AK

Warto poswiecic kilka godzin i pobawic sie w zmiane vid i pid ft232

D2XX driver ze strony ftdi

Zmienia sie vid i pid w ft232 + taki sam w pliku ini, robisz komplet pasujacy do twojego urzadzenia vid i pid z pliku ini maja byc zgodne z vid i pid w eepromie ft232

u mnie nie ma konfliktu programatora z portem com i innymi urzadzeniami

MPROG od ftdi twoim rozwiazaniem

formatting link
sobie do eeproma ft232 nazwe firmy i produktu. Po podlaczeniu urzadzenia system krzyczy" wykryto urzadzenia super chruper" firmy xxx podaj lokalizacje sterownika lub wyszukaj automatycznie. Podajesz lokalizacje do zmodyfikowanego pliku ini. Mozesz wklepac numer seryjny do FT232, bibloteka D2XX ma procedure odczytu tego numeru, to jest opcja. Byc moze sa lepsze rozwiazania ale ja opisuje FT232 z punktu widzenia amatora. Jak zmienisz domyslny vid i pid w FT to dalsza jego zmiana jest upierdliwa ale da sie.

Reply to
jan kowalski

W dniu 2013-02-21 00:18, jan kowalski pisze:

Obecnie FT_PROG

Nawet wtedy, gdy już wcześniej było podpinane urządzenie o tym samym VID/PID tylko innej nazwie, poprosi o nowy sterownik? Czyli dwa urządzenia o takich samych vid/pid mogą pracować z różnymi sterownikami?

Że da się zmienić numerki to ja wiem i nawet zdaje się w jakimś JTAGu tak robiłem aby udawał inny. Pytanie - jakie numerki?

Reply to
Michał Lankosz

W dniu 21.02.2013 08:00, Michał Lankosz pisze:

Programowanie VID/PID w ftdi pod windowsem to jest masakra. Najpierw musisz zainstalować sterowniki pod oryginalny VID/PID, potem przeprogramować i znów instalować sterowniki pod nowy VID/PID. Jak masz więcej jak jedną sztukę do przeprogramowania, to można się pociąć suchą bułką. Dużo wygodniej można to zrobić pod linuksem (np. ft232r_prog)

Ściągnij sobie listę VIDów ze strony usb.org i wybierz VID jakiejś firmy, która już nie istnieje. Jak robisz pojedyncze sztuki to i tak się nie będziesz bawił w kupowanie VID.

formatting link

Reply to
Zbych

W dniu 2013-02-21 08:22, Zbych pisze:

Nie podoba mi się pomysł, mógłbym narazić firmę kolegi na nieprzyjemności. MAC ethernet też sobie pseudo losowo wybierałem, ale jakbym miał sprzedawać urządzenia to bym kupował numerki w układach Microchipa. Może dla USB też takie coś istnieje...

Reply to
Michał Lankosz

W dniu 21.02.2013 08:26, Michał Lankosz pisze:

A kto mu będzie robił koło pióra przy 10 szt/mies?

Reply to
Zbych

Użytkownik "jan kowalski" snipped-for-privacy@gmail.com napisał w wiadomości news: snipped-for-privacy@y9g2000vbb.googlegroups.com...

Tak, ale grzebiąc w plikach "inf" sterowników FTDI naruszasz ich oryginalność, co wiąże się z tym, że podpis cyfrowy nie będzie się zgadzał, a to oznacza, że będzie problem z instalacją takich sterowników w systemach 64-bitowych, wymagających sterowników podpisanych cyfrowo, chyba że użytkownikowi przed instalacją sterowników włączysz tryb testu sterowników, co objawi się niezbyt eleganckim pokazywaniem w prawym dolnym rogu pulpitu informacji o włączeniu tego trybu.

Reply to
Marek

W dniu 2013-02-20 13:21, Michał Lankosz pisze:

Znalazłem:

formatting link
formatting link
)

Reply to
Michał Lankosz

W dniu 2013-02-21 08:49, Marek pisze:

Dla urządzenia HID z dowolnymi numerkami nie będzie tego problemu, zgadza się? Powinno to urządzenie działać z Windowsami >98 oprócz serwerowych.

Reply to
Michał Lankosz

W dniu 2013-02-21 09:45 Michał Lankosz napisał(a):

Hehe, ale uparta firma. Dostali po łapach jak widać: "So we got some more letters and finally USB-ORG wrote a letter that they revoked our VID."

No nieźle, to już nie zweryfikują żadnego swojego urządzenia w USB-ORG.

Reply to
Adam Dybkowski

Użytkownik "Adam Dybkowski" <a1d2y3b4k5o6w7s8@g1m2a3i4l5.6c7o8m> napisał w wiadomości news:5126a4cf$0$26700$ snipped-for-privacy@news.neostrada.pl...

Celem technicznym jest tylko unikalność zestawów VID-PID. Celem urzędniczym jest sprzedaż wiązana - potrzebujesz jeden zestaw VID-PID - kup 65536 zestawów. Nie znajduję innego określenia jak praktyki monopolistyczne (jest jakiś ogólnoświatowy UOKiK?) Ogólnie z tej fajnej koncepcji wyłania się wizja nowego świata:

- chcesz kupić znaczek na list - tak ale tylko w pakietach po 65536 szt.,

- abonament na telefon - płatne z góry za 65536 miesięcy,

- chcesz kupić telewizor...

- chcesz kupić chleb... P.G.

Reply to
Piotr Gałka

W dniu 2013-02-22 10:29, Piotr Gałka pisze:

Zapewne chodziło o to, żeby jeden VID należał do jednej firmy. Odsprzedawanie PIDów powoduje, że VID nie jest tym co było w zamiarze. Rodzi to oczywiście wątpliwości:

Tak jak są hurtownie, tak powinny być sklepy detaliczne.

Reply to
Michał Lankosz

Chodziło o to, żeby urządzenia miały unikalne numery. Potem postanowiono dorobić na certyfikacji - chcesz mieć prawo do logo to musisz zapłacić nie tylko za badanie ale i za VID.

Wyobraź sobie, że jesteś producentem krzemu USB-OTG - wystarczy dopiąć gniazdo i uC po SPI. Dla każdego kto zamawia odpowiednią ilość alokujesz nowy PID. Wszystko jest ok. Ale gdy udostępnisz komuś PID, aby go użył z urządzeniem, które dostało już certyfikat pod inną parą VID+PID to jest to nielegalne.

Ale tu jest monopol + zakaz detalu. Jak potrzebowałeś adresów IP, których było za mało na zostanie LIRem (hurtowo) to szukałeś "sponsor LIRa" i wszystko było załatwione. Tu nie ma innej możliwości niż kupienie własnego VID.

Reply to
Michoo

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.