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€
"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.
"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.
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 ...
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.
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.
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.
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.
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?
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 :)
Du betreibst den 1117 mit rein keramischen Kondensatoren am Ausgang. Damit arbeitet der nicht in der stabilen Region. Absolutes Minimum sind 10uF im Falle von Tantal. Im Falle von keramisch müsstest Du einen 0.5Ohm Serienwiderstand einfügen und vlt. so 47uF keramisch vorsehen.
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.
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.
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.
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?
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...
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.
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.