Forum: Mikrocontroller und Digitale Elektronik Schaltung USB Hub


von nepf (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mir nach dem Datenblatt vom TUSB2046 von TI 
(http://www.ti.com/lit/ds/symlink/tusb2046b.pdf)
die Schaltung von Seite 16 "Self-Powered Hub, Individual-Port Power 
Management" nachgebaut.

Kann man die 1:1 übernehmen oder muss ich noch weitere Dinge beachten?
In meiner Schaltung befinden sich zusätzlich ein paar FETs um 
verschiedene PORTs oder ICs von der Spannung zu trennen.

Ich möchte mit der Schaltung die USB Ports des RaspberryPi erweitern.

Wäre wirklich dankbar wenn jemand noch mal drüber schaut, bevor ich das 
ganze ätze und löte.

Grüße

von Nico (nico123)


Lesenswert?

Wenn die Schaltung aus dem Datenblatt ist, dann sollte sie funtionieren!
Um die 5V für die vier Downstream-Ports zu schalten würde ich aber eher 
an die Enable-Signale für den TPS2044 gehen, so sparst Du dir die vier 
Mosfets die ja eh schon im TPS2044 vorhanden sind! Du musst die Signale 
nur entkoppeln vom TSUB2064, sonst gibts 'nen Kurzen.

von nepf (Gast)


Lesenswert?

Okay, und was ist mit den ganzen Widerständen Down- sowie Upstream 
seitig?
Manchmal findet man Schaltungen, da sind die nicht vorhanden.

Soll wohl was mit High- oder Lowspeed Modus zu tun haben.
Weiß aber nicht wo der Unterschied liegt...

von Nico (nico123)


Lesenswert?

Wenn der Hersteller diese Widerstände in seinem Datenblatt hat, dann 
wird das schon stimmen und funktionieren.

von Hannes W. (hannes_w)


Lesenswert?

Es gibt schöne USB-Filter (Serien-R, Parallel-C) die gleich die 
ESD-Protection (NUF2101) und die Downstream-Pulldowns (NUF2042) mit drin 
haben. Die Upstream-Filter gibt es auch mit integriertem 1.5kΩ Pullup.

- Deine Downstream-Ports müssen mit mindestens 120µF gepuffert werden 
(USB 2.0 Spec, 7.2.1.2). TI schlägt 100µF pro Port vor. Deine 33nF 
reichen nicht.
- Was ist mit Shielding?
- Warum hast du die von TI vorgeschlagenen Ferrite an den 
Downstream-Ports weggelassen?
- Was sollen die Serien-MOSFETs in den Downstream-Ports? Wo geht 
USB_n_EN hin? Ein Self-Powered Gerät kannst du damit nicht ausschalten, 
ist also sinnlos.

Warum kaufst du nicht einfach einen 5€ Hub und gut ist?

Nico ... schrieb:
> Wenn die Schaltung aus dem Datenblatt ist, dann sollte sie funtionieren!
Ja, leider hat er Teile weggelassen.
> Um die 5V für die vier Downstream-Ports zu schalten würde ich aber eher
> an die Enable-Signale für den TPS2044 gehen, so sparst Du dir die vier
> Mosfets die ja eh schon im TPS2044 vorhanden sind! Du musst die Signale
> nur entkoppeln vom TSUB2064, sonst gibts 'nen Kurzen.
Du hast Recht, aber der TUSB2046 hat Push-Pull-Outputs, da geht das 
nicht so leicht. Ein 4-Fach AND/2-Gatter müsste her.

nepf schrieb:
> Okay, und was ist mit den ganzen Widerständen Down- sowie Upstream
> seitig?
> Manchmal findet man Schaltungen, da sind die nicht vorhanden.

USB-Spec lesen, da steht drin warum man die braucht. Bei manchen Chips 
sind sie integriert und manche Schaltungsdesigner lassen sie weg.

von qwertz (Gast)


Lesenswert?

Hallo Hannes, du scheinst Ahnung zu haben,
hoffe du hilfst mir noch etwas weiter, ich muss das Teil nämlich 
unbedingt zusammen bauen und leide etwas unter Zeitmangel.

> Es gibt schöne USB-Filter (Serien-R, Parallel-C) die gleich die
> ESD-Protection (NUF2101) und die Downstream-Pulldowns (NUF2042) mit drin
> haben. Die Upstream-Filter gibt es auch mit integriertem 1.5kΩ Pullup.

Wo finde ich die, bzw. unter welcher Bezeichnung?
Kannst du mir welche empfehlen?

> - Deine Downstream-Ports müssen mit mindestens 120µF gepuffert werden
> (USB 2.0 Spec, 7.2.1.2). TI schlägt 100µF pro Port vor. Deine 33nF
> reichen nicht.

Ok, ich werde 120 µF Kondensatoren einsetzen.

> - Was ist mit Shielding?

Was soll ich wo abschirmen?

> - Warum hast du die von TI vorgeschlagenen Ferrite an den
> Downstream-Ports weggelassen?

Wo werden Ferrite vorgschlagen?

> - Was sollen die Serien-MOSFETs in den Downstream-Ports? Wo geht
> USB_n_EN hin? Ein Self-Powered Gerät kannst du damit nicht ausschalten,
> ist also sinnlos.

Die logic level FETs sollen die Geräte Ab/An Schalten können.
USB_n_EN geht jeweils direkt an einen ATmega88 Port.
An den USB Downstream Ports soll z.B. ein WLAN Stick oder eine GPS Maus, 
die werden über die geschaltete Leitung versorgt, oder sehe ich das 
falsch?

> Ja, leider hat er Teile weggelassen.

Welche?

> Du hast Recht, aber der TUSB2046 hat Push-Pull-Outputs, da geht das
> nicht so leicht. Ein 4-Fach AND/2-Gatter müsste her.

Mit den FETs gehts doch auch.

> USB-Spec lesen, da steht drin warum man die braucht. Bei manchen Chips
> sind sie integriert und manche Schaltungsdesigner lassen sie weg.

Gibts einen link dafür?

von Hannes W. (hannes_w)


Lesenswert?

qwertz schrieb:
> Hallo Hannes, du scheinst Ahnung zu haben,
Der Einäugige unter den Blinden …

qwertz schrieb:
> Wo finde ich die, bzw. unter welcher Bezeichnung?
> Kannst du mir welche empfehlen?

Bei jedem Distributor deiner Wahl: siehe Elektronikversender. 
Empfehlen kann ich dir die billigsten, die du finden kannst. Die Teile 
firmieren unter "USB Filter" oder "ESD protection", wobei du bei 
letzterem darauf achten solltest, dass sie für USB geeignet sind 
(Datenblatt)
Ein Filter/ESD Schutz mit Upstream-Pullup wäre der NUF2221W1 im 
schnuckeligen SOT363.

> Ja, leider hat er Teile weggelassen.
Welche?
Ferrite und Bulk-Caps.

qwertz schrieb:
>> - Was ist mit Shielding?
> Was soll ich wo abschirmen?
Optimaler Weise sollte dein RPi, dein Hub und dein USB-Endgerät 
geschirmt sein. Die Schirme werden über das USB-Kabel verbunden. Die 
USB-Spec sagt nur ganz lapidar: "The user selected grounding scheme for 
USB devices, and cables must be consistent with accepted industry 
practices and regulatory agency standards for safety and EMI/ESD/RFI." 
Also: du kannst machen was du willst, aber es sollte der gängigen Praxis 
in der Industrie ensprechen und den einschlägigen Sicherheits- und 
EMI/ESD/RFI-Standards genügen. Der Schirm sollte an genau einer Stelle 
auf PE gelegt werden. Üblicherweise passiert das am PC. Da dein RPi kein 
PE hat, und das Shield vermutlich am RPi auf GND liegt, hast du da nicht 
viel Wahl. Am Hub gibt es verschiedene Möglichkeiten - du musst dich 
entscheiden, ob du keine Ground-Loops haben willst, oder keine Antenne. 
Verbindest du das Shield mit GND hast du eine Ground-Loop, die auch noch 
Noise von deiner GND-Plane abstrahlen kann. Verbindest du Shield und GND 
nicht miteinander, hast du eine Antenne.
Im Internet gibt es viel dazu zu lesen [0], [1], [2]. Egal was du 
machst, dein USB sollte immer funktionieren, es ist recht robust. Ich 
habe bis jetzt immer das Shield über 1MΩ || 4.7nF mit GND verbunden und 
bin recht gut damit gefahren. Die Shields deiner Downstream-Ports 
solltest du mit einer recht breiten Trace an beiden Punkten mit dem 
Shield deines Upstream-Ports verbinden.

qwertz schrieb:
> Wo werden Ferrite vorgschlagen?
Im TUSB2046B Datenblatt, S 14 und 15. Aber ich sehe gerade, dass das nur 
bei der Gang-Powered configuration eingezeichnet ist. Schaden tun die 
Ferrite jedenfalls nicht ;)

qwertz schrieb:
>> - Was sollen die Serien-MOSFETs in den Downstream-Ports? Wo geht
>> USB_n_EN hin? Ein Self-Powered Gerät kannst du damit nicht ausschalten,
>> ist also sinnlos.
>
> Die logic level FETs sollen die Geräte Ab/An Schalten können.
> USB_n_EN geht jeweils direkt an einen ATmega88 Port.
> An den USB Downstream Ports soll z.B. ein WLAN Stick oder eine GPS Maus,
> die werden über die geschaltete Leitung versorgt, oder sehe ich das
> falsch?

> Mit den FETs gehts doch auch.

Genau das können sie aber nicht. Du kannst den Strom abschalten - das 
ist aber auch alles. Wenn ein Gerät über ein Steckernetzteil oder von 
Batterien mit Strom versorgt wird passiert gar nichts. Die FETs bringen 
aber auch einen zusätzlichen Spannungsabfall mit (abhängig vom RDSon). 
Da ist nicht klar, ob der zulässig ist (USB 2.0 Spec, 7.2.2 Voltage Drop 
Budget). Wenn VBUS weg ist, muss ein USB-Device zwar binnen 10s den 
Pullup von D+/- weg nehmen, aber ob es das wirklich jedes Device macht 
weiß ich nicht. Ich finde es unschön. Wenn du schon einen Hub selbst 
baust, wo man den Strom einzeln abklemmen kann, würde ich das /PWRON des 
Hubs mit dem Eingang ver-und-en und auf den TPS geben.
Mal abgesehen davon, kann man das durchaus auch in Software machen und 
Linux kann das [3]. Wenn ich daran denke, werde ich das mal testen.

qwertz schrieb:
>> USB-Spec lesen, da steht drin warum man die braucht. Bei manchen Chips
>> sind sie integriert und manche Schaltungsdesigner lassen sie weg.
>
> Gibts einen link dafür?
usb.org (Surprise!) > Developers > Documents > "Universal Serial Bus 
Revision 2.0 specification" [4] oder Google.

Warum du den Hub nun selbst bauen willst verstehe ich nicht - gerade 
wenn du unter Zeitdruck/-mangel leidest. Dein Ziel scheint ja nicht der 
Bau eines Hubs zu sein, sondern einen Hub benutzen zu wollen. Einfach 
kaufen und du hast noch ein schickes Gehäuse dazu.

[0] http://www.usb.org/developers/docs/hs_usb_pdg_r1_0.pdf
[1] http://www.cypress.com/?docID=32407
[2] http://www.ti.com/sc/docs/apps/msp/intrface/usb/emitest.pdf
[3] 
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/usb/power-management.txt
[4] http://www.usb.org/developers/docs/usb_20_070113.zip

von nepf (Gast)


Lesenswert?

Okay Hannes, vielen Dank erstmal für die ausführliche Antwort.

Ich möchte alles nochmal zusammen fassen:

1. Ich könnte meine RC Filter auch durch Integrierte Filter ersetzten, 
muss es aber nicht, denn die Funktionsweise ist fast identisch.

2. Ferrite und Bulk-Caps können rein, müssen aber nicht unbedingt.

3. Die Schirmung: meine USB Leitung ist eher als Störquelle zu sehen, 
denn die Übertragung erfolgt symmetrisch und viele Störeinflüsse von 
außen werden "ausgeglichen" - damit könnte ich erstmal leben

4. Die FETs (IRLML6402PBF) haben einen RDSon von 65 mOhm, das bedeutet 
bei den maximal möglichen 500 mA einen Spannungsabfall von 32,5 mV, das 
ist auf jeden Fall zu verkraften.

Mir ist es erst einmal wichtig das es überhaupt funktioniert, wenn das 
Gesamtsystem dann irgendwann mal läuft, dann kann ich immer noch 
Verbesserungen vornehmen und der Zeitdruck ist dann auch weg.

Somit habe ich nun die 33 µF gegen 120 µF getauscht, den Rest so 
gelassen und es sollte erstmal arbeiten. Oder habe ich etwas vergessen?

p.s.
Warum ich mir keinen Hub kaufe?
Weil alles auf ein Mainboard soll und der Pi von diesem aufgenommen 
wird.
Eine USB Hub Schachtel wäre einfach unzweckmäßig und unprofessionell.
Außerdem war mir wichtig die einzelnen Ports schalten zu können.

von qwertz (Gast)


Lesenswert?

@Hannes - ist meine Zusammenfassung soweit erstmal richtig?

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.