Forum: Mikrocontroller und Digitale Elektronik USB-Hub Design


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Hallo,
ich möchte mir gerne einen Entwickler-USB-Hub bauen. Eckdaten sehen in 
etwa so aus:
- USB 3.1
- mind. 1A pro Port
- Stromlimitierung auf bis zu mindestens 100mA (gerne auch niedriger)
- Massives Gehäuse
- Gruppen von USB Ports separat abschaltbar (Feierabend)
- Kurzschlussfest
- Ports über USB Ein- / Ausschaltbar
- Display, Tasten und LEDs für Einstellen und Darstellen.

Ich habe jetzt mal ein wenig Recherchiert. Mit dem 4-Port Hub TUSB8041A 
von TI könnte ich einen 6 Port-Hub entwerfen, bei dem noch ein Port für 
einen Microcontroller übrig bliebe. An einen TUSB8041A kommt der µC, 2 
Port und ein weiterer TUSB8041A für weitere 4 Ports.

Stromlimitierende Power Switches, habe ich so einige gefunden, auch 
einige, bei denen sich das Limit über I2C einstellen läßt, aber keinen 
der eine Auflösung bis runter auf 100mA (oder noch weiter) hätte. Der 
UCS2114 von Microchip währe ganz passend, aber das Limit läßt sich nur 
in 8 Stufen einstellen und die unterste Stufe wäre ~0,5A.

Hat da jemand eine gute Lösung (für den Strom limitierenden 
Power-Switch)?

Ich habe da den INA260 von TI gefunden, der könnte pro Port den Strom 
messen und im Überstromfall den Fehler and den TUSB8041A melden. Der 
brächte dann aber noch mal zusätzlich einen Switch, weil der nur messen 
kann und nicht schaltet. So ganz diskreter Aufbau mit Shunt, OP etc. 
käme mir jetzt unnötig kompliziert vor, oder? (Der Überstrom muss ja 
recht zeitnah zum Switch gemeldet werden).

Für den Entwickler-USB-Hub-Der-Träume, welche features werde ich später 
vermissen? ;-) Galvanische Trennung? Heizplatte für's Toast?

Ergibt die Bauteilauswahl (TUSB8041A) soweit Sinn?

schöne Grüße,

Torsten

: Verschoben durch Moderator
von Chris K (Gast)


Bewertung
lesenswert
nicht lesenswert
Hast du dir schon die USB 3 Spezifikation durchgelesen? Das Routing von 
USB 3.1 ist nicht ohne. Differentielle Leitungspaare, gleiche Länge der 
differentiellen Leitungen und auch der Paare untereinander. Hast du ein 
passendes Scope, um dir das Augendiagramm bei den Datenraten anzeigen zu 
lassen? Wenn nicht können dich die ersten Layouts ordentlich Lehrgeld 
kosten.

Ansonsten ist der TI schon ein ganz brauchbarer Chip.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Chris K schrieb:
> Hast du dir schon die USB 3 Spezifikation durchgelesen? Das Routing von
> USB 3.1 ist nicht ohne. Differentielle Leitungspaare, gleiche Länge der
> differentiellen Leitungen und auch der Paare untereinander. Hast du ein
> passendes Scope, um dir das Augendiagramm bei den Datenraten anzeigen zu
> lassen? Wenn nicht können dich die ersten Layouts ordentlich Lehrgeld
> kosten.

Ne, habe ich alles nicht (Software-Entwickler halt). Ich denke aber, 
dass wenn ich das es als USB 2 auslegen würde, würde es wahrscheinlich 
nicht viel günstiger und weniger Aufwand werden. Wenn ich mit USB 3 
anfange und genau diese HF Sachen nicht hin bekomme, sollte der Hub aber 
immer noch als USB 2 oder aber als 5V Spannungsquelle nutzbar sein.

Beitrag #6586291 wurde von einem Moderator gelöscht.
von Chris K (Gast)


Bewertung
lesenswert
nicht lesenswert
Dann kann ich dir nur raten, dich penibelst an die Design Vorgaben zu 
halten. Im Datenblatt vom TUSB stehen ja schon ein paar Anforderungen. 
90 Ohm differentielle Paare. Nicht mehr als 5 mil Versatz. Leitungen 
kurz halten, ohne Vias oder andere Arten von Impedanzsprüngen. Schau dir 
auch die Stecker genau an. Kann man nicht von Hand löten, da man an die 
innere Reihe nicht dran kommt. Sperrflächen beachten und Fertiger 
suchen, der passend feine Strukturen kann.

von Gustl B. (gustl_b)


Bewertung
lesenswert
nicht lesenswert
Lass dich nicht verrückt machen, der Längenausgleich ist nicht sehr 
wichtig und Vias darf man natürlich auch setzen für den Lagenwechsel.
Guck dir die Layouts von USB3 Hubs an, das sieht oft grauenhaft aus und 
die werden trotzdem verkauft und funktionieren.
Es ist eben so, wenn du dich möglichst genau an die harten Vorgaben 
hältst, dann bist du weit auf der sicheren Seite. Wenn du davon 
abweichst und je weiter du abweicht desto näher kommst du an die Grenze 
an der das nicht mehr funktioniert.
Als Fazit würde ich mich grob an die Regeln halten, aber auch keine 
Kopfstände machen. Wenn du einen Lagenwechsel brauchst, dann mach den.

Warum sollte Handbestückung nicht gehen? Um welchen Baustein geht es? 
USB-C Buchsen kann man schön mit Heißluft löten und ICs sowieso.

Edit:
Wenn du möchtest kannst du Schaltplan und Layout hier herzeigen bevor du 
die Platinen fertigen lässt. Dann bekommst du dazu Kritik.

: Bearbeitet durch User
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Gustl B. schrieb:
> Edit:
> Wenn du möchtest kannst du Schaltplan und Layout hier herzeigen bevor du
> die Platinen fertigen lässt. Dann bekommst du dazu Kritik.

Ja, das werde ich gerne tun. Vielleicht packe ich das ganze einfach auf 
Github.

Aufbau könnte aus drei verschiedenen Komponenten bestehen:
- 5V / 15A Spannungsversorgung
- Base-Plane mit einem USB-Hub, Ansteuerung von Display und Click Wheel, 
1,1V und 3,3V Versorgung und 3 I2C Ports und 3 USB 3 Ports
- Hub-Plane mit einem USB Eingang und 4 Ports, Strombegrenzung, 
Port-Abschaltung, 1 Taste pro Port, eine 3-farbige LED pro Port, 
Ansteuerung über I2C.

Mir sind noch zwei Wünsche eingefallen, zu denen ich Tipps gebrauchen 
könnte. Ich wollte jedem Port eine dreifarbige LED spendieren, um 
Zustände anzuzeigen. Ich fänd' es super "cool", wenn die USB Buchsen 
einen leuchten Ring hätten. Hat dazu jemand eine Idee?

Zur Bedienung wollte ich ein kleines Display spendieren und ein Click 
Wheel wir bei den alten iPods. Kennt jemand eine Lösung für so ein Click 
Wheel? Habe Gestern nur so kapazitive Bedienelemente gefunden.

von Andre (Gast)


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:
> Hat dazu jemand eine Idee?

Dafür brauchst du einen Lichtleiter in der Frontplatte. In deinem Fall 
einen Ring rund um die Buchse. Ich würde die Löcher in der eigentlichen 
Frontplatte größer fräsen und dann mattes Plexiglas dahinter kleben. In 
das Plexiglas kann man dann von der Platine aus rein leuchten. Es gibt 
auch spezielle Platten die Licht gleichmäßig verteilen können.

Das Click Wheel kannst du mit QTouch gut umsetzen, sowas habe ich in den 
Microchip Appnotes schon gesehen. Ich würde wahrscheinlich einen kleinen 
Controller für die Touch Auswertung abstellen und die Eingaben per 
I2C/GPIO abholen.

von Frank K. (fchk)


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:

> Ne, habe ich alles nicht (Software-Entwickler halt). Ich denke aber,
> dass wenn ich das es als USB 2 auslegen würde, würde es wahrscheinlich
> nicht viel günstiger und weniger Aufwand werden. Wenn ich mit USB 3
> anfange und genau diese HF Sachen nicht hin bekomme, sollte der Hub aber
> immer noch als USB 2 oder aber als 5V Spannungsquelle nutzbar sein.

Fange erstmal mit USB2 an und lerne daran. Nimm den USB2517, der hat 7 
Ports, da brauchst Du nur einen Hub Chip, und der Chip selber ist 
unproblematisch. Einziger Haken, auf den ich mal reingefallen bin: Wenn 
Du ein EEPROM anschließt, dann kannst Du das EEPROM nicht über den Hub 
programmieren. D.h. das EEPROM muss vorprogrammiert eingelötet werden. 
Oder Du hast einen Microcontroller, der I2C Slave spielt, startet, sich 
initialisiert und dann per Reset den Hub-Chip startet, der sich dann 
seine Konfiguration holt.

Nachtrag: Der USB-Hub kann nicht nur I2C Master (für ein EEPROM), 
sondern auch I2C/SMBUS Slave sein, was die Sache vereinfacht.

Zur Strombegrenzung eignen sich auch die eFuse Chips von TI.
https://www.ti.com/de-de/power-management/power-switches/efuse-hotswap-controllers/products.html

Z.B. https://www.ti.com/lit/ds/symlink/tps25921l.pdf

Da kannst Du alles mögliche einstellen und dir aussuchen, ob der Chip 
bei Überstrom den Strom begrenzen oder komplett abschalten soll, und je 
nach Chip beibt der Port nach Auslösung dauerhaft aus oder schaltet sich 
nach einer Zeit automatisch wieder an. Manche dieser Chips haben auch 
einen Spannungsausgang, der proportional zum durchfließenden Strom ist.

fchk

: Bearbeitet durch User
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Frank K. schrieb:
> Fange erstmal mit USB2 an und lerne daran. Nimm den USB2517, der hat 7
> Ports, da brauchst Du nur einen Hub Chip, und der Chip selber ist
> unproblematisch.

Meine Idee war ja, wenn ich das Layout von dem USB 3 Hub nicht hin 
bekomme, dann wird der sicher zumindest noch als USB 2 Hub funktionieren 
(oder Zumindest als 5V Spannungsquelle mit einstellbarer 
Strombegrenzung). Ich denke im Moment eher darüber nach, dass ganze in 
drei Komponenten (siehe Oben) zu Teilen und erst einmal mit einer 
Komponente anzufangen. Oder vielleicht sogar erst einmal ein kleiner 
Test mit der USB-Stecker Beleuchtung und dem Click Wheel.

> Nachtrag: Der USB-Hub kann nicht nur I2C Master (für ein EEPROM),
> sondern auch I2C/SMBUS Slave sein, was die Sache vereinfacht.

Ja, dass ist beim TUSB8041A auch so. Ein µC kommt da auf jeden Fall 
rauf, alleine damit ich die Ports über USB zurück setzen kann (um z.B. 
Tests zu automatisieren).

> Zur Strombegrenzung eignen sich auch die eFuse Chips von TI.
> 
https://www.ti.com/de-de/power-management/power-switches/efuse-hotswap-controllers/products.html

Da kann man die Höhe des Stroms aber auch nur wieder über einen 
Widerstand einstellen. Ich wollte das aber über den µC machen, sodass 
ich den Strom am Display relativ genau (mind. 100mA Schritte) vorgeben 
kann.

Ich würde auch gerne die Überstrom-Zustände vom µC aus einsammeln 
können, damit ich z.B. auch wieder auf USB ausgeben könnte, oder z.B. 
die LED am entsprechenden Port blinken lassen könnte, ohne zusätzliche, 
komplizierte Logik.

von F. M. (foxmulder)


Bewertung
lesenswert
nicht lesenswert
Lustig, mit so etwas habe ich auch vor kurzem angefangen -dabei ist es 
bis jetzt auch leider geblieben.

Bzgl. Test benötigte Oszi Bandbreite:
USB2.0SS ca. 2Ghz
USB3.0   ca. 13Ghz

Wird aber kaum nötig sein, wie oben geschrieben einfach probieren, im 
schlimmsten Fall ist der Hub halt etwas langsamer.
Bin gespannt wie es dir dabei geht.

mfg

von Max G. (l0wside) Benutzerseite


Bewertung
lesenswert
nicht lesenswert
Du könntest dir die Strombegrenzung auch zu Fuß aufbauen:
- Shunt und Strommessverstärker wie z.B. TSC101 in die 5V-Leitung 
einschleifen
- dahinter ein Komparator, dessen zweiten Eingang du ganz schlicht mit 
einem Poti einstellen und damit die Schwelle festlegen kannst.
- An dessen Ausgang ein Latch, das bei Überstrom abschaltet und den 
Ausschaltzustand speichert - braucht natürlich einen Reset-Button und 
praktischerweise noch eine Status-LED.
- Zu guter Letzt einen Highside-Schalter (irgendwas aus dem 
Profet-Portfolio, z.B. BTS5200-4, zum stressfreien Abschalten).

Das ist die Abschalt-Lösung. Du kannst natürlich auch eine Stromregelung 
aufbauen, aber das würde ja heißen, bei Überstrom die Spannung 
runterzuregeln. Dann kokelt deine angeschlossene Schaltung langsam vor 
sich hin, während die USB-Funktionalität wegen Unterspannung aussteigt. 
Fände ich persönlich nicht überzeugend.

Ganz komfortabel kannst du statt Poti und Status-LED das natürlich auch 
per µC einstellbar machen.

: Bearbeitet durch User
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Max G. schrieb:

> Ganz komfortabel kannst du statt Poti und Status-LED das natürlich auch
> per µC einstellbar machen.

Ja, das hatte ich auch vor. Deswegen Display und Scroll Wheel. Die 
Überstrom-Abschaltung/Erkennung/Messung zu Fuß aufbauen skaliert 
natürlich nicht so schön.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Das Display könnte folgendes werden: 
https://www.digikey.de/product-detail/en/E2266JS0C1/1452-E2266JS0C1-ND/13572401/?itemSeq=354513185

Beim Controller gucke ich mir gerade den hier an: 
https://ww1.microchip.com/downloads/en/DeviceDoc/SAM_D5x_E5x_Family_Data_Sheet_DS60001507G.pdf

Bei der Spannungsversorgung dachte ich an ein großes 5V Netzteil: 
https://www.digikey.de/product-detail/en/RSP-75-5/1866-4288-ND/7706352/?itemSeq=354514487

Und dann entweder 1,1V und 3,3V zentral auf der Base-Plane, oder 
Base-Plane und Hub-Plane bekommen 5V und erzeugen sich die nötigen 1,1V 
und 3,3V selbst. Muss ich beim Entwurf der Base-Plane mal gucken, was 
das für ein Aufwand ist, die beiden Spannungen zu erzeugen.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
A. K. schrieb:
> Lustig, mit so etwas habe ich auch vor kurzem angefangen -dabei ist es
> bis jetzt auch leider geblieben.

Gab es irgend welche Probleme, oder hat Dich die Lust / Zeit verlassen?

von Max G. (l0wside) Benutzerseite


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:
> Mir sind noch zwei Wünsche eingefallen, zu denen ich Tipps gebrauchen
> könnte. Ich wollte jedem Port eine dreifarbige LED spendieren, um
> Zustände anzuzeigen. Ich fänd' es super "cool", wenn die USB Buchsen
> einen leuchten Ring hätten. Hat dazu jemand eine Idee?

Andre hat dazu ja schon was geschrieben. Was für ein Gehäuse willst du 
denn verwenden?
Am besten wird es sein, wenn du senkrechte USB-Buchen nimmst und rund um 
sie LEDs verteilst. Den Gehäuseausschnitt machst du dann ein bisschen 
größer, die Lücke zwischen Gehäuse und Buchse kannst du dann mit einem 
3D-gedruckten Ring (als Streuscheibe) füllen. Es gibt transparentes PLA, 
damit geht das prima.
Je größer der Abstand zwischen LED und Streuscheibe, desto gleichmäßiger 
die Lichtverteilung. Und du brauchst eine optische Barriere zwischen den 
Ports, damit die Beleuchtung des einen nicht in den anderen reinstrahlt 
- auch hier bietet sich 3D-Druck an, aber eher in Schwarz oder grau.
Ein 3D-Modell des erwarteten Resultats könnte SEHR hilfreich sein.

> Zur Bedienung wollte ich ein kleines Display spendieren und ein Click
> Wheel wir bei den alten iPods. Kennt jemand eine Lösung für so ein Click
> Wheel? Habe Gestern nur so kapazitive Bedienelemente gefunden.

Zur kapazitiven Detektion hat ja Andre auch was geschrieben. Mit 
Vibrationsmotoren, die man sehr kurz (ich meine ca. 50ms) ansteuert, 
kann man wunderbar ein haptisches Feedback generieren, das sich nicht 
nach losgehendem Handy anfühlt.

von Paul (Gast)


Bewertung
lesenswert
nicht lesenswert
Wenn Du auch USB-Devices entwickelst, und nicht nur Deine 
Entwicklungswerkzeuge mit dem Hub betreiben willst, wäre vielleicht noch 
Strommessung und Spannungseinstellung (im Rahmen der Spezifikation) je 
Port sinnvoll.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Max G. schrieb:

>> könnte. Ich wollte jedem Port eine dreifarbige LED spendieren, um
>> Zustände anzuzeigen. Ich fänd' es super "cool", wenn die USB Buchsen
>> einen leuchten Ring hätten. Hat dazu jemand eine Idee?
>
> Andre hat dazu ja schon was geschrieben. Was für ein Gehäuse willst du
> denn verwenden?

Ich wollte da nicht mit Volumen sparen und entweder Stahl oder Aluminium 
verwenden.

> Am besten wird es sein, wenn du senkrechte USB-Buchen nimmst und rund um
> sie LEDs verteilst. Den Gehäuseausschnitt machst du dann ein bisschen
> größer, die Lücke zwischen Gehäuse und Buchse kannst du dann mit einem
> 3D-gedruckten Ring (als Streuscheibe) füllen. Es gibt transparentes PLA,
> damit geht das prima.

Auch 'ne gute Idee. Vielleicht muss ich einfach mal einen 
Zwischenschritt machen und mit ein paar möglichen Lösungen 
Herumprobieren. Ich hatte bis jetzt darüber nach gedacht, wagerechte 
Buchsen zu nehmen, am vorderen Rand der Platine um die Buchse herum, die 
Platine einzuschneiden, so dass ein Ring um die Buchse passt und den 
Ring dann von der Seite mit ein, oder 2 LEDs zu beleuchten. Ich habe ein 
wenig Angst, dass wenn es zu viele LEDs werden, der Aufwand, die runter 
zu dimmen dann relativ hoch wird.

> Je größer der Abstand zwischen LED und Streuscheibe, desto gleichmäßiger
> die Lichtverteilung. Und du brauchst eine optische Barriere zwischen den
> Ports, damit die Beleuchtung des einen nicht in den anderen reinstrahlt

Gute Idee, dass könnte man dann ja schon ein wenig auf der Platine mit 
Löchern oder Schlitzen unterstützen.

> - auch hier bietet sich 3D-Druck an, aber eher in Schwarz oder grau.
> Ein 3D-Modell des erwarteten Resultats könnte SEHR hilfreich sein.

Da fehlt mir leider komplett das Know How. Ich würde ganz Altbacken 
technische Zeichnung machen.

> Zur kapazitiven Detektion hat ja Andre auch was geschrieben. Mit
> Vibrationsmotoren, die man sehr kurz (ich meine ca. 50ms) ansteuert,
> kann man wunderbar ein haptisches Feedback generieren, das sich nicht
> nach losgehendem Handy anfühlt.

Klingt interessant. Ich wollte irgend einen Tongeber verwenden, um da 
Klick-Geräusche zu machen. Aber taktiles Feedback wäre noch Cooler. Hast 
Du eine Quelle / Beispiel für so ein "Ding"?

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Paul schrieb:
> Wenn Du auch USB-Devices entwickelst, und nicht nur Deine
> Entwicklungswerkzeuge mit dem Hub betreiben willst, wäre vielleicht noch
> Strommessung und Spannungseinstellung (im Rahmen der Spezifikation) je
> Port sinnvoll.

Das klingt interessant. Strom-Messung wäre mit dem, was mir gerade 
vorschwebt inklusive. Von den 5V abweichende Spannung könnte man 
vielleicht für 1-2 Ports vorsehen. Dann müsste man da einen irgend wie 
gearteten DC/DC Konverter haben. Klingt auf jeden Fall sinnvoll.

von F. M. (foxmulder)


Bewertung
lesenswert
nicht lesenswert
Paul schrieb:
> Strommessung und Spannungseinstellung (im Rahmen der Spezifikation) je
> Port sinnvoll.

Finde ich ehrlich nicht, wenn man das wirklich 1-2 machen muss schließt 
man das Gerät einfach an ein Labornetzteil an.
Ich denke nicht, dass der Aufwand dafürsteht.

mfg

von USB-Geschädigter (Gast)


Bewertung
lesenswert
nicht lesenswert
Bei so gut wie allen Platinen die ich beruflich mache, ist ein USB-Hub 
drauf. Wir verwenden Microchip-Hubs, aber bei TI würde ich mir jetzt 
keine bösen Überraschungen erwarten.

Tipps:
Portstrombegrenzer findet man besonders viele bei Micrel (jetzt 
Microchip) (z.B. MIC2009 und Konsorten).
Wichtig wäre bei denen eine thermische Begrenzung, eine niedriger RDSon 
und ein möglichst genaues Stromlimit sowie ein Softstart und eine 
Fehlermeldung. Die Portstrombegrenzer sollten immer vom Hub bedient 
werden, damit das Host-Betriebssystem Kontrolle über die USB-Devices 
hat, und müssen daher zusammenpassen. Kurzschlüsse und Fehler werden 
nämlich von diesem behandelt.

Die vorgescheibene Kapazität am Hub (100µF) muss mindestens vorhanden 
sein, ich verwende sogar meist 100µF pro Port. Und hier sollte das schon 
Low-ESR sein.

Die 5V-Versorgung muss ausreichend kräftig und stabil sein, damit das 
Hot-Pluggen eines Gerätes keinen (zu großen) Einbruch verusacht, das 
muss auch mit den Portstrombegrenzern zusammenpassen. Sonst wirft dir 
dein Hub alle Geräte ab, wenn du einen USB-Stick ansteckst.

Und wenn möglich würde ich bei USB-2 Highspeed bleiben, das ist etwas 
toleranter. Bei USB-3 wäre es schon sehr relevant, die Layoutregeln 
EXAKT einzuhalten, aber selbst bei USB-2 sollte man keine Traces unter 
den USB-Leitungen durchziehen un dergleichen und muss die differentielle 
Impedanz der Leitungen einhalten.
Und eines sollte klar sein: Vermutlich geht das nur orentlich mit 4 
Lagen und definierten Lagenaufbau. Naja, zumindest wenn man nicht 
seltsame Fehler suchen will. Sei dir immer klar: USB-2 und darüber heißt 
so gut wie immer: Keine Möglichkeit zum Debuggen.

Zuletzt: Es lohnt sich für Bastelprojekte eigentlich nicht wirklich. Es 
ist ein Haufen Aufwand und schwieriger (Schaltregler, 
Highspeed-Digital), lohnt sich aber kaum, weil man Hubs billig bekommt.

von USB-Geschädigter (Gast)


Bewertung
lesenswert
nicht lesenswert
Eine Sache habe ich noch vergessen:
Dein µC braucht ein Signal "Hub dreht mir Power ab", sonst musst du üble 
Verrenkungen im Code machen.
Ich würde einfach das Enable für den betreffenden Port vom Hub zu einem 
GPIO ziehen.
Wenn vorhanden, zum USB-Komparator, bei STM32 heißen die z.B. FSVBUS.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
USB-Geschädigter schrieb:
> Eine Sache habe ich noch vergessen:
> Dein µC braucht ein Signal "Hub dreht mir Power ab", sonst musst du üble
> Verrenkungen im Code machen.

Du meinst um allen Ports den Strom abzudrehen? Wofür würdest Du das 
haben wollen?

Anbei mal ein Skizze, wie ich mir den VBUS Teil vorstelle. Der I2C Bus 
hängt am µC und kann damit die Strom-Grenze über den INA260 stellen und 
auch den Strom und die Spannung messen. Der Enable Eingang des Power 
Switch ergibt sich dann aus der Enable-Vorgabe des TUSB8041A (Hub) und 
des Ausgang der Strombegrenzung. Da frage ich mich gerade, ob diese 
Verknüpfung überhaupt sinnvoll ist und nicht evtl. zum Oszillieren 
einlädt und ich nicht einfach dem TUSB8041A das Abschalten überlassen 
sollte.

PWRCTRL1_BATEN1/2 sind Ausgänge vom TUSB8041A und OVERCUR1/2Z sind 
Eingänge zum TUSB8041A.

von USB-Geschädigter (Gast)


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:
> Du meinst um allen Ports den Strom abzudrehen? Wofür würdest Du das
> haben wollen?

Ich meine damit dass der µC eine Information darüber braucht, dass der 
Hub dem µC den Port abdreht.
Also einen Information, wann er denn mit der Enumerierung starten kann, 
und wann er vom Hub abgeworfen wurde und die USB-Statemachine auf Start 
zurücksetzen muss.

Es geht zur Not ohne, aber mit ist einfacher.

Beispiel für TUSB8041A:
Das PWRCTLx-Signal des HUB wird auf FSVBUS gehängt.

Zum Schaltplan:
Die Logikgatter für die Enable sollten unbedingt weg. Man verbindet die 
Fehlersignale des Hub mit OVERCURxz. Der  USB-Host macht das Handling 
über den Treiber des Hub.
Da einzugreifen ist kontraproduktiv. Für den Fall "Host hat Schluckauf" 
haben die Portstrombegrenzer noch die interne Überlastabschaltung.

von Max G. (l0wside) Benutzerseite


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:

> Ich wollte da nicht mit Volumen sparen und entweder Stahl oder Aluminium
> verwenden.

Und dann selber fräsen? Metall hat einen großen Vorteil: es ist relativ 
schwer und bleibt deswegen auf dem Tisch stehen, anstatt ständig durch 
die Gegend zu rutschen.

> Auch 'ne gute Idee. Vielleicht muss ich einfach mal einen
> Zwischenschritt machen und mit ein paar möglichen Lösungen
> Herumprobieren. Ich hatte bis jetzt darüber nach gedacht, waagerechte
> Buchsen zu nehmen, am vorderen Rand der Platine um die Buchse herum, die
> Platine einzuschneiden, so dass ein Ring um die Buchse passt und den
> Ring dann von der Seite mit ein, oder 2 LEDs zu beleuchten. Ich habe ein
> wenig Angst, dass wenn es zu viele LEDs werden, der Aufwand, die runter
> zu dimmen dann relativ hoch wird.

Das geht natürlich auch. Das Dimmen der LEDs kannst du auslagern, da 
gibt es ein paar nette einschlägige ICs. Ich habe den IS31FL3209 
verwendet, war aber keine so tolle Wahl für RGB: er dimmt nicht linear, 
sondern über die logarithmische Kurve des Helligkeitsempfindens. Für 
Hintergrundbeleuchtung super, für RGB nicht geeignet. Wühle dich mal 
hier durch: 
https://www.mouser.de/Semiconductors/Driver-ICs/LED-Lighting-Drivers/_/N-7zhqf

> Da [3D-Modell] fehlt mir leider komplett das Know How. Ich würde ganz Altbacken
> technische Zeichnung machen.

KiCAD kann die Leiterplatten nach STEP exportieren (Eagle meines Wissens 
auch). Investiere mal einen halben Tag in Youtube-Grundlagen zu FreeCAD 
oder freunde dich alternativ mit Fusion 360 an. Die investierte Zeit 
bekommst du nachher mehrfach wieder raus, wenn alles auf Anhieb 
zusammenpasst.

> Aber taktiles Feedback wäre noch Cooler. Hast
> Du eine Quelle / Beispiel für so ein "Ding"?

https://eckstein-shop.de/Pololu-Shaftless-Vibration-Motor-3V-10x34mm 
(oder für ein Drittel des Preises oder so direkt aus China via Bucht 
oder Ali).

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
Max G. schrieb:
> Und dann selber fräsen? Metall hat einen großen Vorteil: es ist relativ
> schwer und bleibt deswegen auf dem Tisch stehen, anstatt ständig durch
> die Gegend zu rutschen.

Ja, genau. Gerade wenn man nur wenige "Dinger" an dem Hub angeschlossen 
hat, dann rutscht er hin und her und zieht die angeschlossenen "Dinger" 
mit. Der Hub soll maßiv sein. Ich liebäugle gerade mit einem 250mm 
breiten und 40mm hohem Gehäuse von https://www.schaeffer-ag.de/en/.

> Das geht natürlich auch. Das Dimmen der LEDs kannst du auslagern, da
> gibt es ein paar nette einschlägige ICs.

Ich versuche mal mein Glück mit einem LP5012 von TI. Der kann 4 RGB-LEDs 
ansteuern. Ich sehe mal 2 LEDs pro Port vor. Ich denke ich werde aber 
noch mal einen Zwischenschritt machen und eine kleine Platine nur mit 
dem LED-Teil entwerfen um den Plexiglas-Ring anzugucken. (siehe Anhang)

Danke!

von Gerd E. (robberknight)


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:
> Mir sind noch zwei Wünsche eingefallen, zu denen ich Tipps gebrauchen
> könnte. Ich wollte jedem Port eine dreifarbige LED spendieren, um
> Zustände anzuzeigen.

Was für Zustände hast Du im Sinn? Denn die LED-Logik muss diese Zustände 
ja irgendwie mitbekommen um sie anzeigen zu können.

Powered und Overcurrent sind den entsprechenden Signalleitungen 
entnehmbar. Das ist also harmlos.

Was ich aber eigentlich gerne hätte wäre "Device enumerated" und "Daten 
fließen", letzteres als Blinksignal so wie man es z.B. von 
Netzwerkkarten kennt.

Leider hab ich noch keine Hub-ICs gefunden aus denen man diese Infos 
rausbekommt. Das Device enumerated haben einige wenige, der hier 
genannte TUSB8041A aber nicht. Datentransfer hab ich leider noch 
nirgends gesehen.

Kennt da vielleicht jemand Hub-ICs die da mehr Infos bieten? Gerne auch 
per (I2C-) Bus abfragbar oder in die man eigene Firmware hochladen muss 
um diese Funktion umzusetzen.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Gerd E. schrieb:

> Was für Zustände hast Du im Sinn? Denn die LED-Logik muss diese Zustände
> ja irgendwie mitbekommen um sie anzeigen zu können.

Ja, bis jetzt sind mir an Zuständen auch nur der Überstrom eingefallen 
(tief rot). Ich würde auch gerne USB-Ports gruppieren, damit ich z.B. 
die drei zusammengehörigen Eval-Boards zusammen abschalten kann. Da 
hilft es sicherlich bei der Zusammenstellung und Anzeige, welche Ports 
in eine Gruppe gehören, eine LED pro Port zu haben.

Ich könnte mir auch vorstellen, die eingestellte Strombegrenzung auf 
Knopfdruck auf allen Ports mit einer Farbkodierung anzuzeigen (hell grün 
= 100mA; dunkel rot = 900mA).

> Powered und Overcurrent sind den entsprechenden Signalleitungen
> entnehmbar. Das ist also harmlos.

Da die Anzeige auch nicht Zeitkritisch ist, kann man diese Informationen 
sogar über den I2C am Port-Chip abfragen.

> Kennt da vielleicht jemand Hub-ICs die da mehr Infos bieten? Gerne auch
> per (I2C-) Bus abfragbar oder in die man eigene Firmware hochladen muss
> um diese Funktion umzusetzen.

Das wäre interessant. Vielleicht möchte noch jemand ein FPGA-Projekt 
drauf setzen ;-)

: Bearbeitet durch User
von Gerd E. (robberknight)


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:
> Vielleicht möchte noch jemand ein FPGA-Projekt
> drauf setzen ;-)

Das hier geht zumindest schon mal in die richtige Richtung, auch wenn 
Hub-Funktion momentan noch nicht im Fokus ist:

https://github.com/greatscottgadgets/luna
https://twitter.com/ktemkin/status/1358878687081336832

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
Hallo,
hier mal eine erste, komplette Version der Base-Plane:
- Als Eingänge, gibt es 5V Versorgung und den Upstream USB 3 Port.
- Ausgänge wären dann 3 USB 3 Ports und 3 Stecker mit I2C und einer 
Reset-Leitung. Da werden dann später die Hub-Planes angeschlossen (mit 
je 4 USB-Ports). Die Stecker werden nicht an das Gehäuse geführt.
- Interne Spannungsversorgung 3,3V (<200mA) und 1,1V (< 1A).
- Auf der Ausgangs-Seite, gibt es einen Stecker für das Display (der 
Temperatur-Sensor wird auch von Display benötigt) und einen Stecker, auf 
den später das Touch-Wheel kommt (ups, der Motor fehlt noch).

Ich freue mich auf eure Kommentare!

Schöne Grüße,

Torsten

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
jetzt auch mit Vibrations-Motor-Ansteuerung

von Max G. (l0wside) Benutzerseite


Bewertung
lesenswert
nicht lesenswert
Das ist ja edel. Ich hatte eine 2N7002, einen Kerko und eine 
Freilaufdiode spendiert. Bin aber auch geiziger Schwob 😏

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Max G. schrieb:
> Das ist ja edel. Ich hatte eine 2N7002, einen Kerko und eine
> Freilaufdiode spendiert. Bin aber auch geiziger Schwob 😏

Schäm dich! ;-) Der Treiber ist so Strom begrenzt und über das PWM 
Tast-Verhältnis kann man den Motor in beide Richtungen fahren und somit 
schnell stoppen! :-)

: Bearbeitet durch User
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
und so sähe dann die Platine aus...

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
Hier wäre der Teil, mit den USB-Ports. Je 4 Stück. In der maximalen 
Ausbaustufe hätte der HUB dann 12 ports. Verbindung zur Base-Plane ist 
nur ein I2C (SMBus) und eine Reset-Leitung für den Hub. 
Spannungsversorgung sind 5V (5A). Die benötigten Spannungen von 3.3V und 
1.1V werden auf der Platine selbst erzeugt.

Sollte man die Pins des Ports noch irgend wie gegen ESD, Überspannung, 
Eis und Regen, etc. schützen?

Schönen Danke, falls jemand drauf gucken mag...

von Frank K. (fchk)


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:

> Sollte man die Pins des Ports noch irgend wie gegen ESD, Überspannung,
> Eis und Regen, etc. schützen?

ESD:
USB2.0-Teil: (VBUS/D-/D+):
https://www.we-online.de/katalog/datasheet/8240116.pdf

USB3.0-Teil: (SSTX/SSRX):
https://www.ti.com/lit/ds/symlink/tpd4eusb30.pdf

Eis & Regen:
https://www.neutrik.de/de-de/produkt/nausb3

fchk

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
Frank K. schrieb:

> ESD:

So? Bei den TX-Paaren bin ich mir nicht sicher, auf welche Seite der 
Kondensatoren die Schutzdioden kommen. Wahrscheinlich ist es aber so 
falsch und die kommen auf die Stecker-Seite, richtig?

von Frank K. (fchk)


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:

> So? Bei den TX-Paaren bin ich mir nicht sicher, auf welche Seite der
> Kondensatoren die Schutzdioden kommen. Wahrscheinlich ist es aber so
> falsch und die kommen auf die Stecker-Seite, richtig?

Ja, und das solltest Du auch genau so zeichnen. Die Signale müssen vom 
Stecker aus als allererstes durch den ESD-Schutz durch, denn nur dann 
kann der richtig wirken. Dass der ESD-Schutz sehr dicht an den Buchsen 
(so innerhalb der ersten 10 mm) sitzen soll, sollte sich auch im 
Schaltplan widerspiegeln. Das Layout der USB3-Bausteine ist auch extra 
so, dass die Signale da direkt hindurch laufen können, ohne 
Stichleitungen und ähnliche Schweinereien.

Der hier ist layouttechnisch noch günstiger. Dann musst Du aber VBUS 
noch extra absichern, z.B. mittels UCLAMP0501 oder PESD....

https://www.onsemi.com/pub/Collateral/ESD8006-D.PDF

fchk

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
Frank K. schrieb:

> Ja, und das solltest Du auch genau so zeichnen. Die Signale müssen vom
> Stecker aus als allererstes durch den ESD-Schutz durch, denn nur dann
> kann der richtig wirken. Dass der ESD-Schutz sehr dicht an den Buchsen
> (so innerhalb der ersten 10 mm) sitzen soll, sollte sich auch im
> Schaltplan widerspiegeln.

Ja, der abgelieferte Schaltplan war wohl equivalent zu umkommentierten 
Quellcode mit Funktionslängen von 4000 Zeilen ;-)

> Der hier ist layouttechnisch noch günstiger. Dann musst Du aber VBUS
> noch extra absichern, z.B. mittels UCLAMP0501 oder PESD....

Der Stecker 
(https://www.mouser.de/datasheet/2/445/692122030100-1719889.pdf) hat ein 
pitch von > 1mm, und das pin out des USB Hubs ist so ausgelegt, dass die 
USB-2 Leitungen von der anderen Seite an den Stecker geführt werden. 
Layout-Technisch scheint mir da evtl. drei mal SOT-3 fast am günstigsten 
zu sein (siehe Anhang).

von Max G. (l0wside) Benutzerseite


Bewertung
lesenswert
nicht lesenswert
Ohne Bauteilbezeichnungen ist es ziemlich schwer, herauszufinden, was 
nun was ist. Ich vermute mal, dass das links sitzende Bauteil mit den 
lustig ungleichmäßigen Lands die Schutzbeschaltung WE-8240116 ist.

Die sollte nicht irgendwo in einer Ecke sitzen, sondern angeschlossen 
werden, wie du es auch mit einem Abblockkondensator machst. Das heißt: 
jedes Land wird zweimal angefahren, einmal von der Steckerseite her und 
einmal von der Boardseite her.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Max G. schrieb:
> Ohne Bauteilbezeichnungen ist es ziemlich schwer, herauszufinden, was
> nun was ist. Ich vermute mal, dass das links sitzende Bauteil mit den
> lustig ungleichmäßigen Lands die Schutzbeschaltung WE-8240116 ist.

Der Screenshot ist nur mal um das "Dilemma" zwischen dem pitch des 
Steckers und dem Pitch der Schutzschaltung aufzuzeigen. Ich bin mir noch 
nicht ganz schlüssig, was ich da einsetzen möchte.

Vielleicht aber doch den 6 channel ESD8006, den Frank vorgeschlagen hat. 
Ich könnte dann das langsame Signal-Paar von hinten an den Stecker 
führen (wie im Bild dargestellt) und dann über den Stecker an den 
ESD8006. Das wäre dann zumindest eine schön kompakte Lösung.

von yakman (Gast)


Bewertung
lesenswert
nicht lesenswert
Hätte noch einen Tipp für ESD:
https://www.mouser.de/ProductDetail/Littelfuse/SP1004U-ULC-04UTG?qs=lM4gFlnEeEMVbixN4qozYA%3D%3D

Da kann man mit den Superspeed-Leitungen einfach drüberfahren. D.h. das 
lässt sich im Layout ziemlich gut umsetzen, ohne die die differentiellen 
Päärchen auseinanderzureißen.

Die gibts glaub ich mit 2x, 4x und 8x.

Gefällt mir besser, als die ESD8006.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
yakman schrieb:
> lässt sich im Layout ziemlich gut umsetzen, ohne die die differentiellen
> Päärchen auseinanderzureißen.

Musst Du beim ESD8006 auch nicht. Der Unterschied ist da eigentlich nur 
die Anzahl der Pins, über die die Signale geroutet werden müssen. Bei 
allen ist das Problem, dass die meist ein pitch von 0.5mm haben, der 
Stecker aber sehr breit ist. Da muss ich die erst am ESD Schutz zusammen 
führen und dann kurz vor dem Stecker wieder auseinander nehmen. Ich guck 
mir gerade mal an, wie das mit dem ESD8006 aussehen könnte.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
So in etwa (U16 ist ein ESD8006; D10 eine μClamp0501P). Das stark 
unterschiedliche Pitch zwischen der Schutzschaltung und dem Stecker 
macht es sehr schwer, die Schutzschaltung nah am Stecker zu platzieren 
und die Signal-Paare so zu verlegen, dass die Leitungen gleich lang 
sind.

von Max G. (l0wside) Benutzerseite


Bewertung
lesenswert
nicht lesenswert
Mit USB_DP und USB_DM (also die Highspeed-Leitungen) würde ich 
hemmungslos mit Vias unter den Superspeed-RX-Leitungen durchfahren. Der 
ESD-Schutz löst dir ein echtes Problem (einen potenziell gekillten 
Rechner). Das impedanzkontrollierte Routing ein theoretisches 
(Konformität zur Spec). Der Highspeed-Teil funktioniert auch so.

Den Abstand zwischen Buchse und ESD-Schutz würde ich übrigens nicht 
unbedingt so klein wie möglich wählen. Zum einen hängt im Zweifelsfall 
hintendran sowieso ein Meter Leitung, der weitaus länger ist als die 
paar mm vor oder zurück des ESD-Schutzes.
Zum anderen liefert dir jeder mm noch einen nH Induktivität, und 
Induktivität hilft bekanntlich gegen schnelle Spannungsanstiege, was der 
ESD-Diode Arbeit abnimmt. Ich bin aber zu faul, das zu quantifizieren. 
Vielleicht ist es auch schlicht irrelevant.

von Gerd E. (robberknight)


Bewertung
lesenswert
nicht lesenswert
Max G. schrieb:
> Den Abstand zwischen Buchse und ESD-Schutz würde ich übrigens nicht
> unbedingt so klein wie möglich wählen. Zum einen hängt im Zweifelsfall
> hintendran sowieso ein Meter Leitung, der weitaus länger ist als die
> paar mm vor oder zurück des ESD-Schutzes.

Der ESD-Event kann aber auch direkt von der Buchse am Hub kommen, ohne 
Kabel dazwischen. Also der Nutzer fasst die Buchse an und ein ESD-Funke 
springt in die Buchse.

> Zum anderen liefert dir jeder mm noch einen nH Induktivität, und
> Induktivität hilft bekanntlich gegen schnelle Spannungsanstiege, was der
> ESD-Diode Arbeit abnimmt.

Die Induktivität macht ihre Arbeit aber nicht umsonst. Sie sorgt dafür, 
daß der ESD-Puls als EM-Welle in die Umgebung abgestrahlt wird. Damit 
kann dann der ESD-Puls in andere Schaltungsteile, die gar nicht selbst 
mit den USB-Leitungen verbunden sind, einkoppeln und dort Störungen oder 
Schäden auslösen.

Daher kommen ESD-Schutzmaßnahmen normalerweise so nah wie möglich an die 
Stelle, von der der Impuls reinkommen kann. Also hier der USB-Buchse.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
Hier eine Version, mit entzerrter USB-Stecker-Schutz-Beschaltung.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Den ersten Fehler habe ich schon gefunden: Die Pullup Widerstände des 
Microcontrollers lassen sich nur dann aktivieren, wenn die Pins als 
Eingänge konfiguriert sind. Sobald mal die Pins auf ihre Peripheral 
Funktion (hier I2C) schaltet, sind die Pullups deaktiviert. Zum Glück 
hatte ich an der Stelle Pull-Ups vorgesehen, für den Fall, dass der 
Widerstandswert der internen Pullups nicht passt.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
Ich hatte in der Zwischenzeit jetzt eine kleine Platine gemacht, mit 
verschiedenen Anordnungen von jeweils 2 LEDs um einen USB-Stecker herum.

Zwei verschieden LED-Typen:
 - MSL0601RGB
 - KRTBAELPS1.32-V1A4-JW+B4B6-D8+S6U2-7Z

Die zweite ist extrem hell, läßt sich mit dem Treiber (LP5012) aber gut 
dimmen. Als Lichtleiter habe ich mal 6mm milchiges Plexiglas genommen. 
Das verteilt das Licht schon mal nicht gut genug. Wenn da im Plexiglas 
noch die Aussparung für die Buchse ist, dann sieht man das Licht sicher 
nur noch am Rand. Nächster Versuch vielleicht mit Plexiglas, bei dem die 
Oberfläche angeschliffen ist...

von Gordon N. (Gast)


Bewertung
lesenswert
nicht lesenswert
Wenn ich solch dilletantischen Layouts sehe. Bah ekelhaft

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Hallo Gordon,

Gordon N. schrieb:
> Wenn ich solch dilletantischen Layouts sehe. Bah ekelhaft

was würdest Du den konkret ändern wollen?

schöne Grüße,

Torsten

von Harald (Gast)


Bewertung
lesenswert
nicht lesenswert
Weiß nicht, ob das hier schon benannt wurde, aber wusstest Du, dass man 
bei den Superspeed-Paaren die Polarität beliebig drehen darf? D.h. +/- 
an der Buchse kann vertauscht an den Hubchip gehen, auch unterschiedlich 
untereinander RX/TX SS. Erleichtert manchmal das Layout. Das gilt aber 
nicht für die Highspeed, nur für die Superspeed. Und oben im Layout sehe 
ich die Highspeed zur ESD-Diode als Stub. Mach das nicht, alles schön 
symmetrisch und gradlinig ohne Stubs. Auch die Längen untereinander 
gleich lang halten. Und dann sehe ich als Entkoppelkondensatoren größere 
Cs, vermutlich 0603? Nehme dafür 0402, das geht schon noch zum löten. 
Verletze das differentielle Paar so wenig und selten wie möglich und 
wenn es zum Kondensator oder zum Stecker geht dann so symmetrisch wie 
eben möglich.
Ich stimme Gustl B voll und ganz zu, ganz so heiß gegessen wie in den 
allgemeinen Routing-Guidelines wird dann doch nicht, aber man sollte an 
allen Stellen wo es möglich ist schon maximale Sorgfalt walten lassen. 
Mit jeder „Schwächung“ bewegt man sich immer ein kleines Stückchen 
Richtung Performanceverlust/Nichtfunktion und diesen Headroom möchte man 
ja nicht leichtfertig verspielen. Die Leiterbahnbreiten kannst Du mit 
den einschlägigen Rechnern wie z.B. Saturn leicht berechnen, leider 
haben alle Fertiger einen anderen Lagenaufbau (im Poolservice). Suche 
Dir VORHER einen aus und verwende dessen Prepreg-Dicken und 
Dielektrizitätskonstanten. Dass das Layout min. 4-lagig wird dürfte ja 
klar sein, oder? Bei 2-lagig würdest Du monsterbreite Leiterbahnbreiten 
herausbekommen. Supergünstig 4-lagig gibt es bei JLCPCB.

von Gustl B. (-gb-)


Bewertung
lesenswert
nicht lesenswert
Harald schrieb:
> aber man sollte an
> allen Stellen wo es möglich ist schon maximale Sorgfalt walten lassen.
> Mit jeder „Schwächung“ bewegt man sich immer ein kleines Stückchen
> Richtung Performanceverlust/Nichtfunktion und diesen Headroom möchte man
> ja nicht leichtfertig verspielen.

Richtig. Mach die Leitungen breiter, führe sie wenn möglich symmetrisch, 
platziere die Cs auch symmetrisch zu den Leitungen, wähle Bauteile die 
das Routing erleichtern. Z. B. den TPD6E05U06.

Aber so wie er das bisher gemacht hat wird es schon funktionieren.

Harald schrieb:
> Dass das Layout min. 4-lagig wird dürfte ja
> klar sein, oder? Bei 2-lagig würdest Du monsterbreite Leiterbahnbreiten
> herausbekommen. Supergünstig 4-lagig gibt es bei JLCPCB.

https://www.eurocircuits.de/ bieten definierte Impedanz im Pool an zu 
recht günstigen Preisen. Da kann man sich auch als Hobbybastler 6 Lagen 
und so leisten. Die Qualität ist ebenfalls gut, ich bestelle gerne dort.

: Bearbeitet durch User
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Harald schrieb:
> Weiß nicht, ob das hier schon benannt wurde, aber wusstest Du, dass man
> bei den Superspeed-Paaren die Polarität beliebig drehen darf?

Ja, hatte ich im Datenblatt gelesen. Kann man dann später über den I2C 
Bus so konfigurieren. Aber eigentlich müsste ich es hin bekommen, vom 
Hub-IC alle 4*2 Superspeed Leitungen, kreuzungsfrei an ihre Stecker zu 
routen.

> Und oben im Layout sehe
> ich die Highspeed zur ESD-Diode als Stub. Mach das nicht, alles schön
> symmetrisch und gradlinig ohne Stubs.

Die Ausgänge am Hub Chips sind scheinbar so heraus geführt, dass die 
beiden Superspeed Leitungen direkt parallel an den Stecker verlegbar 
sind, das Highspeed-Paar muss dann von der anderen Seite an den Stecker, 
dann passt es. Alternativ muss das Highspeed-Paar eine der Superspeed 
Leitungs-Paare kreuzen. Dann würden auch die Stubs wegfallen. Wäre das 
zu bevorzugen?

> Auch die Längen untereinander
> gleich lang halten. Und dann sehe ich als Entkoppelkondensatoren größere
> Cs, vermutlich 0603? Nehme dafür 0402, das geht schon noch zum löten.

Ok, da ich eh nicht vorhabe, dass selbst zu bestücken, sollte das kein 
Problem sein.

> Ich stimme Gustl B voll und ganz zu, ganz so heiß gegessen wie in den
> allgemeinen Routing-Guidelines wird dann doch nicht, aber man sollte an
> allen Stellen wo es möglich ist schon maximale Sorgfalt walten lassen.

Das war nur eine Skizze oben, um die Auswahl der Schutzdioden zu 
diskutieren. Ich fange mit der Port-Platine erst an, wenn ich die 
Base-Platine in Betrieb genommen habe (und die Menge der Fehler mich 
nicht total frustriert hat). In Zwischenzeit habe ich mal eine kleine 
Platine gemacht, um die Beleuchtung der USB-Stecker zu evaluieren. Das 
muss auch erst einmal fertig werden. Dann muss ich auch noch mal gucken, 
welche Abmaße die Port-Platinen haben dürfen / müssen.

> Die Leiterbahnbreiten kannst Du mit
> den einschlägigen Rechnern wie z.B. Saturn leicht berechnen, leider
> haben alle Fertiger einen anderen Lagenaufbau (im Poolservice).

Hast Du mal einen Link? Mir war garnicht klar, dass ich die 
Leiterbahndicken irgend wie berechnen muss. :-/ (oh, oh)

> Suche
> Dir VORHER einen aus und verwende dessen Prepreg-Dicken und
> Dielektrizitätskonstanten. Dass das Layout min. 4-lagig wird dürfte ja
> klar sein, oder? Bei 2-lagig würdest Du monsterbreite Leiterbahnbreiten
> herausbekommen. Supergünstig 4-lagig gibt es bei JLCPCB.

Die Base-Platine ist sogar 6-lagig. Vom Preis her macht das wohl keinen 
großen Unterschied zu 4-lagig. Die habe ich jetzt bei PCBway.com machen 
lassen und hoffentlich kommen die Platinen bis Ende des Monats an.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
Gustl B. schrieb:
> Richtig. Mach die Leitungen breiter, führe sie wenn möglich symmetrisch,
> platziere die Cs auch symmetrisch zu den Leitungen, wähle Bauteile die
> das Routing erleichtern. Z. B. den TPD6E05U06.

Bis jetzt hatte ich den ESD8006 im Auge, dessen Layout eigentlich auch 
extra für solche Einsatzzwecke optimiert ist. Der TPD6E05U06 ist weder 
bei Mouser, noch bei Digikey verfügbar.

> https://www.eurocircuits.de/ bieten definierte Impedanz im Pool an zu
> recht günstigen Preisen. Da kann man sich auch als Hobbybastler 6 Lagen
> und so leisten. Die Qualität ist ebenfalls gut, ich bestelle gerne dort.

Wenn die Base-PCB bei PCBWay gut geklappt hat, würde ich die Port-PCBs 
gerne wieder da bestellen, weil die halt auch gleich bestücken.

Das mit der Impedanz habe ich bis jetzt wohl komplett ignoriert. Geht es 
um den Wellenwiderstand der Leitungen oder um die Kapazität gegen die 
parallel liegende Ground Plane? Ich habe bis jetzt die Paare auf der 
obersten Lage verlegt, die Flächen um die Paare mit ground geflutet und 
die 2. Lage ist die Ground Plane. In KiCad habe ich mir die Längen 
beider Leitung eines Paars anzeigen lassen und so lange mit dem 
Verlegung herum gespielt, bis die Längen bis auf 5 mil gleich waren.

Jetzt müsste ich mir noch die Dicke und Dielektrizitätskonstante des 
verwendeten Materials zwischen der ersten und zweiten Lage besorgen und 
könnte damit dann noch eine optimale Dicke der Leitungen berechnen?

(Anbei ein Bild von den oberen beiden Lagen. Rot = oberste Lage, Geld = 
2. Lage).

Schöne Grüße,

Torsten

von Harald (Gast)


Bewertung
lesenswert
nicht lesenswert
Hier die Werte für PCBWAY, Dielektrizität ist also 4,3, Dicke 7mil (gilt 
für Top und Bottom)
https://www.pcbway.com/blog/Engineering_Technical/Multilayer_PCB_Stackup_Planning.html

Torsten R. schrieb:
> Kann man dann später über den I2C Bus so konfigurieren.
Braucht man bei den SS Leitungen nicht, nur die Flanken zählen.

Torsten R. schrieb:
> das Highspeed-Paar muss dann von der anderen Seite an den Stecker,
> dann passt es.
Genau.

Saturn PCB Software
https://saturnpcb.com/saturn-pcb-toolkit/
Registrierung erforderlich, die gehen einem aber nicht auf die Nüsse.

Torsten R. schrieb:
> Hast Du mal einen Link? Mir war garnicht klar, dass ich die
> Leiterbahndicken irgend wie berechnen muss. :-/ (oh, oh)
Jaja, besser is das. Wenn Du schon 6 Lagen hast könnten deine 
Leiterbahnbreiten zufällig schon ganz gut passen. Glück gehabt.

Torsten R. schrieb:
> Das mit der Impedanz habe ich bis jetzt wohl komplett ignoriert. Geht es
> um den Wellenwiderstand der Leitungen oder um die Kapazität gegen die
> parallel liegende Ground Plane?
Genau.

> Ich habe bis jetzt die Paare auf der
> obersten Lage verlegt, die Flächen um die Paare mit ground geflutet

Nicht drumzufluten, drunter eine durchgängige Fläche ist wichtiger.

> die 2. Lage ist die Ground Plane. In KiCad habe ich mir die Längen
> beider Leitung eines Paars anzeigen lassen und so lange mit dem
> Verlegung herum gespielt, bis die Längen bis auf 5 mil gleich waren
Gut.

von Harald (Gast)


Bewertung
lesenswert
nicht lesenswert
Harald schrieb:
> durchgängige Fläche ist wichtiger.

Muss auch nicht unbedingt GND sein, flächig VCC geht auch.

von Harald (Gast)


Bewertung
lesenswert
nicht lesenswert

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
Harald schrieb:
> SS RX/TX Pin Swapping:
> 
https://community.cypress.com/t5/USB-Superspeed-Peripherals/USB-differential-pair-pin-inversion/td-p/49104?start=0&tstart=0

Ja, Du hast recht. Ich habe noch mal im Datenblatt des Hubs nachgeguckt, 
was ich da gelesen hatte. Man kann bei dem TUSB8041 auch die Highspeed 
Leitungen vertauschen. Dass muss man dann dem Controller aber mitteilen.

Beitrag #6619764 wurde von einem Moderator gelöscht.
von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Ich habe den jetzigen Stand mal auf Github eingecheckt: 
https://github.com/TorstenRobitzki/DevPort

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Angehängte Dateien:

Bewertung
lesenswert
nicht lesenswert
Erste Fotos der Base-Plane haben mich aus China erreicht. Leider hat 
sich die Lieferung um fast einen Monat verzögert. Die ersten Fehler sind 
auch schon aufgefallen:

1) USB-Stecker passt nicht
2) Ich habe beim Verrücken der Bauteilbezeichnungen auf dem 
Bestückungsdruck, R13 und C27 vertauscht und der Bestücken hat die 
Bauteile nach Bestückungsdruck bestückt.
3) Ich habe im BOM J1 und J12 vertauscht. J12 ist das einzige SMD-Teil 
auf der Rückseite :-/

Geht ja gut los :-)

von Harald (Gast)


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:
> USB-Stecker passt nicht

Hattest Du die Platine auch in 3D gewandelt bzw. angeschaut? Bin seit 
längerer Zeit dazu übergegangen, wirklich jedes Bauteil in 3D anzulegen. 
Dank diverser Portale findet man so ziemlich alles fertig, die 
Hersteller haben auch spätestens auf Anfrage das Bauteil.

Seitdem ich das mache gibt es keine solcherlei Problemchen mehr. Im CAD 
kann man dann auch schön mit den Gegensteckern testen ob das alles so 
geht.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Harald schrieb:

> Seitdem ich das mache gibt es keine solcherlei Problemchen mehr. Im CAD
> kann man dann auch schön mit den Gegensteckern testen ob das alles so
> geht.

Ne, habe ich nicht gemacht. Der Aufwand, packages zu bekommen ist mir zu 
hoch. An der Stelle muss das aber auch irgend ein 2D-Problem sein. 
Entweder falschen Stecker bestellt, vom falschen Datenblatt abgemalt, 
oder irgend so etwas. Die Platine ist jetzt gerade fertig geworden und 
ich hoffe, dass ich die nächste Woche in den Händen halte. Spannung 
steigt :-)

von Harald (Gast)


Bewertung
lesenswert
nicht lesenswert
Torsten R. schrieb:
> Der Aufwand, packages zu bekommen ist mir zu hoch

Dachte ich anfänglich auch. Das geht aber schnell in Routine über. Es 
lohnt sich! Portale wie grabcad, 3dcontentcentral u.v.a.m. machen wie 
Sache einfach.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Bewertung
lesenswert
nicht lesenswert
Ok, probiere ich bei der 2. Platine dann mal aus.

von Max G. (l0wside) Benutzerseite


Bewertung
lesenswert
nicht lesenswert
Harald schrieb:
> Hattest Du die Platine auch in 3D gewandelt bzw. angeschaut?

+1 dafür. Ich mache es zwar nicht bei jedem Kleinkram, aber für alles, 
was gehäuserelevant ist (Stecker, große Bauteile, Taster, LEDs). Spart 
gerne mal die eine oder andere Revision. Und mit KiCAD+FreeCAD geht das 
mit relativ überschaubarem Aufwand.

von Harald (Gast)


Bewertung
lesenswert
nicht lesenswert
Eagle 9/Fusion funktioniert dafür auch sehr gut. Muss man bei KiCad mit 
FreeCad (für 3D) arbeiten oder gilt das nur für die Zusammenarbeit bei 
Gehäuseintegration?

von Max G. (l0wside) Benutzerseite


Bewertung
lesenswert
nicht lesenswert
Letzteres. Ich exportiere STEP aus KiCAD und importiere das dann in 
FreeCAD. Vermutlich geht das mit Eagle/Fusion komfortabler.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.