Forum: Mikrocontroller und Digitale Elektronik USB-Verbindung trennen


von Christian I. (alloc)


Lesenswert?

Hi zusammen,

ich habe hier das Problem, dass ich einen USB-Hub für meine ganze 
Elektronik-Entwicklung habe, der selber über ein Netzteil versorgt wird. 
Dennoch nutzt er aber auch die Versorgung des Host, wenn kein NT 
angeschlossen ist. Da die angeschlossenen Geräte relativ viel Strom 
ziehen, möchte ich nun gerne ein kleines Gerät bauen, welches sowohl die 
Spannungsversorgung des NT trennt (soweit kein Problem ;) ), als auch 
die USB-Verbindung des Hub zum Host.

In einem anderen Thread ( Beitrag "USB-Kabel trennen" ) 
wird gesagt, dass man hier einfache Relais verwenden kann um D+/D- zu 
trennen. Ist das wirklich problemlos machbar? Reichen da so einfache 
Relais wie z.B. 
http://www.reichelt.de/Miniaturrelais/HFD2-5V/index.html?ACTION=3&GROUPID=3292&ARTICLE=101939&SHOW=1&START=0&OFFSET=500&; 
?
Oder gibt es für diese Aufgabe bessere Alternativen, eventuell sogar 
elektronische?

Eventuell soll in das gleiche Gerät auch noch ein USB-Hub, damit ich 
über ein USB-Kabel vom Host sowohl die Steuerung des Gerätes selber 
führen kann als auch die Verbindung zum eigentlichen externen USB-Hub. 
Gibt es da eventuell schon "fertige" USB-Hub-Chips, welche ich 
integrieren könnte, und dem ich einfach signalisieren kann, dass er den 
einen USB-Port abschalten soll, damit ich mir die Relais gleich sparen 
kann?


Grüße,
Chris

von Εrnst B. (ernst)


Lesenswert?

Christian Illy schrieb:
> Gibt es da eventuell schon "fertige" USB-Hub-Chips, welche ich
> integrieren könnte, und dem ich einfach signalisieren kann, dass er den
> einen USB-Port abschalten soll, damit ich mir die Relais gleich sparen
> kann?

Gab es. Ist so eigentlich in der USB Spec vorgesehen, nur implementiert 
hat es kaum einer. Vor allem die neueren Hubs haben das nicht mehr.
Ist halt einfach billiger, die Downstream-Ports ohne Schaltmöglichkeit 
und Strombegrenzung parallelzuschalten...

Nimm einfach mal ein paar HUBs zur hand, und lass dir die Deskriptoren 
dumpen:
1
...
2
Hub Descriptor:
3
  bLength               9
4
  bDescriptorType      41
5
  nNbrPorts             4
6
  wHubCharacteristic 0x0009
7
    Per-port power switching
8
    Per-port overcurrent protection
9
  bPwrOn2PwrGood       22 * 2 milli seconds
10
  bHubContrCurrent    100 milli Ampere
11
  DeviceRemovable    0x00
12
  PortPwrCtrlMask    0xff
13
 Hub Port Status:
14
   Port 1: 0000.0303 lowspeed power enable connect
15
   Port 2: 0000.0100 power
16
   Port 3: 0000.0100 power
17
   Port 4: 0000.0100 power
18
Device Status:     0x0001
19
  Self Powered

das "Per-port power switching" but aus den wHubCharacteristics ist, was 
du willst.

Nicht zu früh freuen, viele HUBs behaupten einfach, sie könnten das, 
können es aber garnicht...

Dann: Per USB-Control-Message an den HUB die Ports schalten.

von Old P. (Gast)


Lesenswert?

Also, wenn Du wirklich TRENNEN möchtest, würde ich auch Relais 
empfehlen.
Da geht fast jedes, sollte halt für Deine Spannung (5V?) passen. Ein 
Netzteil für so einen Hub kann durchaus auch mehr als 5V liefern (wird 
dann auf der HUB-Platine runter geregelt), je nach Deiner Schaltung muss 
Du die Relais auswählen.
Die D+, D- und Spannungsleitungen einer USB-Buchse liegen max. bei 5V, 
also reicht für die Kontaktbelastbarkeit auch so ein kleines wie du oben 
gepostet hast vollkommen.

Old-Papa

von Εrnst B. (ernst)


Lesenswert?

Ahso... du würdest den HUB selber löten?
dann können das viele HUB-Chips:

einen Vorschlag findest du hier:
Beitrag "Re: USB Port schalten"

von Christian I. (alloc)


Lesenswert?

Hi,

Danke für eure Antworten.

Insbesondere diese Cypress-Hub-Chips scheinen genau das zu sein, was ich 
suche. Schade zwar, dass man das Port-Power-Kommando nur vom PC aus 
senden kann, aber immerhin scheint es prinzipiell zu gehen. Dann kann 
ich erst dem externen Hub den USB-Saft ziehen und dann über ein Relais 
das Netzteil abschalten =)
Also Hub-IC für Verteilnug auf Ext.Hub + uC, dazu uC für 
Relais-Ansteuerung.

Mal schauen, ob ich das so löse oder doch lieber über Hub-IC + uC 
welcher dann Relais für die USB-Signale + Netz steuert. Dann brauch ich 
halt dafür keine getrennten Befehle vom PC für die USB-Trennung :)


Grüße,
Chris

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wäre es nicht einfacher, die USB-Versorgungsspannung im (vorhandenen) 
Hub vom Hub-Controller zu trennen?

von Heinz (Gast)


Lesenswert?

Wenn D+, D- und GND verbunden bleiben und du den Widerstand, der ein 
angestecktes Gerät signalisiert, abschaltest - dann reicht es aus, nur 
VCC zu trennen.

von Christian I. (alloc)


Lesenswert?

Hi,

Rufus Τ. Firefly schrieb:
> Wäre es nicht einfacher, die USB-Versorgungsspannung im (vorhandenen)
> Hub vom Hub-Controller zu trennen?
dieser Hub ermöglicht scheinbar das Abschalten der Versorgung nicht und 
nutzt wie gesagt bei getrenntem Netzteil einfach die USB-Versorgung vom 
PC. Das heisst ich muss bei diesem Hub immer beides (USB zum PC und 
Netzteil) trennen, damit die angeschlossenen Geräte nichts mehr 
abbekommen.

Heinz schrieb:
> Wenn D+, D- und GND verbunden bleiben und du den Widerstand, der ein
> angestecktes Gerät signalisiert, abschaltest - dann reicht es aus, nur
> VCC zu trennen.
Du meinst den Widerstand zwischen VBUS und D+? Den kann ich ja schlecht 
abschalten, wenn er in einem geschlossenen Hub ist? Oder meinst du bei 
meinem geplanten Zwischenhub?

Grüße,
Chris

von Heinz (Gast)


Lesenswert?

> Du meinst den Widerstand zwischen VBUS und D+?

Ja - aber wenn ich mir es recht überlege, dann sollte er keine Rolle 
spielen, da bei fehlender VCC-Versorgung die Leitung nicht auf High 
gezogen werden kann. Ergo: VCC trennen sollte reichen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Christian Illy schrieb:
> Den kann ich ja schlecht
> abschalten, wenn er in einem geschlossenen Hub ist?

Du kannst ja den Hub aufmachen, vergossen wird der ja wohl nicht sein.

von Christian I. (alloc)


Lesenswert?

> Du kannst ja den Hub aufmachen, vergossen wird der ja wohl nicht sein.
Naja, den würde ich schon gerne im Originalzustand lassen ;)

Außerdem muss/will ich zumindest nen USB gesteuerten Netzschalter 
basteln, damit ich auch andere Elektroniknetzteile bedarfsgerecht 
schalten kann. Ob ich dann dort eben auch grad noch die Elektronik zum 
Trennen des USB-Hubs mit einbau oder nicht macht dann auch nicht mehr 
sooo viel Unterschied ;)

Grüße,
Chris

von Andreas B. (andreas_b77)


Lesenswert?

Heinz schrieb:
>> Du meinst den Widerstand zwischen VBUS und D+?
>
> Ja - aber wenn ich mir es recht überlege, dann sollte er keine Rolle
> spielen, da bei fehlender VCC-Versorgung die Leitung nicht auf High
> gezogen werden kann. Ergo: VCC trennen sollte reichen.

Selbst wenn das Gerät eine eigene Versorgung hat, muss es den Pull-Up 
deaktivieren wenn die 5 V vom USB verschwinden. Denn es könnte ja sein, 
dass der Host zwar verbunden, aber abgeschaltet ist. In dem Fall soll 
von außen keine Spannung an den Datenleitungen angelegt werden. Wenn 
wiederum der Pull-Up weg ist, gilt das für den Upstream-Port als 
Disconnect.


Für eine trennbare USB-Verbindung reicht es also, die 5 V zu schalten 
und die anderen Leitungen direkt durchzuverbinden.

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.