Forum: Mikrocontroller und Digitale Elektronik USB-C auf CP2102N


von Andreas P. (andreas_p296)


Angehängte Dateien:

Lesenswert?

Hallo Community,

bin aktuell an einem kleinen Projekt, wo ich einen USB-C Anschluss an 
einen ESP32-WROOM-32 verbauen will. Nun habe ich, wie im Anhang, die 
erste Schaltung gezeichnet, wobei ich als USB-UART einen CP2102N 
verwenden will (bessere Driver, etc). Da ich einen vertikal eingebauten 
USB-C Anschluss verbauen will, finde ich leider nur Anschlüsse, welche 
24Pins besitzen. Laut dem Datenblatt des CP2102N, muss nur der VBUS, D+, 
D-, GND verbunden werden. Spannungsversorgung erfolgt über den BUS.

Nun folgende Fragen:

1. Gibt es irgendwelche Probleme, die beim Verbau eines USB-C mit 24 
Pins auftreten können?
2. Soweit ich das verstanden habe, reicht es, nur die Pins auf der A 
oder B-Seite des USB-C Anschluss zu verbinden. Stimmt das?
3. Gibt es sonst irgendwelche Dinge zu beachten bezüglich Schirmung, 
etc? Bin leider mehr in der Softwareentwicklung unterwegs und habe daher 
keine allzu hohe Erfahrung in der Entwicklung dieser Schaltungen.
4. Sieht die Schaltung wie aktuell gezeichnet, brauchbar aus um im 
nächsten Step. auf den ESP weiterzugehen?
5. Gibt es beim Package einen Unterschied zwischen der GQFN20R bzw. 24 
oder 28 Pins? Bei den kommerziellen Boards findet man meist den GQFN24R. 
Unterscheidet sich dieser neben weiteren Pins, die für meinen Fall nicht 
unbedingt benötigt werden? Ich hätte den mit 20Pins verwendet.

Wäre sehr über konstruktives Feedback dankbar!

Lg
Andreas

: Bearbeitet durch User
von Bob E. (embedded_bob)


Lesenswert?

1. Nein gibt es nicht..
2. Dann kannst du das USB-C Kabel nicht "verkehrt" anschließen. Was 
meiner Meinung nach eines der Hauptargumente für USB-C ist. Also beide 
Seiten anschließen
3. Die Datenleitungen sind differentiell auszulegen.
4. Sieht soweit gut aus. Verbinde das Shield noch mit Masse,

von Christian R. (supachris)


Lesenswert?

Es fehlen noch die beiden Widerstände an den CC Leitungen, ohne die wird 
das nix. Jeweils 5,1k von CC1 und CC2 nach Masse. Die 2.0 Datenleitungen 
der beiden Richtungen solltest du direkt am Stecker auf deiner Platine 
verbinden.

von Falk B. (falk)


Lesenswert?

Andreas P. schrieb:
> Nun folgende Fragen:
>
> 1. Gibt es irgendwelche Probleme, die beim Verbau eines USB-C mit 24
> Pins auftreten können?

Man muss den halt löten können, ist je nach Ausführung schon recht 
fummelig.

> 3. Gibt es sonst irgendwelche Dinge zu beachten bezüglich Schirmung,
> etc? Bin leider mehr in der Softwareentwicklung unterwegs und habe daher
> keine allzu hohe Erfahrung in der Entwicklung dieser Schaltungen.

Der Shield sollte auf Masse angeschlossen werden.

> 4. Sieht die Schaltung wie aktuell gezeichnet, brauchbar aus um im
> nächsten Step. auf den ESP weiterzugehen?

Step by Step, uuuuhhh Babeeee . . .
Früher hieß das Schritt.

Und du brauchst keine E96 Präzisionswiderstände. 22k und 47k reichen 
locker.
Als ESD-Schutz empfehle ich den USBLC6, klein, fein, preiswert.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Falk B. schrieb:
> Und du brauchst keine E96 Präzisionswiderstände. 22k und 47k reichen
> locker.

Ich nehme da immer das, von dem meine Datenbank sagt, dass es bereits 
vorrätig ist. ;-) Das kann auch mal E96 sein …

Aaaber: der Spannungsteiler ist sowieso Kokolorus.

"Note 1 : For self-powered systems where VDD or REGIN may be unpowered 
when VBUS is connected to 5 V, a resistor divider (or 
functionally-equivalent circuit) on VBUS is required to meet the 
absolute maximum voltage on VBUS specification in the Electrical 
Characteristics section."

Das Gerät hier ist nicht self-powered, sondern bus-powered. Da schreibt 
das Datenblatt überall eine direkte Verbindung zu Vbus vor.

Außerdem fehlen sämtliche Abblock-Kondensatoren sowie die beiden 
empfohlenen Pullwiderstände; siehe Bild 5 im Datenblatt.

Bob E. schrieb:
> Die Datenleitungen sind differentiell auszulegen.

Naja, das ist ein simples Fullspeed-Design. Bei 12 Mbit/s muss man sich 
darüber keine große Platte machen. Solange D+ und D- einigermaßen 
beieinander geroutet sind, reicht das. Fullspeed-USB habe ich schon auf 
Flachbandkabel durchs Fenster gequetscht …

: Bearbeitet durch Moderator
von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Das ESP32-WROOM-32 ist doch NRND...?

Du könntest ein ESP32­-S3-­WROOM­-1 benutzen. Das hat eine integrierte 
USB-Peripherie. Mithilfe der beim ESP-IDF integrierten TinyUSB-Library 
ist es ziemlich einfach damit einen virtuellen COM-Port oder ein eigenes 
USB-Protokoll zu implementieren. Das würde den CP2102N ganz einsparen, 
und du hast bei Bedarf die volle Flexibilität des USB-Protokolls.

https://docs.espressif.com/projects/esp-idf/en/v4.4.4/esp32s3/api-reference/peripherals/usb_device.html

Funktioniert natürlich auch mit USB-C mit den erwähnten 
5.1kOhm-Widerständen.

Zum Flashen & Debuggen kann man ja immer noch einen externen 
USB-Serial-Adapter nehmen, z.B. in Form des ESP-PROG, und den UART vom 
ESP auf Testpunkte o.ä. legen.

: Bearbeitet durch User
von Andreas Pichler (Gast)


Angehängte Dateien:

Lesenswert?

Danke für das konstruktive und nette Feedback.

Ich werde mal den Schaltplan soweit fertig zeichnen und dieses Schemata 
von Adafruit übernehmen. Der 3,45V Pfad (grün eingezeichnet) sollte hier 
nicht unbedingt nötig sein oder? Ist dieser für eine externe 
Stromversorgung?

Wisst ihr eventuell, wofür der rot eingezeichnete Kondensator gut ist?

Aja und das USB-UART kommt vielleicht später irgendwann weg, zurzeit 
will ich ihn aber flashen können, ohne das Gehäuse jedes Mal auseinander 
nehmen zu müssen 😃

Lg

von Falk B. (falk)


Lesenswert?

Andreas Pichler schrieb:
> Danke für das konstruktive und nette Feedback.
>
> Ich werde mal den Schaltplan soweit fertig zeichnen und dieses Schemata
> von Adafruit übernehmen.

JAIN! Gewöhn dir nicht dem Hipster-Müll mit den Labels an! Zeichne 
direkt verbundene Signale!

> Der 3,45V Pfad (grün eingezeichnet) sollte hier
> nicht unbedingt nötig sein oder?

Oder.

> Ist dieser für eine externe
> Stromversorgung?

Nö, er vesorgt den IC und dessen IO.

> Wisst ihr eventuell, wofür der rot eingezeichnete Kondensator gut ist?

Für den internen Spannungsregler. Den kann man NICHT weglassen.

> Aja und das USB-UART kommt vielleicht später irgendwann weg, zurzeit
> will ich ihn aber flashen können, ohne das Gehäuse jedes Mal auseinander
> nehmen zu müssen 😃

Dann leg einfach RX, TX und GND auf einen Stecker und schließ dort ein 
fertiges USB-UART Kabel an.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Andreas Pichler schrieb:
> Aja und das USB-UART kommt vielleicht später irgendwann weg, zurzeit
> will ich ihn aber flashen können, ohne das Gehäuse jedes Mal auseinander
> nehmen zu müssen 😃

Der ESP32-S3 enthält einen Hardware-USB-Serial-Adapter der mittels eFuse 
auf den USB-Port gemappt werden kann. Darüber kann man dann sowohl 
flashen als auch per JTAG debuggen, und eigene Dinge über den Serial 
Port senden.

In dieser Konfiguration kann man aber kein eigenes USB-Protokoll nutzen 
sondern ist auf CDC-ACM festgenagelt. Man kann aber (ggf. später) per 
eFuse und/oder Strapping Pin die USB_SERIAL_JTAG-Hardware abschalten und 
kann dann beliebige eigene USB-Klassen umsetzen.

Es ist sogar relativ einfach (ca 200 LoC) eine eigene USB-Flashing-Logik 
zu schreiben, mit welcher man per USB die Firmware überschreiben kann. 
Das kann sogar parallel zur Applikation laufen (also kein echter 
Bootloader), man muss dann nur noch neu starten um die neue Anwendung zu 
starten. Dazu konfiguriert man 2-3 Anwendungs-Partitionen, man 
überschreibt die die gerade nicht läuft. ESP-IDF macht's möglich :)

von Andreas P. (andreas_p296)


Lesenswert?

Danke für den Hinweis, hört sich relativ interessant 😃 Aber ich glaube 
ich bleib vorab beim WRoom. Der H2, der bald kommen soll, würd mich sehr 
interessieren um paar Anwendungen mit Zigbee zu basteln 😁

von Andreas P. (andreas_p296)


Lesenswert?

Nö, er vesorgt den IC und dessen IO.

Falk B. schrieb:
> Andreas Pichler schrieb:
>> Danke für das konstruktive und nette Feedback.
>> Ich werde mal den Schaltplan soweit fertig zeichnen und dieses Schemata
>> von Adafruit übernehmen.
>
> JAIN! Gewöhn dir nicht dem Hipster-Müll mit den Labels an! Zeichne
> direkt verbundene Signale!
>> Der 3,45V Pfad (grün eingezeichnet) sollte hier
>> nicht unbedingt nötig sein oder?
>
> Oder.
>> Ist dieser für eine externe
>> Stromversorgung?
>
> Nö, er vesorgt den IC und dessen IO.
>> Wisst ihr eventuell, wofür der rot eingezeichnete Kondensator gut ist?
>
> Für den internen Spannungsregler. Den kann man NICHT weglassen.
>> Aja und das USB-UART kommt vielleicht später irgendwann weg, zurzeit
>> will ich ihn aber flashen können, ohne das Gehäuse jedes Mal auseinander
>> nehmen zu müssen 😃
>
> Dann leg einfach RX, TX und GND auf einen Stecker und schließ dort ein
> fertiges USB-UART Kabel an.

Ist dies unbedingt nötig? Spannungsversorgung geht ja auch über VBus, 
nicht wahr? Sprich wenn ich den Chip nur zum kompilieren meines ESP32 
verwenden will.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Andreas P. schrieb:
> Aber ich glaube
> ich bleib vorab beim WRoom.

Den ESP32-S3 gibt's auch als WROOM-Modul.

Andreas P. schrieb:
> Der H2, der bald kommen soll, würd mich sehr
> interessieren um paar Anwendungen mit Zigbee zu basteln 😁

Leider findet man keine Informationen ob der USB können soll...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Andreas P. schrieb:
> Ist dies unbedingt nötig?

Ja, hatte Falk doch klar und deutlich geschrieben.

Tu dir doch einen Gefallen und schau nicht nur irgendwelche anderen 
Schaltpläne an, sondern lies das Datenblatt des CP2102. Sei froh, dass 
es (anders als einige Appnotes) nicht nur auf chinesisch sondern auf 
englisch verfügbar ist. ;-)

> Spannungsversorgung geht ja auch über VBus,
> nicht wahr?

Nein. Der Chip braucht 3,0 bis 3,6 V – auch das steht im Datenblatt.

Man kann ihn von Vbus versorgen, aber eben genau so, wie da geschrieben: 
indem man den internen 3,3-V-Regler benutzt. Kapitel 10 im Datenblatt.

von Andreas Pichler (Gast)


Lesenswert?

Ich habe mir das Datenblatt ja gelesen, jedoch ist mir der Unterschied 
zwischen self-powered und Bus-powered nicht 100% klar, da eben die Bus 
powered Version im Datenblatt den Vregin Pin verwendet, jedoch auch den 
vbus über den Spannungsteiler. Der self-powered verwendet hier nur den 
vbus eingang..

Sobald ich den Unterschied von Vregin und Vbus verstanden habe, würde 
ich die Schaltung wsl verstehen 😅

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Tabelle 9

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Den Spannungsteiler gibt's übrigens nur bei self-powered 
Konfigurationen. Er soll lediglich sicherstellen, dass der Vbus-Eingang 
dann keinen Strom aus der angelegten Busspannung vom USB ziehen kann, 
wenn die Eigenversorgung (self-powered!) gerade nicht anliegt.

von Andreas P. (andreas_p296)


Lesenswert?

VRegin: Dieser Anschluss dient als externe Stromversorgung für den 
CP2102N. Wenn VRegin an eine externe Stromquelle angeschlossen ist, kann 
der CP2102N auch bei fehlender Stromversorgung über den USB-Bus 
funktionieren.

Vbus: Dieser Anschluss bezieht Strom aus dem USB-Bus. Wenn VRegin nicht 
an eine externe Stromquelle angeschlossen ist, muss der CP2102N über 
Vbus mit Strom versorgt werden.

Laut dieser Erklärung würde der Chip ja auch funktionieren, solange Vbus 
also mein USB dem Chip den benötigten Strom gibt.. also wäre der Vregin 
ja obligatorisch..

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Oder fehlt dir die Begriffswelt?

self-powered: Das Gerät versorgt sich selbst. Die Busspannung vom USB 
muss man nur erkennen um festzustellen, wann es angesteckt worden ist 
(damit es die USB-Konfiguration am Host auszuhandeln bereit ist).

bus-powered: Das Gerät wird aus dem USB versorgt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Andreas P. schrieb:
> Vbus: Dieser Anschluss bezieht Strom aus dem USB-Bus.

Wo liest du das?

Das steht da nicht.

Tabelle 7:

VBUS

VBUS Sense Input.

This pin should be connected to the VBUS signal of a USB network. A 5 V 
signal on this pin indicates a USB network connection

Wohlgemerkt: sense input, nicht supply input.

: Bearbeitet durch Moderator
von Andreas Pichler (Gast)


Angehängte Dateien:

Lesenswert?

Danke erstmal für die Erklärungen und auch die Geduld, die du mir 
schenkst. 😄

Naja die Begriffe habe ich relativ ähnlich interpretiert und verstanden.
Mich verwirrten halt diese zwei Anschlussbilder.

Ich werde nun mal die Zeichnung fertig machen und dann hoffentlich 
nochmal über einen kurzen Blick darüber von euch hoffen. :)

Die Begriffserklärungen habe ich ChatGPT. Wirst du wahrscheinlich nicht 
hören wollen, habe es halt versucht, wie die AI das interpretiert 😅😅

Jörg W. schrieb:
> Den Spannungsteiler gibt's übrigens nur bei self-powered
> Konfigurationen. Er soll lediglich sicherstellen, dass der Vbus-Eingang
> dann keinen Strom aus der angelegten Busspannung vom USB ziehen kann,
> wenn die Eigenversorgung (self-powered!) gerade nicht anliegt.

Laut dem angehängten Bild, sollte auch ein Spannungsteiler bei der 
Bus-powered Version verwendet werden? Ist der also überfällig?

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Offtopic:

Woher kommt eigentlich diese neue Mode, alles nur über Labels zu 
verbinden?

Hat da jemand mal eine Design-Rule veröffentlicht, dass eine Verbindung 
immer nur an einem Ende angeschlossen werden darf?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Andreas Pichler schrieb:

> Laut dem angehängten Bild, sollte auch ein Spannungsteiler bei der
> Bus-powered Version verwendet werden? Ist der also überfällig?

Keine Ahnung, was für ein Datenblatt das ist.

Ich habe das von Silabs genommen:

https://www.silabs.com/documents/public/data-sheets/CP2102-9.pdf

Der Spannungsteiler wird bei bus-powered nicht stören, aber er nützt 
dort auch nicht viel.

Εrnst B. schrieb:
> Offtopic

Hatte Falk schon kritisiert.

von Manfred (Gast)


Lesenswert?

Andreas P. schrieb:
> CP2102N
> USB-C Anschluss

Schaue Dir mal den Schaltplan (Kästchen-Frechheit) hinter diesem Thread 
an:

Beitrag "ESP32 von heltec mit Display"

Das Board hat einen CP2102 und USB-C.

von Andreas P. (andreas_p296)


Angehängte Dateien:

Lesenswert?

Soo, habe jetzt den Schaltplan wieder ein Stück weiter gezeichnet. Was 
sagt ihr hierzu?

Bezüglich des Datenblatts.. ich habe das 2102N genommen, du glaube ich 
das vom älteren 2102, was jedoch gerade bezüglich des Voltage Regulator 
viel besser beschrieben zu sein scheint.
https://www.mouser.com/datasheet/2/368/cp2102n_datasheet-1634912.pdf 
Dieses hab ich genommen.

Habt ihr zu meiner Schaltung noch irgendwelche Verbesserungsvorschläge? 
Habe die Abblockkondensatoren nun so geschalten, wie sie im Datenblatt 
des CP2102n als auch des ESP32-Wroom-32 gezeigt werden. Wie siehts hier 
mit dem Pullup aus? Ist dieser so richtig verschalten?

Ich glaube die zwei Taster für den Reset und Boot fehlen mir auch noch..

Freue mich auf euer Feedback! :)

Lg und Danke vorab!
Andreas

von Harald A. (embedded)


Lesenswert?

RXD/TXD sind nicht gekreuzt, soll das so?

von Klaus (feelfree)


Lesenswert?

Harald A. schrieb:
> RXD/TXD sind nicht gekreuzt, soll das so?

Ist doch wurscht. Egal wie man es macht, beim ersten Mal ist es sowieso 
immer falschrum. Erfahrung ;-)

von Andreas P. (andreas_p296)


Angehängte Dateien:

Lesenswert?

So besser? :D

von Harald A. (embedded)


Lesenswert?

Und dann ist es beim 1117 doch so, dass der 22uF als Minimum benötigt, 
dazu noch in einem gewissen ESR-Bereich. D.h. ein keramischer 
Kondensator würde einen Serienwiderstand erfordern.
https://electronics.stackexchange.com/questions/347762/ams1117-33-sot223-is-it-ok-with-ceramic-capacitors

von Falk B. (falk)


Lesenswert?

Andreas P. schrieb:
> So besser? :D

Nö. Dein Spannungsregler ist am Eingang falsch angeschlossen. Der soll 
sicher NICHT an eine Datenleitung, Eher an VBUS! VIO muss auch 
angeschlossen sein!

Und wenn man das Ganze etwas entzerrt kann man auch die Leitungen und 
Widerstände ohne Krampf und Dutzend Knicke zeichnen.

Schaltplan richtig zeichnen

von Harald A. (embedded)


Lesenswert?

RST vom CP2102 soll per Pull-up nach VIO gezogen werden. Was ist 
überhaupt mit VIO? Bleibt der offen? Habe das Datenblatt nur grob 
überflogen, ggf. nochmal einen Referenzschaltplan gegenprüfen.

von Andreas P. (andreas_p296)


Lesenswert?

Ups, ja der sollt natürlich an Vbus, hab wohl die falsche Linie 
erwischt. Danke für den Hinweis! 😅

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Wenn du schon einen eigenen 3,3-V-Regler hast, kannst du auch gleich den 
CP2102 daraus mit versorgen. Dann musst du dessen internen Regler nicht 
nehmen.

von Andreas P. (andreas_p296)


Lesenswert?

Darüber habe ich heute schon nachgedacht.. bzw eher ob der VDD vom 
CP2102, der ja 3V bereitstellt, verwendet werden kann um den ESP zu 
versorgen. Hat aber bisschen zu wenig Spannung, weswegen ich dann den 
externen Regler verbaut habe. Spricht da irgendetwas dagegen, den 
internen Regler zu verwenden, wenn dieser schon bereitgestellt ist?

Lg

von Falk B. (falk)


Lesenswert?

Andreas P. schrieb:
> Darüber habe ich heute schon nachgedacht.. bzw eher ob der VDD vom
> CP2102, der ja 3V bereitstellt, verwendet werden kann um den ESP zu
> versorgen. Hat aber bisschen zu wenig Spannung,

Und zu wenig Strom.

> weswegen ich dann den
> externen Regler verbaut habe. Spricht da irgendetwas dagegen, den
> internen Regler zu verwenden, wenn dieser schon bereitgestellt ist?

Nein.

von Andreas P. (andreas_p296)


Lesenswert?

Ja das mit dem Strom habe ich auch fast befürchtet, habe aber auf die 
schnelle nix dazu im Datenblatt gefunden 😅

Das mit dem Tantal am 1117 muss ich auch nochmal checken..

von Falk B. (falk)


Lesenswert?

Andreas P. schrieb:
> Ja das mit dem Strom habe ich auch fast befürchtet, habe aber auf die
> schnelle nix dazu im Datenblatt gefunden 😅

Diese internen Regler liefern meist um die 50mA nach außen, das ist für 
den ESP vermutlich zu wenig, vor allem wenn der per WLAN sendet.

> Das mit dem Tantal am 1117 muss ich auch nochmal checken..

Tu das, sonst schwingt das Ding.

von Andreas P. (andreas_p296)


Angehängte Dateien:

Lesenswert?

Mein aktueller finaler Schaltplan sieht nun so aus. Hat vielleicht noch 
jemand Verbesserungsvorschläge oder Tipps zur Verbesserung bzw. ob die 
Schaltung irgendwo unnötige Abblockkondensatoren etc. enthält?

Wäre über paar Empfehlungen oder Tipps nochmal sehr dankbar! :)

lg
Andreas

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.