Hallo,
ob sich der Aufwand lohnt so einen USB-Switch selbst zu bauen?
http://www.pearl.de/c-1422.shtml
Qualmfrei wird es wohl auch sein.
MfG Karl
Moin zusammen und fröhliche Weihnachten,
gleich vorneweg, ich erwarte über die Feiertage keine Antwort -> es gibt schließlich Wichtigers in diesen Tagen!!! Ich will es nur schonmal "loswerden".
Also ich will mir einen kleinen USB-Switch bauen um zum Beispiel meinen Drucker an 2 PC's anzuschließen, und dann mittels Schalter den PC zu wechseln.
Da ich noch Anfänger im Bereich der Elektronik bin, stelle ich mir das wahrscheinlich viel zu einfach vor, und übersehe einige grundlegende Details.
Ich hoffe, dass mir jemand bezüglich meines angehängten Schaltplans und Controllercode, helfen kann dieses Projekt zu einem qualmfreien Ende zu führen.
Ich bin mir nicht so schlüssig, ob ich was das "Durchschleifen" der Signale betrifft, so richtig vorgegangen bin. Müssen D- und D+gekreuzt werden?
Gruß
Demian
Code:'General $regfile = "m8def.dat" 'ATMega8-Declaration $crystal = 3686400 'Quarz: 3,6864 Mhz 'Interrupts On Int0 Switchusb 'USB-Switch Routine Enable Int0 'activate INT0 interrupt Config Int0 = Rising 'when pushing button Enable Interrupts 'allow interrupts global 'Variables Dim USB As Bit '0=USB1, 1=USB2 'Input USB Config Portb.0 = Input 'VBUS Config Portd.5 = Input 'GND Config Portd.6 = Input 'D+ Config Portd.7 = Input 'D- 'Output USB 1 Config Portc.1 = Output 'LED Config Portc.2 = Output 'D- Config Portc.3 = Output 'VBUS Config Portc.4 = Output 'GND Config Portc.5 = Output 'D+ 'Output USB 2 Config Portb.1 = Output 'LED Config Portb.2 = Output 'D- Config Portb.3 = Output 'VBUS Config Portb.4 = Output 'GND Config Portb.5 = Output 'D+ 'Initialize USB = 0 'start with USB 1 Portd.2 = 1 'enable internal pullup for button 'Mainloop Main: Select Case USB Case 0 Portb.1 = 0 'USB 2 LED off Portc.1 = 1 'USB 1 LED on Portc.2 = Portd.7 'D- of USB Input to D- of USB Output Portc.3 = Portb.0 'VBUS from USB Input to VBUS of USB Output Portc.4 = Portd.5 'GND of USB Input to GND of USB Output Portc.5 = Portd.6 'D+ of USB Input to D+ of USB Output Case 1 Portc.1 = 0 'USB 1 LED off Portb.1 = 1 'USB 2 LED on Portb.2 = Portd.7 'D- of USB Input to D- of USB Output Portb.3 = Portb.0 'VBUS from USB Input to VBUS of USB Output Portb.4 = Portd.5 'GND of USB Input to GND of USB Output Portb.5 = Portd.6 'D+ of USB Input to D+ of USB Output End Select Goto Main Switchusb: Toggle USB Return
Hallo,
ob sich der Aufwand lohnt so einen USB-Switch selbst zu bauen?
http://www.pearl.de/c-1422.shtml
Qualmfrei wird es wohl auch sein.
MfG Karl
Moin Karl,
naja, die Teile hätte ich alle hier, wenn das so wie in der Schaltung überhaupt funktioniert. Klar gibt es fertige Lösungen, aber da fehlt ja der Spaß an der Sache und das "Erfolgserlebnis".
Gruß
Demian
Wenn du deinen Drucker an mehreren Pc's anschließen möchtest würde ich das über ein Netzwerk lösen, dann haben alle zugriff auf den Drucker.
das mit dem Netzwerk kann ich so leider nicht machen, weil das eine ein Dienstrechner ist und der andere mein privater.
Du willst doch nicht allen Ernstes die USB-Signale per Software weiterreichen?
Mal kurz durchrechnen:
Einen Durchlauf der mainloop würde ich mit mindestens 20 Takten veranschlagen. Das heißt, die Signale werden mit einer Frequenz von 184kHz abgetastet. Es lassen sich also laut Abtasttheorem höchstens Signale mit 92kHz übertragen.
Nun werfen wir mal nen Blick in den USB-Standard.
Selbst bei Low-Speed-Devices (üblich für Mäuse etc.) beträgt die Datenrate schon 1,5Mbit und somit ist die zu übertragende Frequenz 1,5Mhz. Der AVR ist daher viel zu lahm.
Außerdem werden auf D+ und D- differentielle, bidirektionale Signale übertragen. Das heißt, die Pegel sind nicht 0V/5V, sondern irgendwo dazwischen, und die Richtung der Signale ändert sich ständig. Das ist mit den IO-Pin eines AVRs nicht machbar.
Und das Schalten der Versorgungsspannung dürfte wirklich zu Rauchwolken führen, weil der AVR keine 500mA liefern kann.
ok, ich geb mich geschlagen. Das mit den Takten ausrechnen usw. sind für mich noch böhmische Dörfer.
Hätte das am liebsten auch einfach per Schalter gelöst, da entfällt wenigstens die externe Stromversorgung, habe aber keinen passenden rumfliegen und auch bei Conrad keinen gefunden.
Danke für die Tipps, nen Versuch wars wert. Muss ich wohl doch eine Fertig-Lösung bestellen.
Gruß
Demian
Hallo,
die selbe Idee hatte ich nun auch. Naja eigendlich hatte ich die Idee für 3 USB Anschlüsse und einem DVI Anschluss, aber in der Theorie ist es das selbe
Würde es denn funktionieren wenn man schlicht jede Menge Relais verwendet?
Per Schalter wird ein Stromkreis geschlossen welcher in diesem Fall 5 Relais leitend macht. Diese 5 Relais sind dann die d, d-, vbus, gnd vcc Leitungen des USB Kabels. Also insgesammt 10 kleine Relais. Würde das funktionieren oder gibt es dort eine einfachere Methode? Mir graut es nämlich vor den 35 Pins des DVI Kabels, möchte aber nicht 40€ für 4 switchte ausgeben :S
Es grüßt,
Basteltisch
Lesezeichen