Forum: Mikrocontroller und Digitale Elektronik USB hardwareseitig schalten


von Dandel (Gast)


Lesenswert?

Hallo zusammen,

ich möchte die Kommunikation eines USB Devices hardwareseitig 
blockieren/abschalten und durch einen GPIO auf Wunsch aktivieren (die 
meiste Zeit soll der Bus blockiert bleiben). Dazu will ich die beiden 
Datenleitungen D+/- sperren. Die Versorgungsspannung/GND soll erhalten 
bleiben.

Ich bin noch recht neu (ich hoffe ich mache mich net zum Hampel) und ich 
bin nicht ganz sicher wie ich das bewerkstelligen möchte, so dass das 
ganze auch zuverlässig funktioniert.

Meine erste Idee wäre einen pull-up auf die Datenleitungen zu und 
abzuschalten. Nun bin ich mir nicht sicher, ob das angeschlossene Gerät 
bei einem + auf der Leitung nicht schon aktiviert wird (genau das will 
ich verhindern). Hat da jemand zufällig Erfahrung?

Eine andere Idee wäre natürlich einfach einen Transistor nehmen und 
damit die Spannung eines einstellbaren GPIOs zu schalten. Ich würde 
jedoch nur ungern in den Signalpfad eingreifen und dadurch riskieren, 
dass USB nicht mehr funktioniert.

Bitte löschen wenn die Frage zu dumm ist.

Lg

von holger (Gast)


Lesenswert?

Ich würd da einfach Reed Relais nehmen.

von Frank K. (fchk)


Lesenswert?

Normalerweise hast Du ja einen 1k5 Pullup, mit dem der Host feststellt, 
dass ein Device (1) da ist und (2) Full/High Speed oder Low Speed ist 
(je nachdem, ob der Pullup an D+ oder D- ist). Es reicht, die Versorgung 
dieses Pullups zu schalten (zB per Portpin). Wenn der Pullup mangels 
Spannung nicht mehr pullt, wird das Device nicht mehr enumeriert und ist 
dann auch nicht mehr da.

fchk

von Bupf (Gast)


Lesenswert?

Dandel schrieb:
> Eine andere Idee wäre natürlich einfach einen Transistor nehmen und
> damit die Spannung eines einstellbaren GPIOs zu schalten.

Lol. Dass USB differentiell ist ist dir bekannt? Dass man mit 
Transistoren auch nicht ohne weiteres ein paarhundert MHz schaltet auch? 
Schonmal was von Augendiagramm gehört?

von Norbert M. (Gast)


Lesenswert?

Aus meiner begrenzten Sicht des Bastlers würde ich, wenn's mein Problem 
wäre, einfach einen Analogswitch* nehmen. Kostet praktisch nix und 
sollte funktionieren. Oder gibt's dagegen Einwände?

*Damit meine ich natürlich das CMOS-Bauteil und keinen Schiebeschalter.

LG, N0R

von c-hater (Gast)


Lesenswert?

Norbert M. schrieb:

> Aus meiner begrenzten Sicht des Bastlers würde ich, wenn's mein
> Problem
> wäre, einfach einen Analogswitch* nehmen. Kostet praktisch nix und
> sollte funktionieren. Oder gibt's dagegen Einwände?

Falls du die 4066, 4067, 4051, 4052, 4053 o.ä. meinst: Zu hochohmig, zu 
große parasitäre Kapazitäten. Die Dinger sind eher für den Audio-Bereich 
bis zu 20kHz gedacht, nicht für schnelle digitale Kommunikation mit 
500MHz.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Nehme einen 270 Ohm Widerstand von D+ gegen Masse und schalte den mit 
einem Schalter.  Das sollte die Enumeration beim Einstecken verhindern. 
Ob das bereits enumerierte Gerät dann aus geht weiß ich nicht.

: Bearbeitet durch User
von Thomas R. (tinman) Benutzerseite


Lesenswert?

nimm TS3USB30 oder ISL54200

von Norbert M. (Gast)


Lesenswert?

c-hater schrieb:
> Falls du die 4066, 4067, 4051, 4052, 4053 o.ä. meinst: Zu hochohmig, zu
> große parasitäre Kapazitäten.

In der Tat, sowas in der Art habe ich gemeint.

> Die Dinger sind eher für den Audio-Bereich bis zu 20kHz gedacht,
> nicht für schnelle digitale Kommunikation mit 500MHz.

Im Datenblatt vom MC74VHC1G66 steht was von Bandwith 175 MHz, in dem vom 
SN74LVC1G3157 etwas von 300 MHz "Frequency response". Was das genau 
bedeutet weiß ich natürlich nicht, weil dieses "Hochfrequenzzeugs" für 
mich wohl immer ein Buch mit sieben Siegeln bleiben wird. Das mit den 
parasitären Kapazitäten verstehe ich jedoch, das ist natürlich blöd.

Anyway, ich hab' noch mal kurz nach "USB analogue switch" gesucht, und 
da findet sich schon einiges:
NLAS7222A von On-Semi, S1F77310 von Epson, 14535 von Maxim, etc.
Erwartungsgemäß natürlich nicht im Bastlergehäuse DIP, sondern DFN-artig

Schlußendlich sollte glaube ich, mit dem ADG3242 im SOT-23-8 etwas 
passendes für den OP gefunden haben, das eventuell passen könnte, auch 
wenn das natürlich ein sehr kleines Gehäuse ist (was sich in diesen 
Geschwindigkeitsklassen wohl wegen der von Dir angesprochenen 
Kapazitäten wohl kaum vermeiden lässt). Hier gibt's noch mehr Auswahl:

www.analog.com/library/analogdialogue/archives/40-01/usb_switch.html

Wenn man mit 12 Mbps auskommt, dann gibt's dort sogar ein bastler- 
freundliches SOIC (ADG774, ist allerdings kein Switch sondern ein MUX).

LG, N0R

von Guido Körber (Gast)


Lesenswert?

Die erste Frage wäre mal was das soll.

Die zweite wäre dann was für Geräte damit geschaltet werden sollen und 
ob überhaupt geklärt ist, ob die sich das so gefallen lassen.

Leider wird viel am USB ohne Sachkenntnis gebastelt. Es gibt Grenzen was 
man mit dem USB machen kann und dabei im betriebssicheren Bereich zu 
bleiben.

von kopfkratzer (Gast)


Lesenswert?

kopfkratz
Also wenn muß schon D+/D- physisch getrennt werden, das mit den 
Widerständen wird nicht funktionieren.
Also am einfachsten einen USB2USB Adapter selber aufbauen mit Relais, 
SolidStateRelais oder Triac.
USB1.1, USB2 oder USB3, was soll geschaltet werden ?
Und wie schon erwähnt verträgt das USB-Gerät das oder hängt es sich auf 
?

von Manuel X. (vophatec)


Lesenswert?

Thomas R. schrieb:
> nimm TS3USB30 oder ISL54200

TS3USB30E

günstig, leicht zu bekommen, im VSSOP10 Gehäuse leicht zu verarbeiten 
(wer schmerzen will kann ihn auch im DFN Gehäuse bekommen.

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.