USB-C auf CP2102N

OP #7343669
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

Angehängte Dateien:
#7343684
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,
#7343715
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.

  1. 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.

  1. 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.

Moderator Persönliche Seite #7343750
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 …

Persönliche Seite #7343773
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.

Gast #7343952
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

Angehängte Dateien:
#7343960
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.

Persönliche Seite #7343963
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 :)

OP #7343969
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.

Moderator Persönliche Seite #7343982
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.

Gast #7344057
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 😅

OP #7344063
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..

Gast #7344095
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?

Angehängte Dateien:
Moderator Persönliche Seite #7344109
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.

OP #7344891
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

Angehängte Dateien:
OP #7344957
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

#7344959
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.

#7344978
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren