Forum: Platinen eigener USB HUB TUSB2046


von Locker L. (lockerlicky)


Angehängte Dateien:

Lesenswert?

Hi, Leute
ich habe vor Kurzem eine USB-Platine erstellt. Problem sie funktioniert 
leider nicht und ich weiß auch nicht mehr weiter. Habt ihr vielleicht 
eine Idee für mich?
Hab mich am Datenblatt und ein paar Einträgen hier im Forum orientiert.
Im Anhang hab ich mein Schaltplan und das Layout verlinkt.

Viele Grüße

LL

von Klaus! (Gast)


Lesenswert?

Hallo,

Der Reset ist nicht beschaltet!  Hatte faste die gleiche Beschaltung.


RST Pin: Pullup 10K gegen 3V3 und 100nF gegen GND!

Bin mir 99.999999 Sicher das ist es. er Wird nicht im OS erkannt!

Mit Taster gegen GND funktioniert nicht!
Bitte Datenblatt genau zu RST lesen!

Klaus

von Locker L. (lockerlicky)


Lesenswert?

Danke für die Nachricht! Hab es gerade ausprobiert... hat leider nicht 
geklappt. Wird nicht vom OS erkannt.

: Bearbeitet durch User
von Uwe N. (ex-aetzer)


Lesenswert?

Die Differentiellen Signale sind arg grenzwertig geroutet.
Einerseits gibts du dir zwar Mühe bei Dingen wie dem Längenausgleich, 
andererseits versaust du dir genau das mit diesen fiesen Stichleitungen 
zu den ESD-Dioden D2/ D3. Noch dazu mit 2 Vias im Signalpfad.

Differentielle Signale sollten stets symmetrisch geroutet sein.

Ich denke es ist besser, wenn jeder USB-Port seinen "persönlichen" 
ESD-Schutz bekommt - vereinfacht das Routing.

von fchk (Gast)


Lesenswert?

Die Overcurrent-Ausgänge der TPS2051 Powerswitches sind Open Collector 
und brauchen Pullups.

Die Anmerkung des Vorposters bezüglich des extrem dämlichen Routings der 
ESD-Schutzdioden unterstütze ich.

Außerdem fehlt der 1.5k Pullup an DP0 beim Uplink.

fchk

von Vka (Gast)


Lesenswert?

Sowas sollte man wirklich unbedingt von Hand routen!
Ich sehe auf dem Layout schon 2 Stellen mit Kurzschlüssen, sind die 
durch den DRC gekommen und so auch auf der Platine?
Außerdem ist die Spannungsversorgung überhaupt nicht ausreichend 
dimensioniert, Leiterbahnbreite beachten..
Wozu die Jumper in den Datenleitungen und die viel zu großen Abstände 
zwischen den Widerständen? Das löst das Diff. Pair auf.

von Locker L. (lockerlicky)


Lesenswert?

fchk schrieb:
> Außerdem fehlt der 1.5k Pullup an DP0 beim Uplink.

Hey! Danke für den Tipp Windows erkennt jetzt was aber er sagt mir das 
das Gerät (Hub) nicht richtig funktioniert.

Vka schrieb:
> Ich sehe auf dem Layout schon 2 Stellen mit Kurzschlüssen, sind die
> durch den DRC gekommen und so auch auf der Platine?

Wo siehst du die Kurzen?

Vka schrieb:
> Wozu die Jumper in den Datenleitungen

Zum Debuggen ^^ ich hab schon mal den Hub so aufgebaut in einer anderen 
Schaltung dort konnte ich aber nicht wirklich nach Fehlern suchen.

Vielen Dank für eure Antworten!

: Bearbeitet durch User
von Vka (Gast)


Lesenswert?

Locker L. schrieb:
> Wo siehst du die Kurzen?

Rechte Seite vom Hub Chip und bei der TVS Diode rechts oben

von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Soory .

Hier meine Beschaltung die geht.

> 200 St im Umlauf

Klaus

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Uwe N. schrieb:
> Die Differentiellen Signale sind arg grenzwertig geroutet.

Das ist nur Full-Speed-USB (12 MBit/sec), das dürfte alles noch sehr 
entspannt sein.

von Locker L. (lockerlicky)


Lesenswert?

Klaus schrieb:
> Soory .
>
> Hier meine Beschaltung die geht.
>
>> 200 St im Umlauf
>
> Klaus

Hey danke für die Schaltung. Wo geht der Jumper bei dir hin bzw. was 
steuert den Pin bei dir?

von Klaus (Gast)


Lesenswert?

Der Jumper ist Zeit offen.
war geplant den USB Hub im Strörfall zu per Microcontroller Pin reseten.
War aber nie nötig.

von Klaus (Gast)


Lesenswert?

Schau bei TI auf der Seite nach.
Da gibts ein Schaltplan von deren Demoboard.

Klaus

von Uwe N. (ex-aetzer)


Lesenswert?

Rufus Τ. F. schrieb:
> Das ist nur Full-Speed-USB (12 MBit/sec), das dürfte alles noch sehr
> entspannt sein.

Mag sein. Das Problem bei solchen Unfällen ist, dass wenn es nicht 
funktioniert eine mögliche Ursache mehr ist. Und der TO/ Windows hat 
eben gewisse Probleme mit dem Board.

Ob die legere Leitungsführung im Bereich der ESD-Dioden zielführend ist 
darf man schon anzweifeln.

By the Way: ich sehe in paar vereinsamte Vias: ist das ein Multilayer?

von Locker L. (lockerlicky)


Angehängte Dateien:

Lesenswert?

Klaus danke dir! :) Ich hab den ResetPin mit 47k und 100n beschaltet und 
nun gehts Windows erkennt den USB Hub!

Und auch danke an fchk für die vergessenen 1,5k an DP0!


Nur leider erkennt er die am Hub angeschlossene Maus noch nicht.

Uwe N. schrieb:
> By the Way: ich sehe in paar vereinsamte Vias: ist das ein Multilayer?

Ja Top und Bot sind GND Flächen allerdings hab ich auch ein paar GND 
Leitungen von Hand geroutet deshalb sieht manches bisl komisch aus Kurze 
sind da nicht. Ich kann nochmal ein neues Bild hochladen.

: Bearbeitet durch User
von Uwe N. (ex-aetzer)


Lesenswert?

Locker L. schrieb:
> Ja Top und Bot sind GND Flächen...

Die hätt ich aber jetzt eher in den Innenlagen vermutet.
Was ist denn auf den Innenlagen? VCC? Auf beiden?

von Locker L. (lockerlicky)


Lesenswert?

Sry ich meinte damit: es sind nur 2 Layer. Die GND Flächen sind mit den 
Vias nur verbunden.

von Dominik J. (d-r-j)


Angehängte Dateien:

Lesenswert?

Auch auf dem neuen Bild sehen die Stellen nach Kurzschluss aus.

von Locker L. (lockerlicky)


Angehängte Dateien:

Lesenswert?

Hier sieht man es besser.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Locker L. schrieb:
> Sry ich meinte damit: es sind nur 2 Layer. Die GND Flächen sind mit den
> Vias nur verbunden.

Ach Du Scheiße. Du zerschneidest Dir also mit den senkrechten blauen 
Leiterbahnen munter die Massefläche, insbesondere auch dort, wo die 
differentiellen Signale entlanglaufen. Und hast Du bei den (nicht 
dargestellten) Masseflächen auch einigermaßen brauchbare Abstände zu den 
Signalen eingestellt oder einfach nur den meist viel zu kleinen 
Defaultwert genommen?

Welche Formeln bzw. welches Programm hast Du denn zur Berechnung der 
impedanzkontrollierten Leitungen verwendet? Mir erscheinen die 
Leiterbahnbreiten für eine normale 1,5mm-Platine ohne Innenlagen doch 
reichlich schmal. Oder verwendest Du ein äußerst exotisches Material mit 
einem besonders hohen Epsilon_r?

Vermutlich hast Du Dir aber einfach nur so gar keine Gedanken über das 
Layout gemacht und es einfach nur hingerotzt.

von Ump (Gast)


Lesenswert?

Was sagt der PC`im "USB Device tree viewer"?
Failed to enumerate oder kommt gar nix?

Ein paar Dinge, die du nachkucken könntest:
Bist du dir sicher, dass die Serienwiderstände in den Datenleitungen 
nötig sind? Kuck dazu ins Datenblatt. Das hängt vom Tranceivier ab. 
SMSC-Hubs brauchen das beispielsweise nicht.

Der Reset hängt in der Luft. Bist du dir sicher, dass das Hub einen 
internen Pullup am Reseteingang hat? Prüf das mal nach. Miss mal die 
Spannung am REset, ist sie 3V3?

Außerdem kommen mir die 22p in den Datenleitungen arg hoch vor. Bist du 
dir sicher, dass das nötig ist?

Brauchst du vielleicht einen Pullup in DM0? Kuck ins Datenblatt!

Dann prüf mal, ob dein Quarzoszillator funktioniert. Kommt der Clock 
raus, stimmt die Frequenz?

Passt die Versorgung, stimmt die Spannung und ist sie sauber?

Gibt es Strappingpins, und hast du sie richtig gezogen? Sprich, die Pins 
welche die Config bestimmen.

Nochmal die Verlötung durchpiepseln schadet auch nicht.

Ja, das Routing ist gruselig, da beißt die Maus keinen Faden ab. Aber 
ich denke nicht, dass da das Problem liegt. USB Fullspeed ist sogar 
Breadboard-tauglich.

von Thomas (Gast)


Lesenswert?

der TPS2051 OC pin ist Open Collector ohne Pullup wirds also nichts.

Thomas

von Georg A. (georga)


Lesenswert?

Andreas S. schrieb:
> Welche Formeln bzw. welches Programm hast Du denn zur Berechnung der
> impedanzkontrollierten Leitungen verwendet?

Bei USB1.1? Jetzt übertreibs mal nicht ;)

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Georg A. schrieb:
> Bei USB1.1?

Es handelt sich doch überhaupt nicht um einen USB-1.1-Hub, sondern um 
einen USB-2.0-Hub, allerdings nur mit maximal 12 MBit/s. Die 
Leitungsimpedanzen wurden aber auch schon gleich zu Beginn von USB 
definiert. Mit der High-Speed-Betriebsart (ab USB 2.0) sind sogar 
unterschiedliche Impedanzen für High Speed und Full/Low Speed 
spezifiziert.

von Thomas (Gast)


Lesenswert?

nun ein USB2 HUB der nur fullspeed kann ist halt nur ein usb 1.1 Hub
Die Hispeed Impedanzen spielen dann keine Rolle da der HUB nie in den Hi 
Speed mode kommt.
Es ist übrigens eine beliebte Methode Fullspeed devices als USB2 Geräte 
zu bezeichnen sieht einfach besser aus und ist sachlich ja auch korrekt 
da die USB2 Spec auch die USB 1.1 Spec enthält.
Jedes Device wird erst mal im Fullspeed enumeriert und erst hinterher 
wird auf Hispeed umgeschaltet wenn die entsprechenden Decriptoren 
vorhanden sind.
Es ist deshalb auch üblich im Device Descriptor USB2 anzugeben auch wenn 
das Gerät lediglich Fullspeed kann und deshalb 1.1 ausreichen würde.

Hispeed verwendet andere Transceiver als Full / Lowspeed deshalb sind 
unterschiedliche Impedanzen in in der Spec.

Thomas

von Ump (Gast)


Lesenswert?

Georg A. schrieb:
> Andreas S. schrieb:
>> Welche Formeln bzw. welches Programm hast Du denn zur Berechnung der
>> impedanzkontrollierten Leitungen verwendet?
>
> Bei USB1.1? Jetzt übertreibs mal nicht ;)

Das kommt darauf an.

Impedanzkontrollierte Kabel sollte man schon verwenden. Über 2m ohne 
Impedanzkontrolle geht das mit Fullspeed nicht oder nicht ordentlich.

Aber stimmt schon, für die kurzen Strecken auf der Platine gehe ich 
nicht davon aus, dass das Problem dort liegt.

Wenn sich das Hub gar nicht meldet (d.h. am PC auch kein Sound ertönt, 
wenn man es ansteckt), dann schaltet das Hub keinen Pullup.

Und das liegt entweder daran, dass es keinen hat, oder das das Hub 
keinen Strom oder Takt hat oder falsch beschaltet ist.

Also Butter bei die Fische:
Meldet sich das Hub am PC? Was sagt diese Software:
https://www.uwe-sieber.de/usbtreeview_e.html

von Bernd K. (prof7bit)


Lesenswert?

Thomas schrieb:
> Hispeed verwendet andere Transceiver als Full / Lowspeed deshalb sind
> unterschiedliche Impedanzen in in der Spec.

Und die Kabel tauschen sich dann auch automatisch aus wenn der Speed 
umgeschaltet wird und die Leiterbahnen legen sich um, oder was? Oder wie 
haben die sich das gedacht?

: Bearbeitet durch User
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Thomas schrieb:
> nun ein USB2 HUB der nur fullspeed kann ist halt nur ein usb 1.1 Hub

Nein. Ein Gerät, das sich im Device Descriptor mit als USB 2.0 meldet, 
ist kein USB-1.1-Gerät.

> Es ist deshalb auch üblich im Device Descriptor USB2 anzugeben auch wenn
> das Gerät lediglich Fullspeed kann und deshalb 1.1 ausreichen würde.

Ein USB-1.1-Gerät, in dessen bcdUSB-Feld 2.0 stünde, wäre eben nicht 
spezifikationskonform.

Neben der unterschiedlichen Versionskennung gibt es auch ein paar kleine 
subtile Unterschiede im Timing, um die Kompatibilität verschiedener 
Geräte zu verbessern.

von Ump (Gast)


Lesenswert?

Bernd K. schrieb:
> Thomas schrieb:
>> Hispeed verwendet andere Transceiver als Full / Lowspeed deshalb sind
>> unterschiedliche Impedanzen in in der Spec.
>
> Und die Kabel tauschen sich dann auch automatisch aus wenn der Speed
> umgeschaltet wird und die Leiterbahnen legen sich um, oder was? Oder wie
> haben die sich das gedacht?

Die Impedanzen sind tatsächlich unterschiedelich, aber so, dass es 
abwärtskompatibel ist:
- Lowspeed : Gar keine Impedanzkontrolle
- Fullspeed : 90E differentiell
- Highspeed : 90E differentiell, aber für einen größeren Frequenzbereich

Das Device und der Host wissen das von den Pullups auf den Leitungen, 
das Kabel können sie aber nicht identifizieren.

Superpseed ist gar kein "echtes" USB, das hat eigene Leitungen für USB2 
und USB3. Drum brauchts eigene Stecker, aber drum gehen USB3 Geräte auch 
mit USB2- Kabeln, weil sie beides haben.

Aber:
Die Tranceiver sind fundamental unterschiedlich, wie auch die 
Signalpegel und die Datenübertragung.

von Thomas (Gast)


Lesenswert?

Bernd K. schrieb:
> Thomas schrieb:
>> Hispeed verwendet andere Transceiver als Full / Lowspeed deshalb sind
>> unterschiedliche Impedanzen in in der Spec.
>
> Und die Kabel tauschen sich dann auch automatisch aus wenn der Speed
> umgeschaltet wird und die Leiterbahnen legen sich um, oder was? Oder wie
> haben die sich das gedacht?

warum Kabel tauschen? bei Hispeed wird einfach ein anderer Satz 
Transiver im Frontend benutzt, D+ D+ bleiben die gleichen. Jedes Gerät 
wird erst mal als Fullspeed angesprochen. Der Host entscheidet dann wenn 
die Hispeed Desc vorhanden sind ob umgeschaltet wird.
Die Unterscheidung ob Full oder Low Speed wird über den 1.5k an D+ bzw 
D-
gemacht.
Bei USB3 superspeed ist noch mal ein eigener Satz Transeiver nötig da 
dort die Datenübertragung unidirektional erfolgt.

Thomas

von Bernd K. (prof7bit)


Lesenswert?

Ump schrieb:
> - Lowspeed : Gar keine Impedanzkontrolle
> - Fullspeed : 90E differentiell
> - Highspeed : 90E differentiell

Ich kann keinen Unterschied erkennen zwischen 90 Ohm und 90 Ohm. Du hast 
doch irgendwas von einer anderen Impedanz erzählt.

Und übrigens die Einheit für Widerstand ist Ohm, nicht Ehm.

von Bernd K. (prof7bit)


Lesenswert?

Thomas schrieb:
> warum Kabel tauschen?

Weil Du behauptet hast bei Highspeed bräuchte es eine andere Impedanz. 
Aber das ist natürlich Unfug, hätte mich auch schwer gewundert, es sind 
immer 90 Ohm.

von Frank K. (fchk)


Angehängte Dateien:

Lesenswert?

Diese Schaltung mit dem TUSB2036 (3 Ports) funktioniert bei mir ohne 
Probleme.

fchk

von Locker L. (lockerlicky)


Lesenswert?

Vielen Dank für eure Antworten.
Funktioniert ;) TPS2041 anstatt TPS2051 im nächsten Layout ^^

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.