Skocz do zawartości

STM32USBcomp: komputer z STM32F103 do testowania aplikacji USB


Pomocna odpowiedź

Komputer STM32USBcomp powstał z myślą o zapewnieniu zoptymalizowanej, łatwej w użyciu i przy tym wygodnej platformy sprzętowej do testowania aplikacji USB bazujących na mikrokontrolerach z rodziny STM32. Opracowano go jako platformę do testowania aplikacji opisanych w książce „USB dla niewtajemniczonych, w przykładach na mikrokontrolery STM32”, w której przedstawiono jego przykładowe aplikacje.

Komputer STM32USBcomp jest w okresie promocyjnym dodawany bezpłatnie do książek „USB dla niewtajemniczonych, w przykładach na mikrokontrolery STM32” zakupionych w sklepie

KAMAMI.pl

Konstrukcja zestawu STM32USBcomp została podporządkowana charakterystyce typowych aplikacji wykorzystujących interfejs USB, którego standardową cechą jest rozróżnianie urządzeń w zależności od natężenia prądu pobieranego z hosta USB – dlatego na płytce zastosowano LED mocy, która spełnia rolę sztucznego obciążenia, sterowanego przez jedno z wyprowadzeń mikrokontrolera STM32.

Rozmieszczenie elementów wyposażenia komputera STM32USBcomp pokazano na fotografii:

Wiadomość dostarczona przez KAMAMI.pl

Używacie USB w swoich konstrukcjach?

Link to post
Share on other sites
Konstrukcja zestawu STM32USBcomp została podporządkowana charakterystyce typowych aplikacji wykorzystujących interfejs USB, którego standardową cechą jest rozróżnianie urządzeń w zależności od natężenia prądu pobieranego z hosta USB – dlatego na płytce zastosowano LED mocy, która spełnia rolę sztucznego obciążenia, sterowanego przez jedno z wyprowadzeń mikrokontrolera STM32.

Wiadomość dostarczona przez KAMAMI.pl

Używacie USB w swoich konstrukcjach?

Tak używamy 🙂 I pierwszy raz spotykamy się ze stwierdzeniem, że host USB rozróżnia urządzenia na podstawie pobieranego przez nie prądu. Prosze o weryfikację, bo delikatnie mówiąc to nieprawda 🙂

Link to post
Share on other sites

Istnieją dwa typy urządzeń - "low power" i "high power", które rozróżnia się w sposób opisany poniżej:

A unit load is defined as 100 mA in USB 2.0, and 150 mA in USB 3.0. A device may draw a maximum of 5 unit loads (500 mA) from a port in USB 2.0; 6 (900 mA) in USB 3.0. There are two types of devices: low-power and high-power. A low-power device draws at most 1 unit load, with minimum operating voltage of 4.4 V in USB 2.0, and 4 V in USB 3.0. A high-power device draws, at most, the maximum number of unit loads the standard permits. Every device functions initially as low-power—but may request high-power, and gets it if it's available on the providing bus.

źródło: http://en.wikipedia.org/wiki/Universal_Serial_Bus

Szczegóły znajdziesz w książce, więc może jest to dobry moment, żeby do niej zajrzeć 🙂

Pozdrawiam

Link to post
Share on other sites

Nawyk, z tego co widzę sam sobie udowodniłeś, że to jest błędne stwierdzenie.

Urządzenie żeby pobrać większy prąd powinno się zalogować do systemu i poprosić o odpowiednie uprawnienia. Host nie rozpoznaje typu urządzenia (co dla mnie oznacza sposób działania typu virtual com, mass storage etc.) w zależności od pobieranego prądu.

Link to post
Share on other sites
Szczegóły znajdziesz w książce, więc może jest to dobry moment, żeby do niej zajrzeć

Książkę oczywiście mam, bo tak sobie myślałem, że będzie jasno, prosto i przyjemnie. Moja opinia jest taka, że część teoretyczna jest super, rozjaśniła mi wiele wątpliwości. Natomiast im dalej tym gorzej. Wynika to chyba z faktu, że autor na siłę chciał pokazać jak wygląda USB we wszystkich podrodzinach STM32. Poproszę jeszcze raz o weryfikację poglądu nt. stwierdzenia

...którego standardową cechą jest rozróżnianie urządzeń w zależności od natężenia prądu pobieranego z hosta USB – dlatego na płytce zastosowano LED mocy, która spełnia rolę sztucznego obciążenia, sterowanego przez jedno z wyprowadzeń mikrokontrolera STM32

Host na podstawie prądu pobieranego przez urządzenie w żaden sposób nie jest go w stanie zidentyfikować 🙂 Powiem więcej, urządzenie podłączane do szyny USB w fazie wstępnej ma wręcz ograniczony dopuszczalny prąd właśnie przez hosta, póki host nie "zgodzi się" na to, żeby pobrać prąd ZADEKLAROWANY przez urządzenie. Gdyby tak nie było, mogłoby się okazać, że podłączenie kolejnego urządzenia USB spowoduje "katastrofę" systemu. Jeżeli host nie wyrazi zgody na przydział mocy, to urządzenie USB nie może pobrać więcej niż 100mA.

Cała dyskusja dotyczy oczywiście urządzenia Bus Powered 🙂

A jak twoim zdaniem na podstawie pobranego prądu host rozpoznaje urządzenia Self Powered?

Link to post
Share on other sites

Mechanik_PSC, nie wiem do końca co autor miał na myśli jednak pewny jest fakt, że zdanie nie jest fałszywe. Słowo rozróżniać nie jest synonimem identyfikować. Rozróżnia czyli widzi różnice, a nie identyfikuje czy rozpoznaje. Zatem USB host rozróżnia podłączane urządzenia ze względu na pobierany prąd czyli klasyfikuje urządzenia ze względu na pobierany prąd, co potwierdza cytat z wikipedii. Zdanie nie odnosi się do tego skąd host uzyskuje informacje na temat zapotrzebowania na prąd urządzenia.

Link to post
Share on other sites

gohandi, zwróć uwagę na cały przytoczony przeze mnie cytat. Host nie rozróżnia nawet trybu pracy urządzenia (LS, FS, HS) analizując pobierany przez nie prąd. Dioda mocy na płytce STM32USBcomp nie spełnia roli sztucznego obciążenia dla celów USB. Szkoda, że sterowanego programowo rezystora podciągającego na płytce nie da się np. za pomocą zworki przełączać pomiędzy D- a D+, albo nie zastosowano dwóch rezystorów podciągających, wtedy byłoby dokładnie widać jak host klasyfikuje urządzenia pod względem predkości transmisji. Hipotetycznie możemy mieć wiele identycznych pod względem poboru prądu urządzeń USB, w różnych predkościach transmisji, z różnymi metodami transmisji pakietów, spełniające 3 różne funkcje. Host po podłączeniu urządzenia USB do szyny, bez rozpoczęcia transmisji do urządzenia wie tylko, czy pracuje ono z szybkością LS czy FS. Nawet jeżeli urządzenie pracuje z prędkością HS wymagana jest już komunikacja host<->device.

Jedyne z czym mógłbym się zgodzić jeżeli chodzi o akademicką dyskusję nt. rozróżniania urządzeń USB na podstawie pobieranego prądu to to, że rezystor podciągający urządzenia USB dołączony do linii D- lub D+ pozwala hostowi stwierdzić, że w ogóle "coś zostało zmienione" na szynie i nalezy odpytać czy czasem nie pojawiło nowe urządzenie z adresem zerowym. Cała reszta to już komunikacja host<->device.

Link to post
Share on other sites

Mechanik_PSC, zwróciłem uwagę pisząc pierwszy post i podtrzymuje swoją wypowiedź🙂 Odnosząc się do niego jeszcze raz:

...którego standardową cechą jest rozróżnianie urządzeń w zależności od natężenia prądu pobieranego z hosta USB

Przypominając rozróżnia, a nie identyfikuje i zgodnie z wpisem z wiki

There are two types of devices: low-power and high-power. A low-power device draws at most 1 unit load, with minimum operating voltage of 4.4 V in USB 2.0, and 4 V in USB 3.0. A high-power device draws, at most

czyli zatem wyróżnia się dwa typy urządzeń, low power i high power. Co więcej przytoczony przez Ciebie cytat nic nie mówi o źródle informacji do klasyfikacji urządzenia jako lp czy hp. Dla tego założenie, że klasyfikowany jest poprzez pomiar pobieranego prądu po podłączeniu jest moim zdaniem błędne. Jak wiemy dzieje się to później już w trakcie komunikacji.

dlatego na płytce zastosowano LED mocy, która spełnia rolę sztucznego obciążenia, sterowanego przez jedno z wyprowadzeń mikrokontrolera STM32

W mojej ocenie diody LED tutaj służą jako sztuczne obciążenie, nie po to aby zostać rozpoznanym jako urządzenie high power tylko po tym jak już zostanie przydzielona nam etykieta high power to móc wywiązać się z wyproszonego zapotrzebowania na prąd.

W skrócie jest mowa o rozróżnianiu względem pobieranego prądu, a nie identyfikacji na podstawie pomiaru pobieranego prądu. Jak dla mnie cytat jest prawdziwy, chociaż pasowałoby go przeredagować, żeby nie było wątpliwości o czym jest mowa 🙂

Link to post
Share on other sites

gohandi, dziękuję za wytłumaczenie. Po Twoim poście pojąłem, co autor miał na myśli. Co do diód LED, a szczególnie diody mocy, bo głównie o nią chodzi. Nasz komputerek STM32USBcomp może poprosić hosta o przydział mocy high-power i nigdy nie włączyć wymienionej diody (nie pełni ona wtedy żadnej funkcji), o czym zresztą mówi instrukcja użytkowania STM32USBcomp

Na płytce znajdują się dwie „zwykłe” diody LED SMD oraz jedna LED mocy, która ma swój własny kontroler prądu w postaci układu scalonego STCS05 firmy STM. Diody nie mają ściśle określonego przeznaczenia, a o ich roli decyduje programista.

Niemniej jeszcze raz dziekuję za "oświecenie" 🙂

Link to post
Share on other sites
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.