CH348 USB zu 8 Port Serial (UART)

OP #7346945
Lesenswert?

Hi, ich habe heute mal ein kleines Board erstellt mit dem CH348L. Damit hat man 8x Uart mit jeweils "3V3 - GND - RXD - TXD - RTS - CTS - DTR - DSR - DCD - RI", die 10 Pins sind auf JST PH 2.0mm Stecker raus geführt. USB Port ist ein USB-C mit 500mA Polifuse und ESD Schutz. Die Uart Spannung kann man default auf 3.3V lassen oder extern mit 1.8V, 2.5V, 3.3V betreiben. Den DTR pin kann man auch auf TNOW umschalten für RS485 betrieb. 4 Löcher zum befestigen mit 3mm Durchmesser.

Im Anhang sind paar Bilder, Schaltplan und Eagle Projectdaten. Das Routing ist nicht mein bestes, aber bei 8 Uart Ports mit 10 Pins war es auch nicht ganz einfach auf 2 Layern. Wenn jemand lust hat das zu verbessern, dann los gehts ^^.

Ich hatte eigentlich nur vor mir 5 Stück bestücken zu lassen. Aber falls hier noch jemand Interesse hat, dann kann ich auch ne größere Bestellung machen. Stückpreis ca. 20€

Angehängte Dateien:
OP #7347028
Lesenswert?

Émile schrieb:

Interessant. Wie sieht die Verfügbarkeit des CH348L aus? Welche Händler liefern den? Wie sieht es mit Devicetreiberunterstützung aus?

Ich lasse den direkt bestücken. Distributor ist LCSC und die haben da noch einige auf lager.

http://www.wch-ic.com/products/CH348.html "Original serial applications are totally compatible without any modification in Windows operating systems."

Bei Linux gibt es auch Kernel Einträge.

Hier weiter Infos: https://www.cnx-software.com/2022/03/04/wch-ch348-8-port-usb-to-serial-chip-with-up-to-48-gpios/

Gast #7347054
Lesenswert?

Danke für die schnelle Antwort.

"Original serial applications are totally compatible without any modification in Windows operating systems."

Gut, wie man zwischen RS485- und RS232-Betrieb (TNOWx/DTRx) wählt, scheint im Datenblatt beschrieben zu sein (CFG Pin bzw. individuelle Pull-Down-Widerstände), aber wie steuert man die alternativen GPIOs an?

In the Windows OS, after installing high-speed VCP vendor driver, it can emulate standard UART, so the mostly original serial applications are totally compatible, without any modification.

CH348 can support up to 48-channel GPIO input and output function.

OP #7347060
Lesenswert?

Émile schrieb:

Danke für die schnelle Antwort.

"Original serial applications are totally compatible without any modification in Windows operating systems."

Gut, wie man zwischen RS485- und RS232-Betrieb (TNOWx/DTRx) wählt, scheint im Datenblatt beschrieben zu sein (CFG Pin bzw. individuelle Pull-Down-Widerstände), aber wie steuert man die alternativen GPIOs an?

In the Windows OS, after installing high-speed VCP vendor driver, it can emulate standard UART, so the mostly original serial applications are totally compatible, without any modification.

CH348 can support up to 48-channel GPIO input and output function.

Mit Terminal Software welche alle 10 Modem Pins unterstützt. Oder eigener Software. Oder Hersteller Software: http://www.wch-ic.com/search?q=CH348&t=downloads

Gast #7347079
Lesenswert?

aber wie steuert man die alternativen GPIOs an?

CH348 can support up to 48-channel GPIO input and output function.

Mit Terminal Software welche alle 10 Modem Pins unterstützt.

Nee. Das ist keine Lösung, denn die "Modem-Pins" sind keine I/Os, sondern haben eine fest vorgegebene Richtung; CTS ist ein Eingang, RTS ist ein Ausgang, aber die GPIOs sind bidirektional ("general GPIO0, used for IO input or output").

Oder eigener Software.

Ja, das wird man wohl machen müssen, via libusb, und sich die Dinge aus den Linux-Treibersourcen rauspicken. Immerhin: Das scheint dort unterstützt zu werden.

Insofern auch Danke dafür.

Ist wohl 'ne interessante Alternative zur "Konkurrenz" von ftdi ...

OP #7347083
Lesenswert?

Émile schrieb:

aber wie steuert man die alternativen GPIOs an?

CH348 can support up to 48-channel GPIO input and output function.

Mit Terminal Software welche alle 10 Modem Pins unterstützt.

Nee. Das ist keine Lösung, denn die "Modem-Pins" sind keine I/Os, sondern haben eine fest vorgegebene Richtung; CTS ist ein Eingang, RTS ist ein Ausgang, aber die GPIOs sind bidirektional ("general GPIO0, used for IO input or output").

Oder eigener Software.

Ja, das wird man wohl machen müssen, via libusb, und sich die Dinge aus den Linux-Treibersourcen rauspicken. Immerhin: Das scheint dort unterstützt zu werden.

Insofern auch Danke dafür.

Ist wohl 'ne interessante Alternative zur "Konkurrenz" von ftdi ...

Ja und für ~5$ / Stück deutlich billiger als >25€ / Stück der Konkurenz.

Also bitte melden, falls Interesse besteht an dem Board. Dann bestelle ich gleich paar mehr und dann wird das auch billiger. Auf AliExpress gibt es nur die CH348D Version wo nicht alle Pins raus geführt werden und kostet dort auch 40€ + Versand.

OP #7347113
Lesenswert?

Thomas Z. schrieb:

Also ich hätte schon Interesse an so einer Platine.

Ich würde die Beschriftung der Ports überarbeiten, so dass jeder Pin eine Beschriftung hat. Vielleicht die Beschriftung gleich noch auf der Unterseite.

Das Teil wird vermutlich Hersteller Treiber brauchen.

Es gibt Hersteller Treiber: http://www.wch-ic.com/search?q=CH348&t=downloads Aber diese sind nicht nötig unter Windows & Linux. Bei beiden sind diese bereits Integriert.

Gast #7347128
Lesenswert?

Cooles Projekt!

Beschrifte im Silkscreen doch bitte jeden Pin einzeln mit um 90° gedrehtem Text. Kein Mensch will Pins zählen und sich verzählen.

Ach, und soll "RTFM" wirklich intvertiert sein? ;-)

OP #7347132
Lesenswert?

Egbert schrieb:

Cooles Projekt!

Beschrifte im Silkscreen doch bitte jeden Pin einzeln mit um 90° gedrehtem Text. Kein Mensch will Pins zählen und sich verzählen.

Ach, und soll "RTFM" wirklich intvertiert sein? ;-)

Es sind 10 Pin JST-PH 2.0mm Ports, ich glaube in echt wird man dann nicht mehr viel vom Silkscreen erkenne. Aber ja kann ich gern noch anpassen.

Naja bei eagle, wenn man vor ein Wort ein ! macht, dann wird es invertiert ^^

OP #7347173
Lesenswert?

Εrnst B. schrieb:

Seh ich das richtig, dass du am USB-C-Port die beiden CC-Pins parallelgeschaltet hast, um einen 5.1k Widerstand einzusparen?

In die Falle ist der RasPi auch getappt, würde ich so nicht machen.

Es wird immer nur ein CC Pin verbunden, je nachdem wie man den Stecker dreht. Ich habe das bis jetzt in vielen Designs so benutzt und noch keine Probleme gehabt. Vielleicht hat der RasPi einen Stecker der intern anders verbunden ist.

OP #7347190
Lesenswert?

Εrnst B. schrieb:

Stefan A. schrieb:

Ich habe das bis jetzt in vielen Designs so benutzt und noch keine Probleme gehabt.

Bis du halt mal auf einen pingeligen Hub oder ein hochwertiges ("electronically marked") Kabel triffst...

Spart der eine Widerstand+Bestückung bei JLCPCB so krass gigantisch enorme Mengen Geld, dass es sich lohnt, es absichtlich falsch zu machen?

Habs gefixt, danke für den Hinweis. Habe zwar gelesen das macht nur was bei Ladegeräten aber ja sicher ist sicher.

Gast #7347193
Lesenswert?

Stefan A. schrieb:

Ich habe das bis jetzt in vielen Designs so benutzt und noch keine Probleme gehabt.

Ich verstehe Kapitel 3.2 bzw. Figure 6 so dass CC1 und CC2 jeweils ihren eigenen Pull-Down brauchen. Also nicht CC1 und CC2 zusammenschalten. https://ww1.microchip.com/downloads/en/appnotes/00001953a.pdf

Stefan A. schrieb:

Es sind 10 Pin JST-PH 2.0mm Ports, ich glaube in echt wird man dann nicht mehr viel vom Silkscreen erkenne. Aber ja kann ich gern noch anpassen.

Gibt es einen Grund für die 2mm Stecker? Mir persönlich sind 2.54mm Stecker lieber. Gerne 2-reihig, da passen dann Flachkabel-Quetschbuchsen.

OP #7347196
Lesenswert?

Stefan A. schrieb:

Es sind 10 Pin JST-PH 2.0mm Ports, ich glaube in echt wird man dann nicht mehr viel vom Silkscreen erkenne. Aber ja kann ich gern noch anpassen.

Gibt es einen Grund für die 2mm Stecker? Mir persönlich sind 2.54mm Stecker lieber. Gerne 2-reihig, da passen dann Flachkabel-Quetschbuchsen.

Ja, wenn ich ein 2.54 verwende, dann komme ich über das Standard Maß von meinem Bestücker und es wird um einiges Teurer.

Gast #7347200
Lesenswert?

Zum Bestückungsdruck der Platine:

Dort sind die Pins RxD0, RxD2, RxD4 und RxD7 als 5V-tolerant bezeichnet, das sind aber laut Datenblatt auch noch die Pins DTR0, DTR2 bis DTR7, CTS2 bis CTS5 und alle RI, DCD und DSR. (In der Tabelle 4 'Pin Definitions' ab S.3 mit (FT) gekennzeichnet)

Was mögen die Chipentwickler für ein komisches Zeug geraucht haben?

OP #7347202
Lesenswert?

Émile schrieb:

Zum Bestückungsdruck der Platine:

Dort sind die Pins RxD0, RxD2, RxD4 und RxD7 als 5V-tolerant bezeichnet, das sind aber laut Datenblatt auch noch die Pins DTR0, DTR2 bis DTR7, CTS2 bis CTS5 und alle RI, DCD und DSR. (In der Tabelle 4 'Pin Definitions' ab S.3 mit (FT) gekennzeichnet)

Was mögen die Chipentwickler für ein komisches Zeug geraucht haben?

Ja deswegen habe ich hin geschrieben RTFM für mehr Infos. Das war nur für die schnelle Info an welchen Ports ich ein Gerät mit 5V Uart Pins anschließen kann. Damit ich nicht immer ins Datenblatt schauen muss :)

Beitrag #7347215 wurde von einem Moderator gelöscht.
#7348254
Lesenswert?

Naja, eine nette Fingerübung ohne realen Anwendungswert. Die Zeiten der massenhaften echten Modems sind mehr als 25 Jahre vorbei. Daß es UART-USB Wandler gibt, welche die gesamten klassischen RS232 Signale zur Verfügung stellen hat mehr mit Nostalgie und Tradition als mit echter Nachfrage zu tun. Ein FT324XD mit minimalen UART-Signalen RX/TX und RTS#/CTS# reicht für 99% der UART-Anwendungen aus. Den großen Bruder FT232RL nutzt man nur, weil der deutlich eher verfügbar war und läßt die meisten Pins ungenutzt.

OP #7348272
Lesenswert?

Falk B. schrieb:

Naja, eine nette Fingerübung ohne realen Anwendungswert. Die Zeiten der massenhaften echten Modems sind mehr als 25 Jahre vorbei. Daß es UART-USB Wandler gibt, welche die gesamten klassischen RS232 Signale zur Verfügung stellen hat mehr mit Nostalgie und Tradition als mit echter Nachfrage zu tun. Ein FT324XD mit minimalen UART-Signalen RX/TX und RTS#/CTS# reicht für 99% der UART-Anwendungen aus. Den großen Bruder FT232RL nutzt man nur, weil der deutlich eher verfügbar war und läßt die meisten Pins ungenutzt.

Mich nervt es immer 3 oder 4 von solchen USB zu Seriel Wandlern an USB zu stecken. Da ist es Praktischer 8 Ports an ein USB zu bekommen.

Gerade wenn man in Kleinserie z.B. ESP32 flashen will ist es praktisch gleich 8 Davon auf einmal flashen zu können.

Gast #7348277
Lesenswert?

Stefan A. schrieb:

Stefan A. schrieb:

Es sind 10 Pin JST-PH 2.0mm Ports, ich glaube in echt wird man dann nicht mehr viel vom Silkscreen erkenne. Aber ja kann ich gern noch anpassen.

Gibt es einen Grund für die 2mm Stecker? Mir persönlich sind 2.54mm Stecker lieber. Gerne 2-reihig, da passen dann Flachkabel-Quetschbuchsen.

Ja, wenn ich ein 2.54 verwende, dann komme ich über das Standard Maß von meinem Bestücker und es wird um einiges Teurer.

Du könntest die Steckerleisten versetzt anbringen

xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxxxxxxx

Gast #7348362
Lesenswert?

Stefan A. schrieb:

Gibt es einen Grund für die 2mm Stecker? Mir persönlich sind 2.54mm Stecker lieber. Gerne 2-reihig, da passen dann Flachkabel-Quetschbuchsen.

Ja, wenn ich ein 2.54 verwende, dann komme ich über das Standard Maß von meinem Bestücker und es wird um einiges Teurer.

Vorschlag: Sieh beides vor. Einreihige PH-Steckverbinder im 2mm-Raster /und/ zweireihige Pfostenleisten im 2.54mm-Raster.

Dafür ist genug Platz auf der Platine, und was man drauflötet, bleibt dem Nutzer überlassen.

Gast #7348508
Lesenswert?

Stefan A. schrieb:

Falk B. schrieb:

Naja, eine nette Fingerübung ohne realen Anwendungswert. Die Zeiten der massenhaften echten Modems sind mehr als 25 Jahre vorbei.

Mich nervt es immer 3 oder 4 von solchen USB zu Seriel Wandlern an USB zu stecken. Da ist es Praktischer 8 Ports an ein USB zu bekommen.

Falk meinte wohl vorrangig die Signale DCD, DSR, RTS, CTS und RI - die braucht man meist nicht.

OP #7348513
Lesenswert?

H. schrieb:

Stefan A. schrieb:

Falk B. schrieb:

Naja, eine nette Fingerübung ohne realen Anwendungswert. Die Zeiten der massenhaften echten Modems sind mehr als 25 Jahre vorbei.

Mich nervt es immer 3 oder 4 von solchen USB zu Seriel Wandlern an USB zu stecken. Da ist es Praktischer 8 Ports an ein USB zu bekommen.

Falk meinte wohl vorrangig die Signale DCD, DSR, RTS, CTS und RI - die braucht man meist nicht.

Schon, wenn z.B. beim ESP der Bootloader zum Upload eingestellt wird. Dann kann man die Signale benutzen um den ESP zu resetten und die passenden Pins zu setzen um in den Bootloader modus zu kommen.

#7348575
Lesenswert?

Stefan A. schrieb:

Falk meinte wohl vorrangig die Signale DCD, DSR, RTS, CTS und RI - die braucht man meist nicht.

Schon, wenn z.B. beim ESP der Bootloader zum Upload eingestellt wird. Dann kann man die Signale benutzen um den ESP zu resetten und die passenden Pins zu setzen um in den Bootloader modus zu kommen.

Und das machts du dauernd? Auf 8 Kanälen gleichzeitig? C'mon! So ein IC ist für den Fall sinnvoll, wo man WIRKLICH ansatzweise 8 serielle Schnittstellen gleichzeitig, dauerhaft betreiben will/muss. Diese Fälle sind heutzutage selten. Erst recht mit allen Modemsignalen. Oder betreibst du eine Retro BBS mit 8 Modems?

OP #7348658
Lesenswert?

Falk B. schrieb:

Und das machts du dauernd? Auf 8 Kanälen gleichzeitig? C'mon! So ein IC ist für den Fall sinnvoll, wo man WIRKLICH ansatzweise 8 serielle Schnittstellen gleichzeitig, dauerhaft betreiben will/muss. Diese Fälle sind heutzutage selten. Erst recht mit allen Modemsignalen. Oder betreibst du eine Retro BBS mit 8 Modems?

Wie gesagt für die Produktion ist es gut neben RX und TX auch weiter Pins zu haben welche man einfach ansteuern kann um bestimmt Events zu initialisieren. Wie z.B. Bootloader starte oder eine Testprozedur usw...

Gast #7348759
Lesenswert?

Stefan A. schrieb:

Falk B. schrieb:

Und das machts du dauernd? Auf 8 Kanälen gleichzeitig? C'mon! So ein IC ist für den Fall sinnvoll, wo man WIRKLICH ansatzweise 8 serielle Schnittstellen gleichzeitig, dauerhaft betreiben will/muss. Diese Fälle sind heutzutage selten. Erst recht mit allen Modemsignalen. Oder betreibst du eine Retro BBS mit 8 Modems?

Wie gesagt für die Produktion ist es gut neben RX und TX auch weiter Pins zu haben welche man einfach ansteuern kann um bestimmt Events zu initialisieren. Wie z.B. Bootloader starte oder eine Testprozedur usw...

RTS und CTS sind häufig genutzte Handshake-Leitungen, manchmal auch DSR und DTR, es gibt z.B. Maschinensteuerungen, die neben TX und RX weitere 2 oder sogar weitere 4 Leitungen wollen.

#7348899
Lesenswert?

Nun, ist ja auch müßig, darüber zu diskutieren, ob Stefan die Signale braucht oder nicht. Wie ist denn das mit der Reihenfolge bei der Anmeldung der Ports? Hatte mal einen Silabs 4-Port, da war es in Windows leider Zufall, in welcher Reihenfolge die Ports hochkamen (auf verschiedenen Systemen, nicht nach Neustart). War leider etwas nervig. Ist der CH da besser? Die kleineren CH340 haben doch auch noch dieses Problem mit der nicht vorhandenen Seriennummer, die ebenfalls zum Port-Verwirrspiel beitragen können. Das mit der evtl. unstabilen 3.3V-Versorgung ist völlig egal? Da gab es kein Feedback.

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