logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak podłączyć AVR do USB bez konwertera? Zasilanie i sterowanie LED z USB

Samuraj 25 Gru 2005 18:57 7536 32
Najlepsze odpowiedzi LABEL_AI_GENERATED

Jak podłączyć AVR bezpośrednio do USB i zasilać go z USB, aby z PC sterować LED-em bez użycia zewnętrznego konwertera?

Tak — da się zrobić bez osobnego konwertera, implementując USB bezpośrednio w AVR i używając klasy HID, dzięki czemu urządzenie jest widziane jako standardowe HID i nie wymaga sterowników w systemie; w wątku podano, że taki projekt udało się uruchomić w kilka dni, z pełną komunikacją PC↔AVR i nawet sterowaniem PWM/wybranym portem [#2379487] Zasilanie z USB też jest możliwe, tylko trzeba pilnować poboru prądu, aby nie przekroczyć 500 mA [#2840283] W pokazanym rozwiązaniu linie D+ i D- były prowadzone przez rezystory 68 Ω, a VCC było podłączone bezpośrednio do +5 V z USB [#2840493] Jeśli wystarczy Ci komunikacja szeregowa zamiast HID, w wątku wskazano też gotowy projekt CDC Osamu Tamury z kodem źródłowym w C [#2861074]
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA
  • #1 2114432
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    Szukam gotowego rozwiązania lub wskazówek jak zrealizowac podłaczenie AVR'a do szyny USB.
    Wiem ze mozna zastosować konwerter ale to mnie nie zadowala.
    Za dużo elementów.
    Mi raczej chodzi o rozwiązanie takiego typu jak 8 LED podpięte do jednego z portu a z drugiej strony wtyk do USB.
    Wszystklo zasilane z portu USB, bez zbędnych układów.
    Zastanawiał się ktoś nad czym takim :?:
  • REKLAMA
  • REKLAMA
  • #4 2114499
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    PowerSwitch wyglada interesująco.
    Próbował ktoś tego, jakies opinie.
    A moze ktos cos jeszcze zanajdzie.
  • #5 2114506
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Samuraj napisał:
    PowerSwitch wyglada interesująco.
    Próbował ktoś tego, jakies opinie.
    A moze ktos cos jeszcze zanajdzie.
    A szukał kolega na forum? Bo chyba nie.
  • #6 2114540
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    Tak szukalem, większośc osób kieruje na strone IGora albo proponuje układy FTDI (FT232 i FT245).
    Zaznaczyłem że taki sposób mnie nie zadowala.
    Na stronie igora w jego projekcie jest wiele interesujących elemntów, ale niestety nie doszukałem sie zródła sterownika, firrmware to owszem ale zrdeł steronika pod XP niestety nie.
    Z drugej storny chyba warto zapytać co jakiś czas o to samo.
    Nie wszytko sie wie, a co jakiś czas zapewne ktoś wpanie na nowy genialny, nieznany nikomu pomysł.
  • #7 2114591
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Samuraj napisał:
    Tak szukalem, większośc osób kieruje na strone IGora albo proponuje układy FTDI (FT232 i FT245).
    Albo zaleca zastosowanie mikroprocesora z wbudowanym modułem do USB. Z drugiej strony tak czy inaczej nie ominie Ciebie pisanie drivera, można by spróbować popatrzeć w noty aplikacyjne określonych producentów mikroprocesorów, tam jest dużo wskazówek jak to zrobić. Pozatym kilkukrotnie było wspominany na forum fakt że drivery do HID można wykorzystać we własnej aplikacji.
  • #8 2114869
    tz_tomek
    Poziom 12  
    Posty: 34
    Ocena: 2
    Ukaład do obsługi USB jest bardzo dobrze opisany w książce: "Programowanie mikrokontrolerów avr w bascom"
  • #9 2116527
    me_super
    Poziom 29  
    Posty: 1692
    Pomógł: 1
    Ocena: 44
    Samuraj napisał:
    Tak szukalem, większośc osób kieruje na strone IGora albo proponuje układy FTDI (FT232 i FT245).
    Zaznaczyłem że taki sposób mnie nie zadowala.
    Na stronie igora w jego projekcie jest wiele interesujących elemntów, ale niestety nie doszukałem sie zródła sterownika, firrmware to owszem ale zrdeł steronika pod XP niestety nie.


    Jesteś absolutnie pewny? W pliku "USB to RS232 Application Note.zip" jest katalog Driver/Source a w nim jakieś źródła. M.in czytamy w readme.txt:

    ;***************************************************************************
    ;* U S B d r i v e r f o r A V R F A M I L Y U S B s t a c k
    ;*
    ;* File Name :"AVR309.sys"
    ;* Title :AVR309:USB driver for "USB to UART protocol converter"
    ;* Date :22.11.2003
    ;* Version :1.0
    ;* Target Platform :Wndows98, Windows2000, Windows XP
    ;* AUTHOR :Ing. Igor Cesko
    ;* Slovakia
    ;* cesko(_at_)internet.sk
    ;* http://www.cesko.host.sk
    ;*
    ;* DESCRIPTION:
    ;* USB driver for device "USB stack in AVR microcontrollers" (USB protocol
    ;* implementation into MCU with noUSB interface)
    ;* Device:
    ;* Universal USB interface (3x8-bit I/O port + RS232 serial line + EEPROM)
    ;* + added RS232 FIFO buffer
    ;*
    ;* DRIVER CUSTOMIZATION AND MODIFICATION:
    ;* This driver is modified example "isousb.sys" from
    ;* Microsoft Windows 2000 DDK (Driver Development Kit):
    ;* original "isousb.sys" is located in DDK sample directory:
    ;* "\NTDDK\src\wdm\usb\isousb"
    ;*
  • #10 2122593
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    No tak rzeczywiście jest, tyle, że nie w tej aplikacji, co potrzeba. Mniejsza z tym.
    Przekopałem całe forum (również gogle) w poszukiwaniu przykładów aplikacji niestety. Większość osób podaje takie wypowiedzi jak zajrzyj na WWW.usb.org – dokumentacji na 2 miesiące albo podają link na stronę Igora. Niestety projekt Igora mi nie leży – z tego, co się zorientowałem tam jest napisany sterownik od podstaw (w dodatku w Delphi) Delhi mi chodzi bardziej o prostą obsługę USB na podstawie HID.
    Przecież tak idzie transmisja w formie pytanie odpowiedz, czy naprawdę nikt tego nie robił i tylko się posiłkował układami TIDI.
    Wiem, że są dwie drogi HID albo własny sterownik. Wiem, jakie są ograniczenie jednego lub drugiego rozwiązania.

    Karti zaproponował ciekawy projekt PowerSwitch. Wszystko prawie jak należy mały atmelek, na wyjściu diody, program czysty i przejrzysty, wiadomo, co, do czego (nie jak u Igora), lecz nie ma róży bez kolców. Po stronie PC to koszmar, niestety w tym projekcie posiłkowano się Linuxem i to widzę ze jest jakoś bardziej czytelne niż pod Windowsem.
    Szkoda, że nie ma źródeł programu pod Windowsa. Czy windows stwarza takie ograniczenia?
    Nie chce od razu gotowego projektu, ale jakieś proste przykłady: odczytanie Vendor-ID, device name, wysyłani pojedynczych paczek danych etc.
    Jak bym to miał to bym powoli pewnie dochodził do tego co i gdzie piszczy.
    Proszę nie kierować mnie na strony z dokumentacją, bo niestety mój angielski nie jest na takim poziomie, aby czytać 300 stron.
    Czy naprawdę nikt nie podpinał bezpośrednio procesora do USB ??
    Przecież to daje takie możliwości.
    Na koniec nadmienie tylko, że jeśli już by były jakieś propozycje to prosiłbym w C zarówno po stronie PC jak i mikrokontrolera.
  • Pomocny post
    #11 2125658
    viki
    Poziom 16  
    Posty: 262
    Pomógł: 11
    Ocena: 3
    brawo Samuraj, tyle było speców a jak się człowiek chce dowiedzieć dokładnie to cisza. Najłatwiej jest napisać, że to już było. Temat super może jedanak coś w nim się ruszy
  • #12 2125919
    bis
    Poziom 21  
    Posty: 274
    Pomógł: 54
    Ocena: 3
    A może temet jest jest naprawdę obszerny i wcale nie istnieje proste i łatwe wyjaśnienie jak to zrobić. Cały problem z USB polega na tym że trzeba zrobić pełny i dobrze działający driver po stronie PC. Niezałeżnie od systemu operacyjnego zawsze trzeba się dołączać do istniejącego mechanizmu niskopoziomowej obsługi USB, a to wymaga dobrej znajomości (i wprawy) w tematach związanych z kernelem systemu operacyjnego. To się zdobywa cztytając masy dokumentacji i testując kolejne wersje oprogramowania. W Linuksie jest przynajmniej dostęp do wiedzy (ale nadal trzeba kopać i szukać), z Windows jest trochę inaczej. Microsoft niby daje Windows DDK ale temat USB jest tam wyjątkowo skąpo opisany. Natomiast jest kilka firm oferujących gotowe szkielety oprogramowania i pełną pomoc w pełnej implementacji drivera do Windows. Oczywiście jest to nieżle płatne. To chyba jest klucz zrozumienia dlaczego nie ma miliona gotowców w internecie. Podziwiam IGORA i jego stronę bo całkiem nieżle zaproponował jedną z możliwych dróg do ugryzienia tematu. Ale metoda jest to bardzo uproszczona i obejmująca naprawdę mały zakres możliwości USB.
    W necie jak dobrze poszukać to można znależć kilka szkieletów pełniejszych driverów, ale nadal trzeba mieć wiedzę jak z nich skorzystać (a w Windows to jest naprawdę skomplikowane). Przy uruchamianiu warto uzywać narzędzi z www.sysinternals.com(Bardzo polecam tę stronę, świetny monitor komunikatów generowanych w trybie kernela, a tam właśnie działa driver). Dodam że wiedza i umiejętność pisania działających driverów USB jest całkiem dobrze opłacana.
  • REKLAMA
  • #13 2126044
    Januszcz22
    Poziom 15  
    Posty: 119
    Pomógł: 9
    Ocena: 22
    Co do igora to tam masz źrudła wszystkiego, co prawda aplikacja jest napisana w Dalphi ale źrudła starowników masz w C. Mogę się mylić bo nie chce mi się instalować kompilatora ale z tego co widze to są tam źrudła plików AVR309.dll i AVR309.sys. Chodzi mi o te w katalogu \USB to RS232 Application Note\Driver\Source\ jeżeli to też nie jest to czego szukasz to mam nadzieje że podzielisz się na forum jak znajdziesz opis prostszego sposobu komunikacji z usb.
  • #14 2126280
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    Ja jednak będę się upierał dalej przy swoim, to chyba system wymusza na nas takie ograniczenia i podchodzenie do tematu od d.. strony.
    Weźmy na przykład taki prosty projekt, jakim jest PowerSwitch.
    Przeglądając listing programu sterującego nie widzę tam nic skomplikowanego

    
    	usb_init();
    	usb_find_busses();
    	usb_find_devices();
    	for(bus=usb_busses; bus; bus=bus->next){
    		for(dev=bus->devices; dev; dev=dev->next){
    			if(dev->descriptor.idVendor == USBDEV_VENDOR && dev->descriptor.idProduct == USBDEV_PRODUCT)
    				break;
    		}
    		if(dev)
    			break;
    	}
    	if(!dev){
    		fprintf(stderr, "Could not find USB device vendor=0x%x product=0x%x\n", USBDEV_VENDOR, USBDEV_PRODUCT);
    		exit(1);
    	}
    /* We have searched all devices on all busses for our USB device above. Now
     * try to open it and perform the vendor specific control operations for the
     * function requested by the user.
     */
    	handle = usb_open(dev);
    	if(!handle){
    		fprintf(stderr, "Error opening USB device PowerSwitch: %s\n", usb_strerror());
    		exit(1);
    	}
    

    Widać jak na dłoni, co i w jakiej kolejności idzie, inicjacja usb, pobranie uchwytu do urządzenie na podstawie USBDEV_VENDOR oraz USBDEV_PRODUCT, wyświetlenie komunikatu, że nie znaleziono urządzenia, następnie otworzenie urządzenia komunikat, że nie udało się, dalej już nie wklejałem, bo to nie ma sensu napomnę tylko ze jest tam wysłanie odpowiedniego komunikatu i odebranie odpowiedzi i odpowiednio zareagowanie na to (zainteresowani zajrzą do źródła, jeśli będzie taka potrzeba).
    I tego nam trzeba :!:
    A przeglądając przykłady projektów pod Windowsem to koszmar, ni ładu ni składu. Pełno jakiś bibliotek, driwerów, odwołanie się do innych plików itp.
    Większości młodych elektroników zaczynających przygodę z programowaniem potrzebuje tylko ułamka możliwości, jakie oferuje złącze USB.
    Nikt nie wymaga transferów nie wiadomo, jakich.
    Wystarczy pobrać uchwyt do urządzenia i wysłać mu pojedyncze bajty.
    Wiem, że to stwarza wiele problemów, bo zaraz ktoś będzie chciał, wysylac masę danych, to znowu transfer będzie za wolny itp. Takim osobom proponowałbym wczytanie się w dokumentacje i podpatrzenie jak inni to zrobili.
    Ale większość na początek potrzebuje podpiąć diodę do mikrokontrolera a od strony peceta wstawić Checkbox i ją zapałać, a mikrokontroler ma w odpowiedni sposób zareagować.
    Z wieloma osobami rozmawiałem na ten temat i każdy przyznaje mi racje, dziwie się ze nikt nie wpadł na ten pomysł, aby w tak prosty sposób wykorzystać ten typ złącza.
    Nie wiem gdzie jest błąd w moim rozumowaniu, ale wydaje mi się, że nie powinno to być aż tak skomplikowane. Kwestia tego, aby mądrzy ludzie usiedli nad tym i wykrzesali z tych tysięcy stron dokumentacji parę linijek, jakich nam trzeba.
  • #15 2126433
    bis
    Poziom 21  
    Posty: 274
    Pomógł: 54
    Ocena: 3
    Nie popełniasz błędu w rozumowaniu. Natomiast niedoszacowujesz nakładu pracy i nie zauważasz ilości warstw oprogramowania które kryje się za prostym określeniem "uchwyt do urządzenia" w Windows. USB to jest szyna sprzętowa ale wszystkie dalsze funkcje (plug and play, synchronizacja itd) są realizowane programowo. W Windows jest to mocno skomplikowane. Jeżeli tworzysz nowe urządzenie to musisz zrobic wszystko czego wymaga system aby chociaż sie pojawiło w zasobach. odrębna sprawa to co chcesz uzyskac jako "uchwyt", jest tego wiele rodzajów a dla tego wybranego to ty musisz napisać wszystkie wymagane funkcje. I tak dalej. To co zaproponował IGOR jest naprawdę proste i większość pracy jest już zrobiona. I świetnie sie nadaje do tego co chcesz zrobić. W Linuksie jest odrobinę prościej, ale za tymi prostymi wywołaniami nadal siedzi kupa kodu. To się nieda zrobić kilkoma magicznymi "linijkami kodu" które ktoś podrzuci. W USB urządzenia są unikalne i każde wymaga swojego drivera standaryzującego do określonej klasy zastosowania. W niektórych kalsach są pewne "standardy"(np. pamięć masowa, czytnik kart chipowych) i wtedy można się oprzeć na stndardowym driverze istniejącym w systemie (ale nie jest to wymagane) ale wtedy trzeba zrealizować wszystkie funkcjonalności na poziomie komunikacji i protokołów USB dla tego "standardu" (Też kupa pracy ale po stronie urządzenia).
  • #16 2144658
    viki
    Poziom 16  
    Posty: 262
    Pomógł: 11
    Ocena: 3
    Znalazłem to na necie. Niestety nie pamiętam linka. Bardzo wyczerpujące wprowadzenie do interfejsu usb - po polsku ;)
    Załączniki:
    • usb.pdf (374.99 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #17 2379487
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    Powracam do tematu, bo widzę ze nikt nic konkretnego nie podał, same ogólniki.
    Viki ta dokumentacja jest za uboga, zawiera wiele rzeczy, które są zbędne, i wynikają z samej budowy USB.
    Bis jesteś w błędzie mówiąc ze nie da się tego zrobić kilkoma magicznymi linijkami, ale o tym później, mowa o tym ze urządzenia są unikalne i każde wymaga specjalnego sterownika to tez nie tak do końca – można użyć HID’a. Ze „kupa” pracy też się zgodzę, ale wszystko idzie zrobić, mi to zajęło 4 dni. W sumie około 30godzin, a jeśli bym miał sensowną dokumentacje i znal angielski na lepszym poziomie pewnie zeszłoby jeszcze mniej.
    I tak po tych 4 dniach mam w pełni pracujący transfer z i do układu, w systemie urządzenie jest widziane jako „Urządzenie standardu HID” i jak pisałem wcześniej nie wymaga żadnych sterowników. Całość kodu zmieściła się w małym Atmelu i zostało jeszcze trochę miejsca a wykorzystane są tylko 3 nóżki układu.
    Niestety projekt Igora do niczego się nie przyczynił, początkowo nawet wprowadził niepotrzebne zamieszanie. Na początku zrobiłem układ z jednym LED’em na wyjściu i aplikacje do sterowania zapal/zgaś. Potem jak lepiej poznałem protokół i jak to się wszystko je mogę sterować PWM’em i regulować jasność. Nie soji na przeszkodzie, aby sterować konkretnym portem albo rejestrem mikrokontrolera. Jeszcze dopieszczam projekt ale już dziś mogę powiedzieć ze UDAŁO SIĘ :D
    Jeśli będzie zainteresowanie mogę wstawić screeny, bo na tym etapie nie jest to do przekazania :)
  • REKLAMA
  • #20 2381163
    Nawigator
    Poziom 33  
    Posty: 1923
    Pomógł: 167
    Ocena: 160
    Tyle że na końcu tej noty przeczytasz:
    7 About the Author
    Ing. Igor Cesko
    Slovakia
    www.cesko.host.sk
    cesko(_at_)internet.sk
    a o tym była już mowa. Ale nota pożyteczna bo zebrany temat w jednym miejscu.
    A swoją drogą ja też przymierzam się do usb ale potrzebuję tylko połączenie z PC zamiast UARTa np. do testów oprogramowania avr z laptopa gdzie nie ma portu COM. Czy to jest łatwiejsze? Może jest już driver w Windows?
    Jest też atmel avr z portem usb ale pewnie będzie drogi i nie wiem czy do kupienia.
    Pozdr. N.
  • #22 2819845
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    Niestety projekt z lampką na USB był komercyjny i źródełek nie mogę udostępnić. Zainteresowanym mogę wysłać binarke zraz z programem.
  • #25 2839737
    greatlukas
    Poziom 14  
    Posty: 122
    Pomógł: 3
    Ocena: 7
    Samuraj mam pytanie
    jak wygląda komunikacja zaraz po włączeniu wtyczki do portu
    tzn PC wykrywa że coś się podpięło do kompa i wysyła rozpoczyna komunikacje
    no i teraz niewiadoma :]
    PC wysyła rządanie o deskrypcje (info o urządzeniu)
    
    PC->AVR - | Sync | PID | ADDR | ENDP | CRC5   | EOP |
    

    PID = 1101 - Setup Token
    ADDR = 0 (7 bitów ?) bo jeszcze nie zna adresu urządzenia
    ENDP = 0 (4 bity) bo to jest Setup Token
    CRC5 - to crc z pakietu
    EOP - End Of Packet - dwie linie przez czas 2 bitów w stanie J (w transmisji Low J to stan niski)
    
    PC->AVR - | Sync | PID |       Data0      | CRC16 | EOP |
    

    PID = 0011 (Data0)
    Data0 = ?? (Device Description Request) czy tu jest tylko jedno rządanie, a potem jest transmisja tych wszystkich danych? czy o każdą PC "się pyta" oddzielnie
    
    AVR->PC - | Sync | PID | EOP |
    

    PID=0010 - ACK

    i potem "chila" na przetworzenie przez atmege rządania i PC wysyła info że już atmega może już nadawać

    
    PC->AVR - | Sync | PID | ADDR | ENDP | CRC5 | EOP|
    

    PID = 1001 - IN Token
    ADDR = 0
    ENDP=0
    
    AVR->PC - | Sync | PID | Data1 | CRC16 | EOP |
    

    PID = 1011 - Data1
    Data1 = ?? (transmisja LOW czyli 8 bitów - tylko co tu wysyłać?? było rządanie o deskrypcję, bLength, bDescriptorType, bcdUSB... ??)
    
    PC->AVR - | Sync | PID | EOP |
    

    PID = 0010 - ACK

    czy dobrze rozumuje ?? no i główne pytanie to jak wysłać te wszystkie dane (Description - tam jest kilkanaście zmiennych) z AVR do PC ??

    Pozdrawiam
  • #26 2839859
    august_a
    Poziom 21  
    Posty: 572
    Pomógł: 32
    Ocena: 4
    Sprawdz to:
    Załączniki:
    • AVR-CDC.2006-06-28.rar (109.18 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #27 2840268
    greatlukas
    Poziom 14  
    Posty: 122
    Pomógł: 3
    Ocena: 7
    pytanie do samuraja - czy robiłeś swoją komunikacje na podstawie tej biblioteki usbdrv? czy robiłeś coś swojego?
    I jeszcze jedno :] każdy układ jaki znajde zazwyczaj zasilany jest z USB (5V) przez stabilizator do 3.x V - pytanei, czy można do atmegi zastosować zasilanie bezpośrednio z USB (lub zewnętrzne) a na liniach D+ i D- piąć zenerki 3,3V ? czy ktoś już tego próbował?
  • #28 2840283
    Samuraj
    Poziom 35  
    Posty: 2792
    Pomógł: 286
    Ocena: 619
    Biblioteki pisałem sam, ale nie ukrywam ze miałem pomoce w postaci innych projektów - choć by Igora. Podobnie ma się rzecz jeśli chodzi o aplikacje na pc. Ale to juz był pikuś.
    Zasilanie z USB - żaden problem, tylko trzeba uważać aby nie przeciążyć portu max 500mA. Co prawda zasiliłem całość +5V a nie 3,3 ale w tym przypadku i tak nie było problemu bo nie stosowałem nic na niższe napięcie.
  • #29 2840462
    greatlukas
    Poziom 14  
    Posty: 122
    Pomógł: 3
    Ocena: 7
    Wedlug specyfikacji USB na lichach D+ i D- nie powinno być napięcie większe niż 3,6V i żeby rezysotry podciągające podpinać też pod 3,6V a u ciebie chodziło na 5V ?? Jak tak to spoko - zawsze to mniej elementów :]

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy realizacji bezpośredniego podłączenia mikrokontrolera AVR do magistrali USB bez użycia konwertera, zasilania i sterowania diod LED z portu USB. Poruszono kwestie implementacji USB w AVR, w tym wykorzystania standardu HID, który umożliwia komunikację bez konieczności pisania własnych sterowników systemowych. Wskazano na projekt PowerSwitch jako przykład prostego układu z Atmelem, który realizuje sterowanie LED przez USB, jednak z trudnościami po stronie oprogramowania PC. Omówiono również dostępne źródła i biblioteki, m.in. projekty Igora Cesko (www.cesko.host.sk) oraz bibliotekę usbdrv, a także przykłady implementacji USB w Atmel ATtiny2313. Podkreślono, że pełna obsługa USB wymaga napisania lub wykorzystania sterowników, a w systemach Windows jest to szczególnie skomplikowane. Zasugerowano, że zasilanie mikrokontrolera można realizować bezpośrednio z portu USB 5V, a linie D+ i D- zabezpieczać rezystorami i diodami Zenera do 3,3V. Wspomniano także o alternatywnych rozwiązaniach z mikrokontrolerami wyposażonymi w natywny interfejs USB. Dyskusja zawierała szczegółowe opisy protokołu USB, pakietów i komunikacji inicjowanej przez PC, a także praktyczne uwagi dotyczące implementacji i testów.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA