Forum: Mikrocontroller und Digitale Elektronik USB-Leitungen und Aufbau auf Fehler überprüfen/testen (Max4999)


von Dominik (Gast)


Lesenswert?

Einen guten Tag wünsche ich Euch allen,

ich habe ein Problem im Zusammenhang mit einem USB-Multiplexer und 
hoffe, dass Ihr mir weiterhelfen könnt. Zurzeit arbeite ich an einem 
USB-Umschalter mit dem Maxim IC MAX4999 ( 
http://www.maxim-ic.com/datasheet/index.mvp/id/5838 ) und habe Probleme, 
dass ungefähr die Hälfte der Ports nicht funktionstüchtig ist, 
angeschlossene Geräte (USB-Sticks) werden nicht erkannt (die Enumeration 
schlägt fehl). Aktuell vermute ich, dass ein Problem mit den 
Datenleitungen besteht. Zusätzlich zu dem Multiplexer sind SMD-Ferrite 
in den Datenleitungen und ein ESD-Schutz eingebaut.

Da dies meine erste Platine mit USB (und dann auch noch 2.0) ist fehlt 
mir ein wenig der Ansatz wie ich nun überprüfen kann, woran es liegen 
könnte, dass die Ports nicht fehlerfrei funktionieren. Könnt Ihr mir 
vielleicht weiterhelfen?

von Dominik M. (dom1)


Lesenswert?

Also ich habe herausgefunden, dass die Ports mit einem Stick 
funktionieren, mit anderen USB-Geräten (Ipod oder andere Sticks) habe 
ich Probleme. Brauche ich jetzt so ein Oszi mit USB-Eye-Diagramm Analyse 
oder gibt es kostengünstigere Möglichkeiten herauszufinden warum die 
USB-Multiplexer nicht/nicht richtig funkitonieren?

ESD-Schutz ist ein TVS Dioden Array Semtech RClamp0502n.
SMD-Ferrit Wuerth 744230900.

von Uwe N. (ex-aetzer)


Lesenswert?

Hallo Dominik,

Schaltungsfehler ausgeschlossen ? Wenn möglich, das Schematic hier 
posten.
Layoutfehler ausgeschlossen ?
- beim routen auf Symetrie geachtet ? (USB Signale sind 
differentiell...)
- Signalpärchen (in etwa) gleichlang ?

Gruss Uwe

von Dominik M. (dom1)


Lesenswert?

Nabend!

Ich  bin mir bewusst, dass der Thread schon ein paar Monate alt ist, 
aber ich wurde von jemandem gebeten Tipps zum Max4999 zu schicken. Daher 
dachte ich es sei das Beste hier einfach meine Erfahrungen zu 
veröffentlichen, sodass jeder etwas davon hat und nicht nur einer! ;-)

Also ich weiß nicht wie viel Erfahrung Ihr mit USB und/oder 
Platinendesign Erfahrung habt, aber ich kann schon mal sagen, dass das 
ganze leider nicht so einfach ist wie eine UART-Schnittstelle und man 
sich genau überlegen sollte wie man das ganze designt.
Der Mux war Teil einer Abschlussarbeit, bei der zwei MAX4999 eingesetzt 
wurden um auf eine 16:1 Konfiguration zu kommen. In dieser Konfiguration 
lag auch wohl das Hauptproblem, dass nur manche Ports oder Sticks 
funktionierten: Die beiden ICs müssten in diesem Fall möglichst nah 
beieinander platziert werden! Das habe ich übersehen/nicht beachtet und 
habe beide ICs im Abstand von ca. 14 cm platziert. Folge waren 
Reflexionen, Signalstörung/Signalauslöschung. Schön wäre für solche 
Fälle ein Oszilloskop mit USB Compliance Testequipment, aber das ist 
schei** teuer (leider)!!! Die Verbindung zwischen beiden ICs habe ich 
übrigens asymmetrisch ausgeführt, d.h. die Leitungen wurden anstatt in 
einer T-Anordnung mehr in L-Form verlegt. Testweise habe ich dann die 
Leitungsführung unterbrochen und mit Kupferlackdraht versucht die 
Verbindung möglichst mittig wieder herzustellen, was mir auch recht gut 
gelungen ist. Die Platine funktioniert und die USB-Sticks werden 
erkannt! So konnte ein Redesign erst mal entfallen. Ansonsten ist zu 
beachten, dass keine Pull-ups oder sonstigen Bauelemente benötigt werden 
(außer die im Datenblatt angesprochenen Kondensatoren). Die 
Kondensatoren möglichst nahe platzieren!

Allgemein noch ein paar Hinweise zum Design:

- USB 2.0 ist nicht gleich 2.0 (Unterschiede zwischen Full/Highspeed 
beachten, falls nur Fullspeed benötigt wird ist die Sache etwas 
unkritischer)
- Achtung bei der 16:1 Konfiguration aus dem Datenblatt, dort müssen die 
Datenleitungen der Peripheriegeräte vertauscht werden!
- Möglichst gleich lange Leitungen für D+ / D- pro Port verwenden
- Möglichst kurze Leitungsführung der Datenleitungen auf dem Board 
einhalten
- Möglichst nur USB-Leitungen auf einem Layer führen
- Möglichst wenige Durchkontaktierungen/Layerwechsel der Datenleitungen 
vornehmen
- Abstand zwischen D+ und D- beachten und einhalten
- Layeraufbau, Leitungsabstand und Leiterbreite bestimmen/verändern die 
Impedanzen der Datenleitungen, dafür sofern möglich ein Layouttool mit 
Impedanzkontrolle einsetzen (ich habe Eagle genutzt und habe mir einen 
Layer-Stack mit dem SaturnPCB-Toolkit erstellt)
- Analoge/Digitale Schaltungsteile separieren
- Abwägung treffen ob ESD und/oder EMV-Schutz benötigt wird (kann Signal 
verschlechtern und bei Privatgebrauch vernachlässigt werden)
- Datenblatt LESEN und VERSTEHEN (bei Ungereimtheiten mal mit 
Kollegen/Forum über das Projekt sprechen)! :)
- Schaltung/Layout vor dem Fertigen MEHRMALS kontrollieren!

Gruß Dominik

von tgoetz (Gast)


Lesenswert?

@Dominik:
Danke für Tipps und die Erläuterungen.
Da ich nur einen 8er Switch mit Fullspeed benötige, sollte die 
Angelegenheit für mich hoffentlich nicht ganz so kompliziert werden.
War nur verwundert, dass im Datenblatt nichts über Schutzelemente 
(Terminierung, Dioden, Kapazitäten) zu finden war. Hatte allerdings in 
meinem einfachen Testaufbau auch keine Probleme feststellen können.

von Dominik M. (dom1)


Lesenswert?

Hallo Tobias,

ja bei nur einem Switch denke ich sollte das ganze problemlos(er) sein. 
Jedoch musst du beachten, dass der Switch selber keinen Schutz gegen 
ESD, EMV, Überstrom o.ä. besitzt. Bei meiner Recherche bin ich auch auf 
Switchs/Multiplexer von anderen Herstellern (TI, Intersil, Fairchild 
...) gestoßen die einen ESD-Schutz eingebaut haben! Von Maxim gibts auch 
welche, allerdings ist der MAX4999 der einzige 8:1 Multiplexer auf dem 
Markt! MAX4899E/MAX4899AE wären 3:1 oder 4:1 Muxe mit ESD-Schutz:
http://www.maxim-ic.com/datasheet/index.mvp/id/5233

Gruß Dominik

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.