Hallo, Also eigentlich möchte ich dieses Ding nachbauen: https://neets.io/products/switching/neets-usb-switch-2 Ich möchte zwei USB Upstreams auf einen Downstream umschalten können. Port 2 (PC) ist immer angeschlossen. An der Typ-B Buchse hängt beispielsweise ein USB-Stick, welcher auch Dauerhaft mit +5V vom Port 2 versorgt wird. Im Normalbetrieb ist Port 2 mit dem USB-Stick verbunden. Sobald an Port 1 beispielsweise ein Laptop angeschlossen wird (Speisung +5V_1 kommt), schaltet der Switch um, Port 2 ist "stillgelegt", Port 1 ist mit dem USB-Stick verbunden. Die Schaltung ist nur mal eine ganz ganz grobe Idee und muss natürlich noch verfeinert werden. Funktioniert das rein konzeptionell überhaupt? Wie schauts mit PE und GND aus. Ich habe die einfach mal zusammengehängt. Ob das klug ist, weiss ich nicht.. Dafür fehlt mir das Know-How. Danke für eure Rückmeldungen.
Ich habe etwas Bedenken, dass dein USB-Stick das Wechseln zwischen den Geräten ohne Reset via Power-Cycle unter Umständen nicht sauber mitmacht. Das kannst du aber relativ einfach ausprobieren, indem du den Stick extern mit 5V versorgst und die Datenleitungen ganz stumpf per Hand durch Umstecken umschaltest. Wenn das auch nach X Versuchen überhaupt nicht hinhaut, ist die Chance hoch, dass das auch mit dem sauber schaltenden 2:1 USB-Mux nicht läuft. Dann müsstest du noch eine Schaltung einbauen, die das Anstecken/Entfernen des Geräts an Port 1 erkennt und dem USB-Stick dann kurz den Strom entzieht, während die Datenleitungen umgeschaltet werden, das geht dann auf jeden Fall gut. Ich würde dir empfehlen, bei den USB-Datenleitungen im Schaltplan Netzlabel anstatt der langen, sich überkreuzenden Leitungssegmente zu nehmen, das ist übersichtlicher und weniger fehleranfällig.
Nö, der Reset wird kein Problem, der Host bekommt ja mit, dass das Gerät getrennt wird, bzw. neu auftaucht und schickt dann einen Reset über den Bus. Was aber in die Hose gehen wird ist das Datensignal. Ab SuperSpeed (USB 2.0) müssen die Leitungen z.B. sauber gleich lang sein, sonst wird das problematisch. Bei USB 3 ist dann ganz der Ofen aus mit "ich bau mir mal was zusammen", das ist weit im Hochfrequenzbereich.
Du verwechselst da was. SuperSpeed sind die 5 GBit/sec von USB3.x Was Du meinst, ist "high speed" mit 480 MBit/sec. Das ist zwar schon recht flott, aber auch nicht unendlich kritisch. Der TS3USB30E https://www.ti.com/lit/ds/symlink/ts3usb30e.pdf ist für diese Datenrate ausgelegt, wenn man sich beim Layout nicht zu blöd anstellt, dann ist das noch handhabbar. Von Hand auf dem "Breadboard" wird das nix, dafür sorgt schon die Bauform des Bausteins selbst.
> Nö, der Reset wird kein Problem, der Host bekommt ja mit, dass das Gerät > getrennt wird, bzw. neu auftaucht und schickt dann einen Reset über den > Bus. Wie gesagt: beim Host habe ich da auch kaum bedenken, der bekommt die Verbindung/Trennung eh nur über die Datenleitungen mit. Ob das angeschlossene Gerät den Soft-Reset sauber mitmacht war doch die Frage! Selbst wenn das irgendwo in der USB-Spec geregelt ist, heißt das noch lange nicht, dass die Firmware auf dem angeschlossenen Gerät das schafft. Soll ja vorkommen, dass Geräte nicht immer ganz standardkonform arbeiten und rumzicken. Siehe hier: https://unix.stackexchange.com/a/10466 Und hier: https://askubuntu.com/q/1059429/921112 Und noch einer: https://superuser.com/a/1293624/520586 Da USB-Sticks Massenware sind, ist es aber auch gut möglich, dass dieser es schmerzlos mitmacht, muss OP halt mal ausprobieren.
:
Bearbeitet durch User
Erstmals besten Dank für eure Rückmeldungen. Es hat etwas gedauert, aber heute hatte ich mal wieder Zeit daran zu arbeiten. Den Tipp mit dem switchen des Powers (neben den Datenleitungen) habe ich einfliessen lassen. Neues PDF im Anhang (EntwurfV2). Den Teil um den USB-Switch habe ich mal versuchsweise im Eagle geroutet (siehe USB-Layout.png). Die Längenkompensation scheint mir bei der Anordnung der Stecker etwas überflüssig, habe mir das Meander-Tool von Eagle aber trotzdem angetan. Kurze Erklärung zur neuen Schaltung: Port 2 (+5V_2) ist dauerhaft angeschlossen und speist auch in jedem Fall den Slave! Die 5V des "priority" Ports (Port 1, +5V_1) wird über IC101 entprellt und bildet das Signal !EN_P1 / EN_P2. Das Signal geht auf eine Flankenerkennung, welche im Falle eines Wechsels (Pos & Neg) ein längeres High am Signal !SLAVE_EN (Low-Aktiv) herbeiführt. Dieses längere High deaktiviert die Speisung zum Slave für einige Sekunden. Ich muss den Digitalteil sicher noch durchsimulieren / überdenken. Evtl. hats da noch einen Fehler drin, oder die Anzahl Gatter lässt sich noch reduzieren. Ebenso die Dimensionierung der RC-Glieder ist eher mal so Pi*Daumen. Folgendes Szenario bereitet mir aber etwas Sorgen: Sobald Port 1 eingesteckt wird, schaltet der Switch über den Pin S um. Zu diesem Zeitpunkt hat der Slave noch Power. Also wird der Host am Port 1 den Enummerierung-Prozess anwerfen. Fast gleichzeitig stirbt aber der Slave, da dessen Speisung für mehrere Sekunden gekappt wird. Was ist eure Meinung dazu? Besser wäre doch immer zuerst die Speisung (vom Slave) kappen, dann den Switch umschalten und dann die Speisung wieder zu aktivieren oder? Gruss
Hallo zusammen, Bitte ignoriert meinen letzten Beitrag, ich konnte unterdessen die Schaltung verbessern. Neues PDF im Anhang. Es gibt eine Flankenerkennung (+-), sobald der Port 2 ein- oder ausgesteckt wird. Diese triggert zwei Pulse: !PWR_EN: Sobald die Flanke detektiert wird, wird die Speisung des Slaves ausgeschaltet, dies für 2 Sekunden. SEL_TRG: Hierbei handelt es sich um ein 1000ms Low-Puls, welcher nach Ablauf (steigende Flanke) ein Flip-Flop triggert. Das Flip-Flop speichert zu diesem Zeitpunkt dann das Select-Signals des USB-Switch (IC109). Es wird also immer zuerst die Speisung des Slaves ausgeschaltet, dann der Select-Pin von IC109 bedient, und anschliessend wird dann die Slave-Speisung wieder eingeschaltet. Bezüglich Power-Up, wird nach einer längeren Zeit zuerst das FF in den Reset-Zustand versehen (Power 1 aktiv), und nach einer erneuten Verzögerung wird der USB-Switch (IC109) aktiviert.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.