Forum: Platinen Feedback zu Platine mit USB Highspeed Switch (kein Hub)


von David H. (tuxpilot)



Lesenswert?

Hi, ich möchte einen USB Switch bauen, um USB-Sticks ferngesteuert “an- 
und abzustöpseln”. Das ganze doppelt auf einer Platine.

VBus trennen geht ja nicht einfach, weil die Datenleitung zuerst 
getrennt werden muss. Daher diese Platine mit dem FSUSB30 
Analogschalter.

Der Wannenstecker ist für die Steuerung per Mikrocontroller/Raspi, mit 
3,3V Logikpegel.

“Eingang” ist eine USB-B-Buchse, “Ausgang” ist eine doppelte 
USB-A-Buchse.

Die Datenleitungen sind mit Schutzdioden speziell für USB geschützt. Ist 
das Layout an diesen Dioden in Ordnung?

Dazu kommen Schalter für VBus, um am USB-Stick einen harten Reset 
durchzuführen (falls nötig), und um evtl. Strom zu sparen.

Die Platine soll mit dem 4-Lagen-Prozess von aisler.net gefertigt 
werden. Stackup: 
https://aisler.net/help/design-rules-and-specifications/4-layer-pcb-stackup
Ich habe mir dafür errechnet, dass die USB-Leiterbahnen 0.3mm breit bei 
0.15mm Abstand sein sollten, bei 125μm Abstand zur Ground Plane auf der 
zugewandten Innenlage.
Die Längen von D+ und D- sind zueinander auf 0,2mm genau angepasst. Die 
Schutzdiode hängt allerdings “schief” drin.
Bei der USB-A-Buchse war ich etwas planlos wie ich da rankomme, also 
habe ich die Bahnen kurz deutlich schmaler gemacht und die Lötpads 
deutlich verkleinert.
Aber bei insgesamt 6cm wird wohl jeder Mist trotzdem funktionieren, 
oder?

Der Wannenstecker hat übrigens die Pinbelegung passend für den 
Leistungssensor aus Beitrag "Feedback zu Platine mit ARM und 5 Stromsensoren", aber 
das ist hier nicht so relevant. ;)

> also ist dein Beitrag nun ein Feedback auf irgendwas, das ich nicht
> kenne oder erwartest du von anderen, daß sie ein Feedback geben?

Natürlich dürft ihr mir jetzt Feedback geben. :D

von Christian B. (luckyfu)


Lesenswert?

ich bin mir nicht sicher, ob das mit den Analogschaltern funktionieren 
wird...
warum nimmst du nicht einen Chip wie den
https://www.ti.com/product/TUSB2046B?HQS=OCB-tistore-invf-partpage-invf-store-SnapEDA-wwe
der ist zwar ein Hub aber da kannst du die einzelnen Ports an und 
abschalten... Außerdem hast du dann direkt noch einen Bustreiber auf der 
Platine, was auch nicht schlecht ist. Des weiteren brauchst du nur einen 
upstream port...

Achja: digikey hat über 700 davon auf Lager, ist ja auch nicht ganz 
unwichtig in der heutigen Zeit

von Mac G. (macgyver0815)


Lesenswert?

Christian B. schrieb:
> ich bin mir nicht sicher, ob das mit den Analogschaltern funktionieren
> wird...

Die haben ja nicht umsonst "USB" schon im Namen. Also Signaltechnisch 
wird das schon passen wenn man nicht noch lange Kabel dahinter hängt und 
die USB Sticks direkt anschließt.

von Tuxpilot (Gast)


Lesenswert?

Ich möchte absichtlich keinen Hub nehmen, damit die Kommunikation nicht 
verändert wird.

Beabsichtigte Verwendung ist mit USB-Sticks mit Live-Systemen drauf, um 
einen Computer ferngesteuert zurücksetzen zu können. Eine Alternative zu 
einem fernsteuerbaren Bootloader.

Zum Beispiel mein Laptop kann nicht vom Stick booten wenn ein Hub 
dazwischen ist, mein Desktop hingegen schon.

von Georg (Gast)


Lesenswert?

David H. schrieb:
> Aber bei insgesamt 6cm wird wohl jeder Mist trotzdem funktionieren,

Vermutlich. Die Berechnungen stimmen wohl sowieso nicht, da du zwischen 
den beiden Paaren im Bild 8 eine GND-Leiterbahn eingefügt hast, die 
verändert aber die Impedanz benachbarter Leiterbahnen ebenso wie die 
GND-Fläche darunter, und das noch dazu unsymmetrisch.

Noch viel schlimmer, eine HF-Todsünde: du hast die GND-Fläche (Bild 11) 
gerade unter den impedanzkontrollierten Leitungen quer dazu 
unterbrochen. Schlimmer gehts nimmer. Aber wenn JEDER Mist funktioniert, 
dann vieleicht auch dieser...

Georg

von Tuxpilot (Gast)


Lesenswert?

Georg schrieb:
> David H. schrieb:
>> Aber bei insgesamt 6cm wird wohl jeder Mist trotzdem funktionieren,
>
> Vermutlich. Die Berechnungen stimmen wohl sowieso nicht, da du zwischen
> den beiden Paaren im Bild 8 eine GND-Leiterbahn eingefügt hast, die
> verändert aber die Impedanz benachbarter Leiterbahnen ebenso wie die
> GND-Fläche darunter, und das noch dazu unsymmetrisch.

Hi Georg, danke für dein Feedback. Ich weiß aber nicht genau was du 
meinst.

Zwischen D+ und D- läuft keine Leiterbahn explizit. Aber da wo sie die 
Seite wechseln, an der ESD-Diode (SOT 23-6), da sind für ein paar 
Millimeter die beiden Innenlagen mit GND dazwischen.

Aber du meinst wahrscheinlich die rote Leiterbahn die vom Analogschalter 
diagonal nach rechts unten läuft. Die habe ich gezeichnet, um 
sicherzustellen, dass dort die GND-Fläche nicht unterbrochen wird, wenn 
ich das eine Leitungspaar zu dicht am anderen Leitungspaar verlege. Ist 
das Unsinn?

Oder meinst du, dass der Abstand vom Leitungspaar zur GND-Fläche auf der 
gleichen Lage zu klein ist? Das sind 0,25 oder 0,3 Millimeter, und damit 
ist der Einfluss eher kleiner als der der GND-Fläche 0,125 Millimeter 
darunter. Ist das trotzdem zu eng, weil die GND-Fläche links und rechts 
eher unregelmäßig ist?

> Noch viel schlimmer, eine HF-Todsünde: du hast die GND-Fläche (Bild 11)
> gerade unter den impedanzkontrollierten Leitungen quer dazu
> unterbrochen. Schlimmer gehts nimmer. Aber wenn JEDER Mist funktioniert,
> dann vieleicht auch dieser...

Auf Bild 11 ist ja die untere innere Lage. Die ist da unterbrochen (da 
wo “MUX VCC” steht), wo die Leitungspaare auf der oberen Lage 
langlaufen, d. h. die GND-Fläche direkt unter dem Leitungspaar ist 
zusammenhängend. Auf Bild 11 ist es etwas irritierend, da KiCad trotzdem 
die oberste Lage direkt darunterzeichnet... Meintest du das?

Oder sollten die Flächen auch auf weiter entfernten Lagen durchgängig 
sein? Irgendwo müssen diese Leitungen ja verlegt werden... ;)

> Georg

David :)

von Georg (Gast)


Lesenswert?

Tuxpilot schrieb:
> Oder sollten die Flächen auch auf weiter entfernten Lagen durchgängig
> sein?

Was zählt: drüber, drunter und daneben.

Tuxpilot schrieb:
> Oder meinst du, dass der Abstand vom Leitungspaar zur GND-Fläche auf der
> gleichen Lage zu klein ist?

Das ist keine Frage von zu gross oder zu klein, nur müssen seitliche 
GND-Potentiale in Reichweite eben auch in die Berechnung einbezogen 
werden. Der Abstand ist ja etwa gleich wie der zwischen den beiden 
Leitungen. Vernachlässigen kann man das wenn es genau sein soll nicht. 
Es bilden sich Felder aus

1. zwischen D+ und D-
2. zwischen D+ und GND sowie zwischen D- und GND (darunter)
3. zwischen D+ und GND sowie zwischen D- und GND (daneben)

Wie stark jeweils hängt vom jeweiligen Abstand ab. Die Leitungen nur als 
einfaches Diff Pair ohne seitliche GND-Einbettung zu berechnen ist nur 
eine Näherung, aber die meisten kostenlosen Werkzeuge können die 
vorliegende Konfiguration nicht berechnen, am besten ist ein Field 
Solver geeignet. Im Saturn Toolkit wäre das "Coplanar Wave", aber mit 2 
differentiellen statt einer Leiterbahn, gibt es aber nicht.

Tuxpilot schrieb:
> weil die GND-Fläche links und rechts
> eher unregelmäßig ist?

Das macht die Sache weitgehend unberechenbar, weil ja mal GND, mal eine 
Aussparung für ein Via neben der Leiterbahn liegt - da ändert sich 
jedesmal lokal die Impedanz. Dabei wäre das garnicht notwendig. Auch 
eine seitliche GND-Einbettung darf nicht unterbrochen werden! Das ist 
auf der LP an zahllosen Stellen der Fall, auch an den grossen 
Bohrlöchern. Das sind alles unstetige Stellen im Impedanzverlauf entlang 
der Leiterbahn. "Ünregelmässig" ist eine Untertreibung, die GND-Fläche 
ist ausgefranzt.

Georg

von Christian B. (luckyfu)


Angehängte Dateien:

Lesenswert?

Georg schrieb:
> Das ist keine Frage von zu gross oder zu klein, nur müssen seitliche
> GND-Potentiale in Reichweite eben auch in die Berechnung einbezogen
> werden. Der Abstand ist ja etwa gleich wie der zwischen den beiden
> Leitungen. Vernachlässigen kann man das wenn es genau sein soll nicht.
> Es bilden sich Felder aus

Wieso überhaupt die Füllung der Bestückungsseiten mit GND? Üblicherweise 
versucht man bei Differential pairs, seitliche Planes, egal welches 
Potential die haben, zu vermeiden da sie immer zu Unsymmetrien führen. 
Hier ist das auch nicht notwendig, da du ja in den Innenlagen 
entsprechende Bezugsflächen hast. (Etwas anderes ist das bei Single 
ended differentiellen Leitungen, die sollte man sogar seitlich 
einpacken)

Eine Bezugsfläche für das diff pair ist jede Kupferfläche. Das Potential 
ist erstmal egal, auch VCC Planes können Bezugspotential sein. (Sogar 
breite Leiterzüge werden Bezugspotential) Gut geht das natürlich nur, 
wenn du in der unmittelbaren Nähe des Punktes, wo das diff pair diese 
Bezugsfläche nutzen wird, einen kleinen Kondensator (Vor allem physisch 
klein, um die parasitären Einflussfaktoren so gering wie möglich zu 
halten) platziert wird (Zwischen dem ursprünglichen und dem zukünftigen 
Potential, das kann also z.B. auch zwischen VCC 5V und VCC 3,3V sein!). 
Wenn dein Diff pair die Lage wechselt will das an dieser Stelle auch der 
Rückstrom tun (Kann er das nicht, wird er sich den nächstmöglichen Punkt 
suchen was zu einer Störstelle führt und in der Folge auch zu EMV 
Problemen, da dort nicht nur Energie abgestrahlt sondern eben auch 
absorbiert wird). Du musst dann so nah wie möglich mindestens ein GND 
Via setzen, wenn jeweils ein GND Potential die Bezugsfläche ist.

Ich hab dir mal ein Beispiel eines aktuellen Projektes von mir 
angehangen. (Ich hatte hier Platz und konnte es deshalb quasi ideal 
lösen, in der Regel hat man nicht so viel Luft drumherum, dann muss auch 
mal 1 Via für 2 diff pairs genügen) Zu sehen ist: Top(Rot), I2 (Bezug 
Bot, hellblau) und Bot (blau). I1 ist komplett GND, bei I2 ist außen 
herum noch eine VCC Plane, welche unter dem SVB liegt, diese ist mit 
einer GND Insel versehen in dem Bereich, in dem ich auf Bot die 
Impedanzgeführten Leiterzüge habe. Der Überdeckungsbereich muss 
mindestens der doppelte Abstand sein, besser der 3-fache des Paares. 
Also die Lagen nicht zu eng abschneiden, sondern besser großzügig.

: Bearbeitet durch User
von Tuxpilot (Gast)


Lesenswert?

Danke für die Erläuterungen, Georg und Christian!

Ich denke, ich werde das Layout zu großen Teilen noch mal machen. Dann 
mit Innen 1 als durchgängige GND-Fläche, und Innen 2 im Bereich der 
differentiellen Leitungen auf der Unterseite als GND-Fläche. Für die 
beiden Steuersignale und die MUX_3V3 werde ich im wesentlichen das 
Layout aus Bild 8 behalten, also auf Innen 2 gemeinsam unter den 
differentiellen Leitungen hindurch. Oben und Unten spare ich mir die 
GND-Fläche und halte dafür etwas mehr Abstand.

Ausserdem wird ein Schalter umgedreht, mit 2x USB-B. Wenn das System 
under Test sowieso von einem lokalen Raspberry Pi gesteuert wird, kann 
dieser auch Schreibzugriff auf den Boot-USB-Stick bekommen. ;)

von Frank K. (fchk)


Lesenswert?

Nochwas: zum Schalten der USB-VBUS gibts extra strombegrenzte Load 
Switches.
Z.B. TPS2042 oder TPS2052 (unterscheiden sich in der Polarität des EN 
Signals). Das finde ich sicherer.

fchk

von Squeegee (Gast)


Lesenswert?

Hallo,

Hinweis von einem Bestücker:
Bitte keine Vias in SMD-Pads setzen oder Vias direkt neben SMD-Pads ohne 
Lötstopplack-Steg (Stegbreite mindestens 100 µm): Zieht Dir das Zinn 
beim Löten in die Bohrung und fehlt danach auf dem Pad.
Es sei denn Du willst das Board mit Vias filled and capped fertigen 
lassen (ziemlich teuer).

Squeegee

von Tuxpilot (Gast)


Lesenswert?

Wie würde ich dann die ESD-Diode mit der USB-Datenleitung verbinden? 
Vias zwischen die beiden Pads passt nicht, Vias daneben oder davor macht 
längere Stubs.

Beitrag #6919817 wurde von einem Moderator gelöscht.
von Frank K. (fchk)


Lesenswert?

Tuxpilot schrieb:
> Wie würde ich dann die ESD-Diode mit der USB-Datenleitung verbinden?
> Vias zwischen die beiden Pads passt nicht, Vias daneben oder davor macht
> längere Stubs.

An besten anderen Typ nehmen, z.B. WE-8240116. Ein Baustein sichert 
einen ganzen USB-Port ab: VBus, D+ und D-. Wenn man D+/D- unter dem 
Baustein durchführt, bekommt man eine schöne symmetrische 
Leiterbahnführung.

https://www.we-online.com/katalog/datasheet/8240116.pdf

fchk

Beitrag #6919956 wurde von einem Moderator gelöscht.
Beitrag #6920090 wurde von einem Moderator gelöscht.
von Tuxpilot (Gast)


Lesenswert?

Frank K. schrieb:
> Wenn man D+/D- unter dem
> Baustein durchführt, bekommt man eine schöne symmetrische
> Leiterbahnführung.

Der Baustein ist ja selbst asymetrisch. Aber der größere Abstand 
zwischen den Pins erlaubt mir, das differenzielle Leitungspaar 
dadurchzuquetschen, oder wie?

Oder quer durch?

Ich habe auch sowas hier gemacht: 
https://www.mikrocontroller.net/attachment/537939/09_USB_zoom.png
fand ich aber nicht wirklich hübsch.

von Frank K. (fchk)


Angehängte Dateien:

Lesenswert?

Tuxpilot schrieb:
> Frank K. schrieb:
>> Wenn man D+/D- unter dem
>> Baustein durchführt, bekommt man eine schöne symmetrische
>> Leiterbahnführung.
>
> Der Baustein ist ja selbst asymetrisch. Aber der größere Abstand
> zwischen den Pins erlaubt mir, das differenzielle Leitungspaar
> dadurchzuquetschen, oder wie?
>
> Oder quer durch?

Der Länge nach durch, also zwischen dem VBUS und dem GND-Pin durch. Ich 
verwende meist 0.2mm Breite und 0.2mm Spacing für den 4L-01 Lagenaufbau 
von Multi-CB, und das passt problemlos. Das sollte auch für Dich passen.

fchk

von Tuxpilot (Gast)


Angehängte Dateien:

Lesenswert?

Habe angefangen, neu zu routen, und habe das mal so gemacht. (Siehe 
Bild)

Rot = Oben, Grün = Unten

3,3V für den Analogschalter und die beiden Steuersignale werden 
reichlich Platz auf der jeweils abgewandten Aussenlage haben.

Frank K. schrieb:
> An besten anderen Typ nehmen, z.B. WE-8240116. Ein Baustein sichert
> einen ganzen USB-Port ab: VBus, D+ und D-.

Den Baustein habe ich jetzt nicht genommen, sondern weiterhin den meiner 
Wahrnehmung nach normalen SOT-23-6. (KiCad hat für das vorgeschlagene 
komische Ding zwar einen Footprint, aber gespiegelt. ;D )

von Frank K. (fchk)


Lesenswert?

So ist es aber auch unschön, weil Du Stichleitungen hast.

Dann nimm doch sowas hier:

https://www.onsemi.com/pdf/datasheet/esd8704-d.pdf

Da kannst Du schön gerade durchrouten. Ist dann auch für USB3 geeignet.

fchk

von Tuxpilot (Gast)


Angehängte Dateien:

Lesenswert?

Die Stichleitungen kommen ja hauptsächlich durch die Beinchen und den 
Leadframe. Auf der Platine könnte man sie etwas kürzer machen, siehe 
Bild.

Wie hättest du den den WE-8240116 angeschlossen?

Den ESD8704 kenne ich, aber einen 1x2mm Zehnpol finde ich doch etwas zu 
fummelig zum Löten.

von Christian B. (luckyfu)


Lesenswert?

Wenn du jetzt noch ein GND via einbaust, (an den Stellen, wo dein 
differentielles Signal die Bezugsebene wechselt) ist es schon ziemlich 
optimal. Die Mikrometer Längenversatz, die hier entstehen, sind 
unproblematisch.

von user32 (Gast)


Lesenswert?

Frank K. schrieb:
> So ist es aber auch unschön, weil Du Stichleitungen hast.

So kurze spielen bei USB 2.0 keine große Rolle.

Was aber eine Rolle spielt, sind GND Vias neben den Vias für die USB 
Signale... da sind aktuell noch gar keine in der Nähe.

von Georg (Gast)


Lesenswert?

user32 schrieb:
> So kurze spielen bei USB 2.0 keine große Rolle.

Die von OUT1 könnte man auch noch deutlich kürzer machen.

user32 schrieb:
> Was aber eine Rolle spielt, sind GND Vias neben den Vias für die USB
> Signale... da sind aktuell noch gar keine in der Nähe.

Für wirkliche Hispeed-Signale werden bei einem Lagenwechsel bis zu 6 
GND-Vias rund um das Signal-Via empfohlen. Im Beipiel wäre das Overkill.

Georg

von Christian B. (luckyfu)


Lesenswert?

Georg schrieb:
> Für wirkliche Hispeed-Signale werden bei einem Lagenwechsel bis zu 6
> GND-Vias rund um das Signal-Via empfohlen. Im Beipiel wäre das Overkill

Das Stimmt, aber ganz ohne wird mit an Sicherheit grenzender 
Wahrscheinlichkeit für Probleme sorgen. Vielleicht bei USB 2.0 nicht 
funktional ganz sicher aber bei der EMV. Eins Pro Lagenwechsel sollte 
schon drin sein. So nah am Wechsel wie möglich. 2 - 4 währen natürlich 
besser, alles darüber purer Luxus.

von David H. (tuxpilot)



Lesenswert?

Guten Abend, ich schon wieder! ;)

Ich habe dieses Projekt jetzt fortgesetzt, und wie angekündigt gibt es 
jetzt einen MUX auf zwei USB Devices und einen MUX auf zwei USB Hosts.

Ausserdem habe ich mir in der Zwischenzeit Gedanken gemacht, wie man den 
Schirm vom USB-Stecker anschließt. Ich stelle fest, dass ich es nicht 
wirklich gut weiß. Darum gibt es jetzt den Anschluss von GND+Schirm und 
VBUS als Schaltplanseite, wo ich es zentral ändern kann. (Bild 16) (Auf 
dem Layout geht es natürlich nicht so leicht.)

Aktuell habe ich 4,7μF + 1MΩ für den Schirm, GND direkt auf die Platine, 
und VBUS per Ferritding.

GND direkt auf Platine beantwortet auch, wie ich die ESD-Dioden an GND 
anschließe: Direkt. An VBUS sind sie ebenfalls direkt angeschlossen, 
noch vor dem Ferritding. Um den MUX korrekt zu schützen, müssten sie 
eigentlich an dessen Versorgungsspannung angeschlossen werden, um V_IN ≤ 
VCC sicherzustellen, oder? Sollte ich das anpassen?

Die ESD-Dioden sind überflüssigerweise auch an der Stiftleiste für die 8 
Steuersignale vorhanden, und dieses Mal ist es mir gelungen, sie 
deutlich eleganter in die Leiterbahnen der Steuersignale einzubinden.

Die USB-Leitungspaare sind meiner Einschätzung nach auch viel besser als 
vorher. Nach Links und Rechts ist relativ viel Platz, und direkt 
darunter befinden sich durchgängige Masseflächen. Sind beim Lagenwechsel 
(also direkt am MUX) genug GND-Vias?

Auf Bild 3 habe ich mal dargestellt, wie ich die Versorgungsspannung 
einsammel. Von den 3 USB-B-Buchsen und von der Stiftleiste zu den 
Dioden, und dann zum Spannungsregler. Dabei läuft parallel je eine 
GND-Leitung auf der gleichen Lage, wahrscheinlich überflüssig.

Auf Bild 4 geht VBUS durch die 4 High-Side-Switches zu den 
USB-A-Buchsen.
Die High-Side-Switches für den unteren MUX sind jetzt bidirektional (2x 
P-FET), damit nicht ein USB-Host den Anderen über diese Schaltung mit 
VBUS versorgt.

Auf Bild 5 gehen die 3,3V vom Spannungsregler zu den MUX. Ebenfalls mit 
GND parallel.

Dann habe ich mir noch was zu den Stubs bei den ESD-Dioden überlegt. 
(Bild 10) Wäre das eine bessere Lösung?

Der Schirm sollte ja idealerweise an das Metallgehäuse gehen. 
Stattdessen habe ich auf den Aussenlagen einen Ring um die Platine 
gezeichnet, welcher an den Steckern jeweils über den RC-Dings mit GND 
verbunden ist. Habe ich da Mist gebaut? Ist das jetzt eine Ringantenne? 
:D

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.