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
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.
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...
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.
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?
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
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.