Hallo Zusammen
Ich würde gerne für mein Projekt einen USB C Stecker verwenden
(USB-Device). Leider bin ich mir nicht schlüssig, wie ich ihn an den USB
Controller (z.B. FX3 oder FT600) anschliessen muss. Das Problem ist,
dass die Superspeed Leitungen beim USB-C Stecker jeweils doppelt geführt
werden (z.B. TX+1 und TX+2). Ich habe schon im Internet recherchiert,
aber habe noch nicht die Infos gefunden, die ich brauche.
Ich vermute folgendes:
1)Wenn ich jeweils nur eine der beiden Leitungen anschliesse, dann
funktioniert es nur, wenn auch das Kabel in der richtigen Orientierung
eingesteckt ist. Würde mich gerne eines Besseren belehren.
2)Die beiden Leitungen kurzschliessen und an den Controller führen ist
wohl eine schlechte Idee!?
3)Möglicherweise braucht es einen Multiplexer, wie z.B. hier:
https://www.pericom.com/assets/Datasheets/PI3PCIE3242.pdf beschrieben?
Ich bin für jeglichen Input dankbar. Vielen Dank!
Chrigu
Genau so ein Switch wie du angegeben hast benötigst du. Anhand der
Steuerleitungen wird erkannt wie der Stecker eingesteckt ist und der
Switch geschaltet.
Hallo Noname
Vielen Dank für deine Antwort. Was mich noch interessieren würde: Der
Host muss ja eigentlich wissen, über welche RX Leitung die Daten kommen,
richtig? Wie macht er das, über die CC Leitung (Pull Down) oder über die
Pegel der RX-Leitungen? Und wenn der Host schon weiss über welche RX
Leitung die Daten kommen, warum kann er dann nicht auch nur über die
entsprechende TX Leitung schicken? Denn so könnte man auf einen Switch
auf der Device Seite verzichten.
Ich bin noch auf dieses Beispiel von Cypress gestossen:
http://www.cypress.com/documentation/reference-designs/ccg1-type-c-legacy-usb-device-cable-paddle-card-reference-schematics?source=search&cat=software_tools
Hier sieht es nach Schema so aus, dass nur jeweils eine Verbindung
gezogen wird. (Aber irgendwie passt das Schema nicht zu den Fotos)
Auch bei diesem Beispiel von Cypress wurde jeweils nur eine Leitung
gezogen:
http://www.cypress.com/documentation/reference-designs/type-c-gigabit-ethernet-dongle?source=search&cat=software_tools
Ich kann mir kaum vorstellen, dass Cypress Designs veröffentlicht, bei
denen der C-Stecker nur in einer Orientierung funktioniert.
Besten Dank
Chrigu
Type C hat ja viele Möglichkeiten. Das jetz hier alles zu erklären ist
zu aufwändig. Ich empfehle mal ein Dokument von TI:
http://www.ti.com/lit/slly016
Auch NXP hat diverse Dokumente und es gibt sicherlich noch viel mehr an
Literatur.
Hallo,
ich habe jetzt eine ähnliche Entscheidung.
USB-C Buchse, daran dann ein MUX für USB3 und dadran dann ein FT600.
USB2 geht von der Buchse auf einen USB-HUB und davon ebenfalls zum FT600
und auch zu einem FT2232H.
Dazu habe ich Fragen:
1. Bisher habe ich die USB2 Adern an der USB-C Buchse einfach verbunden.
Sollte ich lieber auch für USB2 einen MUX verwenden?
2. Bei einigen MUXes wird extern ein CC-Controller vorgeschlagen. Der
MUX hier http://www.ti.com/lit/ds/symlink/hd3ss3212.pdf Seite 15 würde
mir gefallen. Aber kann ich den CC-Controller auch ersetzen und
stattdessen die beiden CC Pins mit einem Komparator oder so auswerten
und dann den MUX bedienen?
3. Gibt es andere Gründe, wieso ich einen CC-Controller verwenden
sollte?
4. Wie ich hier Beitrag "Re: USB 2.0 Datenleitungen in USB 3.0 unabhängig nutzen FT601"
geschrieben hatte kann man wohl den FT600 auch ohne USB2 betreiben. Gibt
es trotzdem Gründe den FT600 mit USB2 zu verbinden?
5. Ich tendiere zu dem http://www.ti.com/lit/ds/symlink/hd3ss3220.pdf ,
habt ihr andere Empfehlungen?
6. Ist ein MUX mit Redriver sinnvoll? Ich habe davon keine Ahnung und
werde mir das Signal auch nicht mit dem Oszi angucken können. Was ist
denn "üblich" bei USB-C Geräten die ganz normal mit einem normal langen
USB-C Kabel mit einem PC verbunden werden? Auf der Platine sind alle
USB-Leitungen weniger als sagen wir 2 cm lang.
Vielen Dank!
So, jetzt habe ich tatsächlich den hier
http://www.ti.com/lit/ds/symlink/hd3ss6126.pdf gefunden. Das ist ein
USB3 und USB2 MUX in einem IC.
Bleiben noch die anderen Fragen von oben. Das mit den CC Controllern
habe ich noch nicht ganz verstanden. Um den MUX zu schalten brauche ich
ja ein Signal. Das kann ich irgendwie aus den Spannungen der CC Pins
erzeugen (auch ohne CC Controller). Wozu ist dann so ein CC Controller
gut? Hier ist einer: http://www.ti.com/lit/ds/symlink/tusb320.pdf
Dient das "nur" für die Spannungsversorgung? Weil dann könnte ich den
auch weglassen, ich versorge bisher auch über USB-C ohne einen solchen
Controller (habe eben selbst die Widerstände an den CC Pins). Um den MUX
zu schalten würde ich die Spannungen an den CC Pins mit einem Komparator
auswerten.
Ist das OK oder würdet ihr einen CC Controller verwenden? Und wie würdet
ihr das Signal für den MUX erzeugen? Gibt es CC Controller die das auch
gleich ausgeben?
OK, verstanden. Derzeit habe ich an den CCs die 5.1 kOhm Widerstände
nach Masse dran und bekomme mehr als 500 mA ohne CC Controller. Gibt es
trotzdem einen Grund für diesen Controller? Und wie schalte ich den MUX,
gibt es CC Controller mit einem Ausgang für den MUX?
Ja, gibt z. B. den http://www.ti.com/lit/ds/symlink/tusb321.pdf mit
einem Logikausgang für den MUX.
Gustl B. schrieb:> OK, verstanden. Derzeit habe ich an den CCs die 5.1 kOhm Widerstände> nach Masse dran und bekomme mehr als 500 mA ohne CC Controller. Gibt es> trotzdem einen Grund für diesen Controller? Und wie schalte ich den MUX,> gibt es CC Controller mit einem Ausgang für den MUX?
Der CC-Controller schalten deinen Muxer! Er erkennt was auf CC los ist,
also die Steckrichtung des Steckers und schaltet entsprechend den Muxer.
Das hat mit Power-Delivery noch nichts zu tun. Das kommt noch als Bonus
optional oben drauf.
Ne, so ist das eben nicht wenn man sich die Produkte anguckt.
Viele/einige CC Controller haben keinen Ausgang um einen MUX zu
schalten.
Der hier http://www.ti.com/lit/ds/symlink/tusb320.pdf hat im Gegensatz
zum http://www.ti.com/lit/ds/symlink/tusb321.pdf keinen DIR Ausgang.
Also primär scheinen die für die Spannungsversorgung da zu sein und
manche Modelle können dann auch einen MUX schalten.
Andererseite kann man auch ohne einen solchen Controller den MUX
schalten und Strom anfordern. Hier
http://ww1.microchip.com/downloads/en/AppNotes/00001914B.pdf auf Seite 4
ist gezeigt wie das geht. Ich könnte mir also den CC Controller sparen
und muss dafür selber beide Rd und den Komparator verbauen.
Aber egal, ich habe mich schon für eine Kombinaltion aus TUSB321 und
HD3SS6126 entschieden. Der ist zwar von 2013 und abgehangen, aber
verfügbar und sollte passen.
ESD Dioden werde ich auch hinsetzen. Auf Redriver verzichte ich. Hinter
den MUX kommt ins USB2 ein HUB CY7C65632 und daran dann FT2232H und
FT600.
Aber noch eine Frage zu so einem MUX:
Bei einem MUX haben die Pins Namen die mit P oder N die Polarität
angeben. Muss ich das beachten? Ich meine, das sind ja differentielle
Signale, da schwingen beide um das gleiche DC Niveau herum, für den MUX
IC sollte das egal sein welches ich wo anschließe.
Gustl B. schrieb:> Ne, so ist das eben nicht wenn man sich die Produkte anguckt.
Wieso fragst du dann? Ich habe nicht gesagt, dass es auch einfacher geht
und dass der Controller NUR die Umschaltung erledigt. VBUS schalten die
auch in Abhängigkeit von CC.
Du wolltest doch scheinbar eh einen Controller nehmen? Dann nimm einen
der einen Ausgang hat und VBUS mit schaltet.
Wo ist jetzt das unlösbare Problem?
Gustl B. schrieb:> Bei einem MUX haben die Pins Namen die mit P oder N die Polarität> angeben. Muss ich das beachten? Ich meine, das sind ja differentielle> Signale, da schwingen beide um das gleiche DC Niveau herum, für den MUX> IC sollte das egal sein welches ich wo anschließe.
Auch das siehst du doch alles in den entsprechenden Designs von TI und
NXP.
Einen USB-C mit Mux und CC-Controller der VBUS bis 3 A schaltet ohne
Support von Power-Delivery ist nun wirklich sehr trivial und du hast die
Lösung ja nun hier bereits selber genannt.
Es gibt hier kein unlösbares Problem. Und ich hatte gefragt und dann
noch viel gelesen und weiß jetzt etwas mehr.
Im Grunde geht es mir aber darum was ein Profi machen würde. Bei der
Situation, Platine mit FT600 und USB2 soll über ein USB-C Kabel
angeschlossen werden.
Würde ein Profi da einen Redriver verwenden?
Würde er für USB2 einen MUX verwenden oder die Pins direkt verbinden?
Würde er ESD Dioden verbauen obwohl da keiner die Leiterbahnen anfassen
kann (die sind ja innen in der USB-C Buchse)?
Würde er einen CC Controller verwenden oder das ohne diesen lösen?
Ich kann das jetzt alles so bauen wie es mir am sinnvollsten erscheint.
Aber als Laie bin ich mir da eben unsicher. Würde ich die
Schaltung/Hardware dann hier im Fourm zeigen hagelt es wie immer Kritik.
Keine Dioden, kein Redriver, ... solche Kritik kommt hier regelmäßig
auch wenn die Hardware problemlos funktioniert. Daher wüsste ich gerne
vorher von einem Profi wie das richtig gemacht wurde.
Ja ich könnte mich an Appnotes halten, aber die unterscheiden sie sehr.
Da finde ich quasi alle Kombinationen aus dem was ich oben gefragt habe.
Ich kann jetzt auch daraus schließen, dass vieles davon wohl eher egal
ist, bin mir aber nicht sicher.
So, die Frage zu der Polarität bleibt. Wenn ich in das Datenblatt hier
http://www.ti.com/lit/ds/symlink/tusb321.pdf Seite 14 Figure 4 gucke,
dann wird da mal ein P mit einem N verbunden und mal ein P mit einem P.
So wie ich das verstehe bei differentiellen Signalen sollte das also
egal sein. Stimmt das?
Edit:
Wenn ich die tauschen darf wie im Datenblatt, dann würde ich das so
verbinden weil es sich am einfachsten routen lässt. Wie im Datenblatt
sind also bei zwei differentielle Päärchen P und N getauscht.
Bildchen im Anhang. Ja, die Cs kommen auch noch rein.
Gustl B. schrieb:> OK, verstanden. Derzeit habe ich an den CCs die 5.1 kOhm Widerstände> nach Masse dran und bekomme mehr als 500 mA ohne CC Controller.
Naja zwischen "anmelden" und dann doch mehr ziehen besteht ja
bekanntlich ein Unterschied.
Bei den CC Controllern musste aufpassen, dass du einen mit ordentlich
Doku bekommst.
Da gibts desöfteren sowas wie "hier hast du ein BLOB und ein Header,
viel Spaß".
In die Falle ist auch Dave vom EEVblog getappt.
Msd schrieb:> Der CC-Controller schalten deinen Muxer! Er erkennt was auf CC los ist,> also die Steckrichtung des Steckers und schaltet entsprechend den Muxer.
Was auch ohne geht, denn nur einer der CC Pins wird dann als
Spannungsteiler fungieren.
Also Komparator dran und gut ist.
Gut, der TUSB321 geht ganz ohne I2C oder so, daher wollte ich den
verwenden. Ich will da eigentlich nicht viel aushandeln oder so, sondern
nur Strom. Eigentlich müsste es reichen zwei passende Widerstände an die
CC Pins zu hängen. Das habe ich bisher so gemacht und das funktioniert.
Aber jetzt mit USB3 will ich eben auch noch einen MUX schalten. Und da
sieht mir die Lösung mit einem kleinen CC Controller recht einfach und
elegant aus.
2€ für das Ding, also dafür wär ich zu geizig wenn das auch mit einem
LM339 geht ;)
Mit anderen CC Pulldowns gehen übrigens auch 900mA/1,5A und 3A laut
Spec.
Aber dann biste im Sumpf angekommen was welcher USB-C Anschluss jetz
kann.
Gustl B. schrieb:> Im Grunde geht es mir aber darum was ein Profi machen würde. Bei der> Situation, Platine mit FT600 und USB2 soll über ein USB-C Kabel> angeschlossen werden.> Würde ein Profi da einen Redriver verwenden?
Ich würde nur einen Redriver verwenden, wenn ich befürchten würde, dass
die Signale über nicht geeignete Medien geführt werden. Manchmal werden
Signale z.B. nicht über ideale Impedanzen geführt. Darüber würde ich mir
jetzt erstmal keine Gedanken machen. Geht auch schlecht weil man nicht
weiß wie gut dein Layout aussehen wird usw usw usw.
Gustl B. schrieb:> Würde er für USB2 einen MUX verwenden oder die Pins direkt verbinden?
Er würde sie direkt verbinden, denn die USB 2.0 Signale im USB-C Stecker
sind steckrichtungunabhängig.
Gustl B. schrieb:> Würde er ESD Dioden verbauen obwohl da keiner die Leiterbahnen anfassen> kann (die sind ja innen in der USB-C Buchse)?
Drauf damit. Du kannst doch an die Kontakte des Steckers fassen? System
ist doch steckbar? Ein Profi würde da auf Nummer sicher gehen.
Gustl B. schrieb:> Würde er einen CC Controller verwenden oder das ohne diesen lösen?
Kommt drauf an ob auch VBUS entsprechend Device/Host geschaltet werden
muss. Spielt Geld bei dir eine Rolle?
Ich weiß nicht warum du dich auf den "Profi" beziehst. Ein Profi baut
normalerweise Produkte und da hinter steht ein Kunde der kein Geld
bezahlen will. Ist das bei dir auch so?
Gustl B. schrieb:> Ja ich könnte mich an Appnotes halten, aber die unterscheiden sie sehr.
Ein Profi wählt einen IC nach den gewünschten Funktionen und baut dann
die Empfehlungen des Herstellers nach. Sollte er dabei auf Konflikte mit
seiner Erfahrung oder z.B. mit Angaben zu anderen Herstellern stoßen, so
kontaktiert er den Hersteller.
Gustl B. schrieb:> Wenn ich die tauschen darf wie im Datenblatt, dann würde ich das so> verbinden weil es sich am einfachsten routen lässt. Wie im Datenblatt> sind also bei zwei differentielle Päärchen P und N getauscht.
Ein Profi würde hier den Hersteller kontaktieren. Meine ich ernst.
Leider besteht ein Großteil der Entwickler-Tätigkeiten darin sich
abzusichern und bei späteren Argumentationen die Joker-Karte zu zeigen
auf der steht "Ich habe nach besten Wissen und Gewissen gehandelt.
Msd schrieb:> Geht auch schlecht weil man nicht> weiß wie gut dein Layout aussehen wird usw usw usw.
Stimmt.
Msd schrieb:> Er würde sie direkt verbinden, denn die USB 2.0 Signale im USB-C Stecker> sind steckrichtungunabhängig.
Wie meinen? Also das sind 4 Leitungen für USB2, also zwei Päärchen. Je
nach Steckrichtung wird nur eines dieser Päärchen verbunden. Wenn ich
die ohne MUX verbinde, also A6 mit B6 und A7 mit B7, dann habe ich eben
kurze Wire Stubs durch den jeweils ungenutzten Teil. Dass es auch ohne
MUX funktioniert ist mir klar, habe ich schon gemacht. Aber ohne MUX
habe ich das immer als Pfusch angesehen weil manche Datenblätter auch
für USB2 einen MUX verwenden. Andere aber wiederrum nicht. Deiner
Meinung nach ist das also kein Pfusch?
Msd schrieb:> Drauf damit. Du kannst doch an die Kontakte des Steckers fassen? System> ist doch steckbar? Ein Profi würde da auf Nummer sicher gehen.
Sind eingeplant. Naja, in einen USB-C Stecker reinfassen geht eigentlich
nicht. Man kann also nur aussen den Schirm berühren. Ja, wird gesteckt.
Msd schrieb:> Kommt drauf an ob auch VBUS entsprechend Device/Host geschaltet werden> muss. Spielt Geld bei dir eine Rolle?>> Ich weiß nicht warum du dich auf den "Profi" beziehst. Ein Profi baut> normalerweise Produkte und da hinter steht ein Kunde der kein Geld> bezahlen will. Ist das bei dir auch so?
Ne, ich mache das als Hobbyprojekt weil ich lernen will. Ich habe keine
konkrete Anwendung im Kopf. Auf die Platine kommt noch ein FPGA und RAM.
Ist eben damit ich auch mal USB3 und USB-C "richtig" gemacht habe.
Deshalb will ich hier eigentlich keine "funktioniert für mich" Lösung,
sondern etwas wie man das auch draussen in der Industrie bauen würde.
Msd schrieb:> Ein Profi wählt einen IC nach den gewünschten Funktionen und baut dann> die Empfehlungen des Herstellers nach. Sollte er dabei auf Konflikte mit> seiner Erfahrung oder z.B. mit Angaben zu anderen Herstellern stoßen, so> kontaktiert er den Hersteller.
OK, also beachte ich die Appnotes und Datenblätter zu den verwendeten
Bausteinen und "ignoriere" den Rest solange keine krassen Konflikte
auftauchen.
Msd schrieb:> Ein Profi würde hier den Hersteller kontaktieren. Meine ich ernst.> Leider besteht ein Großteil der Entwickler-Tätigkeiten darin sich> abzusichern und bei späteren Argumentationen die Joker-Karte zu zeigen> auf der steht "Ich habe nach besten Wissen und Gewissen gehandelt.
Ja das ist witzig. Aber genau so Punkte wie ob P und N vertauscht werden
dürfen finden sich gar nicht so irre selten in Datenblättern. Ich meine,
ich sehe oft, dass in Datenblättern etwas gemacht wird, aber ohne
Erklärung ob das allgemein gilt und so. Meine bisherige Strategie war zu
suchen ob ich noch mehr von dem finde. Ich werde also auch hier noch
etwas suchen das meine Vermutung bestätigt oder widerlegt.
Jedenfalls habe ich jetzt 4 solche ESD Dioden Array eingeplant mit je 4
Anschlüssen. Wenn ich aber die beiden USB2 direkt verbinde (und das
keinen Pfusch darstellt) und die beiden SBU weglasse (brauche ich nicht)
... dann genügen mir 3 dieser ESD ICs. Dann brauche ich auch keinen MUX
für USB2 sondern kann mit einem nur für USB3 auskommen. Aber der
"Profihaftigkeit" wegen werde ich einen CC Controller verbauen.
Übrigens vielen Dank für die ausführliche Antwort!
@ Mw E.:
Ich verwende derzeit keinen CC Controller sondern nur zwei 5.1 kOhm
Widerstände und bekomme deutlich mehr als 500 mA. Was maximal geht habe
ich noch nicht gemessen.
Wenn ich es richtig verstanden habe ist es so:
Der UFP hat die beiden R_down 5.1 kOhm Widerstände nach Masse.
Der DFP hat variable Widerstände(?) als Pullup.
Das bildet einen Spannungsteiler, und zwar zwischen den beiden
Widerständen kann man jetzt am UFP die Spannung messen und dadurch
rausbekommen welchen Pullup der DFP verwendet. Und je nach dieser
gemessenen Spannung weiß man als UFP wie groß der Strom ist, den der DFP
maximal liefern kann.
Wenn ich jetzt aber nur die beiden Pulldowns im UFP verbaue, aber die
Spannung am Spannungsteiler NICHT messe, dann bekomme ich eben einfach
maximal das was mir der DFP liefern kann. Klar, ich habe nicht gemessen
und es könnte sein, dass ich mehr ziehn will, als dieser liefern kann,
aber das ist dann eben so. Wenn ich messen würde könnte ich auch nur
sehen, dass der DFP zu wenig liefern kann. Mehr als "das Gerät
funktioniert nicht" wird nicht passieren?! Wobei, die Spannung wird
einbrechen.
Haben die CC Pins darüber hinaus, also ausser als Verbindung zwischen
Pullup und Pulldown, noch eine Bedeutung? Wird darüber ein Protokoll
gesprochen das irgendetwas aushandelt? Ich konnte da bisher nichts
finden.
Edit:
Hach! http://www.ti.com/lit/ds/symlink/hd3ss3220.pdf Seite 28 oder
Anhang. Warum kann das nicht jeder immer so schön dazuschreiben?
Moin,
ich will jetzt zusätzlich zu dem einen UFP Port mit USB3 auch einen DFP
verbauen. Auch wieder eine USB-C Buchse, aber nicht für USB, sondern nur
für schnelle IOs. Ich möchte darüber HDMI machen und das vielleicht auch
als Eingang verwenden. Jedenfalls will ich da angeschlossene Geräte auch
mit Strom versorgen und die Steckrichtung erkennen. Ein CC Controller
wie der TUSB321 http://www.ti.com/lit/ds/symlink/tusb321.pdf Seite 14
können das.
Aber statt VBUS einfach mit den 5V zu verbinden möchte ich kontrollieren
können wie viel Strom da abgegeben wird und den auch schalten. Ich suche
also einen USB VBUS Switch. Die gibt es auch, z. B.
https://www.ti.com/lit/ds/symlink/tps2543.pdf , aber das sind recht
große ICs und die haben viele Features die ich nicht benötige.
Habt ihr Vorschläge für einen sehr einfachen kleinen USB VBUS Switch?
Der soll nur den Strom überwachen, schalten und dann noch warnen wenn zu
viel gezogen wird. Da ich kein echtes USB2/3 an diesem Port mache
benötige ich keinen Switch der die USB2 Datenleitungen verwendet.
Vielen Dank!
Edit:
Ha, Bäm! Wenn man bei der Suche einfach nicht nach USB sucht, sondern
nach current limit Switch wird man fündig.
https://www.mouser.de/datasheet/2/277/mp5016_r1.1-1384345.pdf
Gustl B. schrieb:> Wie meinen? Also das sind 4 Leitungen für USB2, also zwei Päärchen. Je> nach Steckrichtung wird nur eines dieser Päärchen verbunden. Wenn ich> die ohne MUX verbinde, also A6 mit B6 und A7 mit B7, dann habe ich eben> kurze Wire Stubs durch den jeweils ungenutzten Teil. Dass es auch ohne> MUX funktioniert ist mir klar, habe ich schon gemacht. Aber ohne MUX> habe ich das immer als Pfusch angesehen weil manche Datenblätter auch> für USB2 einen MUX verwenden. Andere aber wiederrum nicht. Deiner> Meinung nach ist das also kein Pfusch?
Ich sehe das nicht als Pfusch. Den Stub halte ich bei USB 2.0 für
vernachlässigbar. Ich kenne das Footprint vom Stecker nicht auswendig,
evtl. kann man durch entsprechenden Leiterplatten-Stack, da auch noch
optimieren.
Msd schrieb:> Ich sehe das nicht als Pfusch.
Vielen Dank! Dann teile ich ab jetzt deine Ansicht. So wie im Anhang
sieht das bei mir aus, die Stubs sind also sehr kurz. Wobei die
natürlich auch in der Buchse noch weitergehen.