Hallo Zusammen, um einen USB-Hub zu realisieren habe ich die Schaltung wie im Anhang gemacht. Leider funktioniert die nicht und sie wird von Windows/Linux nicht erkannt. Man merkt gar nicht, dass etwas angeschlossen wurde. Ich habe mir die anderen Beiträge durchgelesen und die mögliche Änderungen in meiner Schaltung durchgeführt. Es funktioniert immer noch nicht. Vielleicht kann mir einer noch an dieser Stelle helfen, die Ursache zu finden. Danke und VG Ludo
Ludo S. schrieb: > Ich habe mir die anderen Beiträge durchgelesen und die mögliche > Änderungen in meiner Schaltung durchgeführt. Welche waren das denn? > Es funktioniert immer noch > nicht. Cross-check: * läuft der Quarz überhaupt an? * stimmt dessen Frequenz genau genug? * DP und DN tatsächlich an die korrekten Pins angeschlossen?
Vielen Dank für deine Rückmeldung. Jörg W. schrieb: > Welche waren das denn? Pull Up / kondendator an den Reset Pin. Jörg W. schrieb: > * läuft der Quarz überhaupt an? > * stimmt dessen Frequenz genau genug? > * DP und DN tatsächlich an die korrekten Pins angeschlossen? Ja DP und DN wurden richtig angeschlossen. Die Frequenz vom Quarz war auch in Ordnung. VG
Ludo S. schrieb: > Man merkt gar nicht, dass etwas angeschlossen wurde. Laut Schaltplan geht ein fest installierter Pullup von D+ an 3,3V - damit muss sich was am Linux/Windows tun - jedenfalls wenn man eine Weile wartet. Ein nackter Pullup auf D+ würde unter Windows ein Gerät mit Ausrufezeichen im Gerätemanager erzeugen. Unter Linux muss das >dmesg< irgendwas mit "new full speed device" anzeigen - ansonsten ist D+ oder GND nicht korrekt angeschlossen.
Jim M. schrieb: > Laut Schaltplan geht ein fest installierter Pullup von D+ an 3,3V - > damit muss sich was am Linux/Windows tun - jedenfalls wenn man eine > Weile wartet. Bei mir ging es leider nicht. Jim M. schrieb: > Ein nackter Pullup auf D+ würde unter Windows ein Gerät mit > Ausrufezeichen im Gerätemanager erzeugen. Ich gucke die ganze Zeit im Gerätemanager und es tut sich leider nichts.Was würde man den machen wenn das nicht korrekt erkannt wird, da man keinen Treiber benötigt? Jim M. schrieb: > ansonsten ist D+ oder GND nicht korrekt angeschlossen. Ist etwas worauf man hier achten sollte? VG
Der 2046 ist total problemlos, um zumindest erkannt zu werden, brauchen nur vier Dinge erfüllt zu sein: 1. Vcc und GND muss angeschlossen sein 3.3V. 2. Reset darf nicht auf GND liegen 3. Der Quarz muss auf 12 MHz schwingen 4. Der Upstreamport muss richtig und mit einem 1k5 Widerstand angeschlossen sein. Auch wenn dein Schaltplan sehr unübersichtlich ist und der Upstreamport fehlt, scheinen diese Sachen bei dir korrekt zu sein. Als Hinweis: du könntest bei der Ausgabe z.b die Pinmarkierungen ausschalten die stören nur. Prüfe DM0 auf Kurzschluss am Überspannungs IC. Prüfe an DM0P gegen Vcc dort muss 1.k5 Ohm zu messen sein. Und nochmal: Sind die D+ und D- wirklich korrekt mit DM0P und DM0M verbunden? Falls das alles stimmt muss auf jedenfall etwas passieren wie Jim gesagt hat. Gerätemanager prüfen. Übrigens der Connect Widerstand wird üblicherweise an VUsb des Upstreamports angeschlossen und nicht an der interne 3.3V Spannung. Thomas
Thomas schrieb: > Übrigens der Connect Widerstand wird üblicherweise an VUsb des > Upstreamports angeschlossen und nicht an der interne 3.3V Spannung. Hmm. Das muss er doch sogar sein, oder? Sprich, der muss gegen 5 V gehen, nicht gegen 3,3 V. > 3. Der Quarz muss auf 12 MHz schwingen Ich verstand das Datenblatt so, dass es 6 MHz wären.
12 MHz war natürlich Käse sollte 6MHz sein Thomas
Jörg W. schrieb: > Hmm. Das muss er doch sogar sein, oder? Sprich, der muss gegen 5 V > gehen, nicht gegen 3,3 V. Es funzt auch an den internen 3.3V wenn diese aus VUsb abgeleitet sind sprich das Teil Buspowered ist. Hab ich schon gemacht geht. Thomas
Thomas schrieb: > 4. Der Upstreamport muss richtig und mit einem 1k5 Widerstand > angeschlossen sein. Anbei ein Bild vom Upstreamport wie es an dem Linux System (D+ und D- richtig) angeschlossen wurde. C34 und C33 wurde auch gelöscht. Thomas schrieb: > Auch wenn dein Schaltplan sehr unübersichtlich ist und der Upstreamport > fehlt, scheinen diese Sachen bei dir korrekt zu sein. Als Hinweis: du > könntest bei der Ausgabe z.b die Pinmarkierungen ausschalten die stören > nur. Den habe ich erneut als Pdf im Anhang. Thomas schrieb: > Und nochmal: Sind die D+ und D- wirklich korrekt mit DM0P und DM0M > verbunden? ja sind die. Thomas schrieb: > Übrigens der Connect Widerstand wird üblicherweise an VUsb des > Upstreamports angeschlossen und nicht an der interne 3.3V Spannung VUsb ist üblicherweise 5V und nicht 3.3V wie Vcc. wird die Spannung auf der Datenleitung (D+) nicht zu hoch ? Bei mir wird er an die interne 3.3V angeschlossen. VG Ludo S. Thomas schrieb: > 12 MHz war natürlich Käse sollte 6MHz sein Ja genau ich habe auch 6MHz @Thomas du hast in deiner Schaltung einen 4k7 und 4.7uF an den Reset-Pin. Wie ist es mit 10k und 100nF oder 1uF ? VG.
Ludo S. schrieb: > VUsb ist üblicherweise 5V und nicht 3.3V wie Vcc. wird die Spannung auf > der Datenleitung (D+) nicht zu hoch ? Gerade nochmal nachgelesen, der Pullup ist gegen 3,3 V spezifiziert im Standard. Ich hatte das falsch in Erinnerung.
Diese Schaltung ist so viele 1000 mal in einem USB Audio Device verbaut worden. Die funktioniert definitiv. Meine Reset Beschaltung ist mehr wegen der damals vorhanden Std Bauteilen so dimensioniert. Mit 10k / 1u dürfte der Reset Puls etwa 2.5mal kürzer sein. Das sollte kein Problem sein. Wenn das alles so wie in deinem Schaltplan ist, hast du ein Problem mit dem Aufbau. z.B. Lötfehler. 5V sind kein Problem den Connect Widerstand an 3.3V zu hängen aber auch nicht. Du musst übrigens an D+ und D- die 15k vom Downstream Port des Hosts messen können, wenn das USB Kabel gesteckt ist. PC muss natürlich aus sein. Tatsächlich ist es so dass dieser Widerstand normalerweise auf 1k8 vergrößert wird wenn man VUsb benutzt. Thomas
Ich habe die Schaltung auch schon aufgebaut, die hat sofort funktioniert. Von daher muss ein Problem im Aufbau liegen. Hast du noch eine zweite Platine, die du Stück für Stück in Betrieb nehmen kannst? Das meiste Gedöns ist für die einfache Erkennung als Hub ja noch garnicht notwendig. Vielleicht ne Haarverbindung im Kupfer auf der Platine? Hast du mal auf Durchgang/Kurzschluss durchgepiept bis zum IC-Beinchen? Alle Signale direkt am IC-Pin gemesssen? Nur so als Denkanstoß. Ich hatte die Schaltung relativ schnell wieder abgestoßen, denn ich hatte mittlerweile schon wieder vergessen, wie lahm Full-Speed wirklich ist. Kaum zu ertragen. Wenn du mal einen performanten High-Speed Hub aufbauen willst, der zudem auch noch wesentlich einfacher in der Beschaltung ist, dann sei dir Terminus FE1.1 und FE2.1 empfohlen. Die gibt es auch als Lizenznachbau von Exar, XR22417 und XR22414.
Vielleicht verstehe ich deine Pläne ja komplett falsch aber hast du nicht 2mal 1.5k an der D+ Leitung? Einmal R27 und einmal R31. Das kann man mit dem Ohmmeter nachmessen. Thomas
Thomas schrieb: > Vielleicht verstehe ich deine Pläne ja komplett falsch aber hast du > nicht 2mal 1.5k an der D+ Leitung? Das hast du richtig gesehen. R31 gilt nicht und wurde mit R27 ersetzt. auf der Schaltung ist ja nur 1 pullup an der D+ Leitung. Ich werde morgen/oder am Montag im E-Labor eure Tipps noch mal durchgehen und gebe euch dann eine Rückmeldung, ob es funktioniert hat oder nicht. Quarzfrequenz muss ich auch noch mal messen. VG.
Hallo Zusammen, erstmal vielen Dank für die bisherige Unterstützung. Mein System konnte unter windows erkennt werden. Unter Linux aber noch nicht. Morgen werde ich noch weiter untersuchen, weil nun die Downstream port nicht funktionieren. Unter windows zeigt das System usb 1.1 statt usb 2.0 wie ich erwatete. habe ich noch was falsches getan oder ist es auch richtig so? vielleicht funktioniert das später nicht richtig. ich habe die Information aus windows angehängt. VG
USB 1.1 ist korrekt so. Deine Downstream-Ports funktionieren nicht, weil Du den falschen Powerswitch genommen hast. Das Schaltbild passt zum TPS2044B (Enables Low aktiv), nicht aber zum TPS2054B (Enables high aktiv). Siehe auch Figure 11 auf Seite 16 unten - da ist auch der TPS2044 verwendet. fchk
Frank K. schrieb: > USB 1.1 ist korrekt so. > > Deine Downstream-Ports funktionieren nicht, weil Du den falschen > Powerswitch genommen hast. Das Schaltbild passt zum TPS2044B (Enables > Low aktiv), nicht aber zum TPS2054B (Enables high aktiv). Siehe auch > Figure 11 auf Seite 16 unten - da ist auch der TPS2044 verwendet. > > fchk Frank K. schrieb: > Deine Downstream-Ports funktionieren nicht, weil Du den falschen > Powerswitch genommen hast. Das Schaltbild passt zum TPS2044B (Enables > Low aktiv), nicht aber zum TPS2054B (Enables high aktiv). Siehe auch > Figure 11 auf Seite 16 unten - da ist auch der TPS2044 verwendet. Hi, danke für deine Rückmeldung. das habe ich auch gemerkt. PWRon ist activ low und TPS2054 ist activ high. ich habe den TPS2054 statt TPS2044 benutzt, weil Mouser den als (nicht für neue Design empfohlen) gekennzeichnet hat. Der wurde wahrscheinlich abgekündigt. kennst du zufällig einen guten Bauteil mit dem ich die Pegel wandeln kann ?? Das würde ich gerne morgen noch testen. VG
Naja mit usb2 wird das nichts der 2046 ist ein reiner Fullspeed Hub usb1.1 ist also richtig. Wieso glaubst du das das Teil HiSpeed kann? Merke Usb2 bedeutet nicht automatisch HiSpeed. Thomas
Ludo S. schrieb: > danke für deine Rückmeldung. das habe ich auch gemerkt. PWRon ist activ > low und TPS2054 ist activ high. ich habe den TPS2054 statt TPS2044 > benutzt, weil Mouser den als (nicht für neue Design empfohlen) > gekennzeichnet hat. Der wurde wahrscheinlich abgekündigt. Bei TI steht der TPS2044B als active, wurde also nicht abgekündigt. Ansonsten LM3544MX-L, ist praktisch das gleiche. fchk
Thomas schrieb: > Naja mit usb2 wird das nichts der 2046 ist ein reiner Fullspeed Hub > usb1.1 ist also richtig. Wieso glaubst du das das Teil HiSpeed kann? > Merke Usb2 bedeutet nicht automatisch HiSpeed. Vielen Dank. Da hast du recht. Frank K. schrieb: > Ansonsten LM3544MX-L, ist praktisch das gleiche. Danke. Das habe ich eben in meiner Schaltung eingesetzt. Danke für eure Unterstützungen Das Gerät funktioniert jetzt unter Windows einwandfrei. Unter Linux habe ich ein weiteres Problem und bin immer noch mit der Fehlersuche beschäftigt. siehe Abb. Vielleicht hat einer mal eine Idee, was das seien könnte. Danke & VG Ludo S.
Ludo S. schrieb: > Unter Linux Gleiche Hardware (Computer) wie Windows, oder eine andere? Das sieht alles irgendwie nach Hardwarefehlern aus, nicht nach irgendwas mit dem OS selbst.
Jörg W. schrieb: > Gleiche Hardware (Computer) wie Windows, oder eine andere? Das ist eine andere Hardware. Die Schaltung ist die gleiche wie bei der Verwendung unter windows. VG. Jörg W. schrieb: > Das sieht alles irgendwie nach Hardwarefehlern aus Das denke ich auch und kann bisher den Fehler noch nicht finden VG
Ludo S. schrieb: > Das ist eine andere Hardware. Die Schaltung ist die gleiche wie bei der > Verwendung unter windows. Dann schau Dir z.B. mal mit 'nem DSO die USB Signale an. Denn da ist irgendwas grundlegendes kaputt.
Häng mal spaßeshalber noch einen weiteren USB-Hub dazwischen.
Für mich sieht es so aus als wenn die Überstromerkennung nicht funktioniert. Löte mal das PortIc aus und stell sicher dass an CUR Eingängen ein Pullup hängt. Die Downstream Ports gehen dann zwar nicht aber der Hub sollte korrekt erkannt werden. Thomas
Thomas schrieb: > Für mich sieht es so aus als wenn die Überstromerkennung nicht > funktioniert. > Löte mal das PortIc aus und stell sicher dass an CUR Eingängen ein > Pullup hängt. Da hängt einen 10k pullup auf 3V3. die Überstromerkennung sollte funktionieren. DP und DM sind nicht miteinander verbunden. Wenn Das Modul aus ist habe ich 3v3 auf DP und ca 0V auf DM. Wenn das Modul startet bekomme ich DP(0.9V) und DM(0.7V. So kann es nicht funktionieren.
Nun ich bin mir sehr sicher dass was mit dem PortIc nicht stimmt. Also entweder auslösen oder das richtige Ic einlöten. Linux so wie auch OSX reagieren wesentlich empfindlicher auf fehlerhafte Devices. Windows enumeriert fast alles. Der Hub selbst ist wohl ok sonst würdest du unter win auch Fehler bekommen. Es muss also an den Downstreams liegen. Deshalb mein Vorschlag die Downstreams erst Mal zu deaktivieren. Thomas
Anderer Vorschlag: Da ja Win und Linux unterschiedliche Maschinen sind würde spaßeshalber mal ein Ubuntu auf der Windows Machine booten und schauen ob lsusb deinen Hub findet. Vielleicht hast du ja auch den USB Port auf der Linux Maschine gegrillt. Thomas
Danke für deine beiden Vorschläge. Das werde ich morgen mal ausprobieren und sehen, was daraus kommt. Thomas schrieb: > Nun ich bin mir sehr sicher dass was mit dem PortIc nicht stimmt Eigentlich ist der PortIc nicht direkt mit dem Host (Linux) verbunden. Sondern an den Hub. Oder wirkt sich eine fehlerhafte Funktion auf den Hub bzw. den Upstream? Thomas schrieb: > Es muss also an den Downstreams liegen. Bisher hatte ich noch kein device an dem Downstream port dran. Heute habe ich mal den Hub im Betrieb gehalten und das Modul (Linux) aus und wieder eingeschaltet. Ich bekam regelmäßig so eine Fehlermeldung: usb usb1-port1: Cannot enable. Maybe the USB cable is bad? Aber wenn beide gleichzeitig starten oder das Modul zuerst wird den Hub nicht enummeriert. VG
Ich hab das nicht mehr so genau parat was Linux so alles beim enumerieren anstellt. Es ist bei mir schon 16 Jahre her als ich die Schaltung entworfen habe. Die Enumerierung unterscheidet sich aber grundlegend zwischen Win und Linux. Ich habe damals sogar Funktionen in meiner FW eingebaut, die unterschieden haben ob mein Device unter Win oder Linux/OSX arbeitet. Die Win OS Descriptior Requests gab es ja m.W. erst ab Vista. Generell würde ich auch mal checken ob die Downstream Ports keine Schlüsse haben. Das kann an den Überspannungsschutz ICs ganz leicht passieren. An allen Downstream Datenleitungen musst du die 15k nachweisen können. Jede Abweichung deutet auf Fehler hin. Zusätzlich kannst du mal messen ob VUsb auch an den Downstreams ankommt sprich ob die Ports enabled werden. Erst dann würde ich das Port Ic Mal runternehmen. Thomas
Thomas schrieb: > An allen Downstream Datenleitungen musst du die 15k > nachweisen können. Da habe genau die 15k. Thomas schrieb: > Zusätzlich kannst du mal messen ob VUsb auch an den Downstreams ankommt > sprich ob die Ports enabled werden. Ja die werden aktiv. Was ist den mit den Serien widerstände an den Upstream leitungen (2x 22R oder 2x27R) Müssen da auch unbedingt 2x 15k auf GND und (2x 22pF oder 2x 27pF) an GND sein ?
Der Upstreamport Port bekommt die Serienwiderstände aber NICHT die 15k diese sind ja schon im Downstream des Hosts verbaut. Die Cs habe bei mir nicht verbaut aber vorgesehen. Thomas
Hallo Zusammen, noch mal vielen Dank für eure Unterstützung und eure Beiträge. heute habe ich meine Schaltung mit Linux im Laufen bekommen. Es lag mehr auf der Host-Seite. Die OC-Leitung vom Host wurde auf der Leiterplatte nicht richtig gemacht deswegen, war der pin die ganze Zeit aktiv (activ low) und der Host reagierte nicht auf den Hub. Die habe ich überbrückt und nun funktioniert den Hub richtig. Thomas schrieb: > Der Upstreamport Port bekommt die Serienwiderstände aber NICHT die 15k Ich hatte vorher einfach so zwei 15k von D+ und D- auf GND geschaltet, und es ja trotzdem funktioniert. Es hat mich ja auch gewundert. Die habe ich nachher noch mal entfernt. VG
Der TUSB2046 hat ein Reste Problem wenn man ihn laut Datenblatt geschaltet 10k pull up an reset gg 3v3. Hier funktionieren bei mir 30-40% der ICS nicht korrekt. Keine Erkennung des HUBs. Scheint dass die interne State machine hier nicht die richtigen settings lädt. Abhilfe bringt ein zusätzlicher 1uF gg GND. Damit funktioniert das reset timing und alle nicht funktionalen PCBs konnten so zum Arbeiten gebracht werden. H
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.