Forum: Mikrocontroller und Digitale Elektronik USB device-erkennung


von ferrit (Gast)


Lesenswert?

Hallo,
Wie erkennt der USB-Host, das ein neues USB-Device eingesteckt wurde?
Ich habe am Oszi gesehen, die Spannung an den differienziellen Leitungen 
0V sind, solange kein gerät angeschlossen wurde. Wird eines eingesteckt, 
dann wird die Spannung kurz auf High gezogen (3,3V?) und dann beginnt 
die Übertragung.
Wer aber beginnt die Übertragung, das Device oder Der Host?

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

https://www.beyondlogic.org/usbnutshell/usb2.shtml
Die Erkennung dürfte zunächst über das Vorhandensein eines pull-up 
Widerstands erfolgen, je nach Version USB 1 oder 2 hier in Fig. 2 und 3 
dargestellt.

von Walter T. (nicolas)


Lesenswert?

ferrit schrieb:
> Wie erkennt der USB-Host, das ein neues USB-Device eingesteckt wurde?

Pull-Up.

ferrit schrieb:
> Wer aber beginnt die Übertragung, das Device oder Der Host?

Der Host.

Diese und alle weiteren Fragen hättest Du aber sogar im 
Wikipedia-Artikel beschrieben gefunden.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Das USB-Gerät enthält einen PullUp auf der D+ oder D- -Leitung bei 
FullSpeed bzw. LowSpeed. Der PC erkennt den Stromfluss auf der Leitung 
und schaltet das Gerät ein. Entfernen des Pullups wird als Trennen des 
Geräts erkannt. Manche Mikrocontroller mit USB-Peripherie haben den 
Pullup integriert und können ihn durch Software abschalten, sodass man 
das Gerät "virtuell abstecken" kann. Bei Controllern ohne integrierten 
PullUp kann man das extern mit einem FET und zusätzlichem GPIO 
nachbilden:

https://www.mikrocontroller.net/articles/Datei:Olimexino_STM32_USB.png

Bei HighSpeed-USB wird der Pullup IIRC ebenfalls abgeschaltet, aber 
HS-Geräte werden auch initial als FullSpeed-Geräte verbunden und 
schalten dann um.

ferrit schrieb:
> Wer aber beginnt die Übertragung, das Device oder Der Host?

Alle Kommunikation geht vom Host aus. Der Host fängt normalerweise damit 
an, den Device-Deskriptor abzufragen. Wenn das Gerät darauf nicht 
reagiert - z.B. weil zwar ein PullUp angeschlossen ist aber gar kein 
Mikrocontroller mit USB-Peripherie - erkennt der Host ein Fehler (z.B. 
Fehlermeldung unter Windows).

von ferrit (Gast)


Lesenswert?

He ich danke euch :)

von hmm (Gast)


Lesenswert?

Hi,

kannst auch mal "Ben Eater" auf Youtube suchen, der hat auch was zu USB 
Keyboards gemacht, sehr Detailiert.

Gruß

von ferrit (Gast)


Lesenswert?

Wird D+ auf 3,3V gezogen -> Fullspeed
Wird D- auf 3,3V gezogen -> Half Speed
siehe:
https://www.beyondlogic.org/usbnutshell/usb2.shtml

Was bedeutet es, wenn D+ auf 3,3V gezogen wird und D- auf 1,8V?

von ferrit (Gast)


Lesenswert?

Ok.. ursache unklar aber mein USB Device konnte nun vom USB-Host 
gefunden werden, ich musste zusätzlich einen 1,5k Widerstand von D- zu 
GND ziehen und dann wird mein USB device ordnungsgemäß als mit Fullspeed 
erkannt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.