CP210x/CP2102 besser als CH340/CH340G

Als Tipp, falls ihr an irgendwelchen Seriellen Consolen (3,3V/CMOS Pinheader in Routern) hängt und nur teilweise lesbaren Output bekommt (oder nur Zeitweise, z.B. nicht vom Bootloader und erst nach dem Kernel-Init) und/oder Eingaben gar nicht funktionieren.

Die CP2102er-Chips scheinen wesentlich toleranter zu sein, was verschliffene Signale, fiesem Timing oder fehlende Pull-Up/Pull-Down-Widerstände anbelangt.

Konkret ist es mir an einem TP-Link WA901v5 mit dem CH340 nach dem „Überbrücken“ der in der Bestückung fehlenden Widerstände kaum etwas gelungen, mit dem CP210er ging’s sofort.


(Von den PL2302/PL2303 sollte man meiner Meinung nach die Finger lassen, da dort hauptsächlich Clones auf dem Markt sind, die von Originalhersteller-Treibern unter Windows boykottiert werden. Was deren gutes Recht ist, aber dafür sorgt, dass man eigentlich nie weiss, ob es nun auch unter Windows funktionieren wird oder nur unter Linux. Für Linux-Only kein Problem, aber wenn man sich damit eine mögliche Hintertür zuschlägt, dann ist das ungünstig.)

Nach all den Jahren eine Ursache gefunden für „Uboot verstümmelte Zeichen, Linux-Kernel klar“:

Der Baudraten-Teiler! Beide rechnen den aus dem Referenztakt (z.B. 25MHz)
(base_baud = 1562500 im Bootlog):

  • Linux rundet auf 14, das sind 111607 Baud (−3,1 %). Das verkraften beide Adapter.
  • U-Boot schneidet ab, ergibt das 13, also 120192 Baud (+4,3 %). Das liegt an der Grenze: Der FTDI schafft es, der CH340 nicht.
angefordert FT232R CH340 CP2102N CP2102 (alt)
111607 (Linux am C25) 111628 (+0,02 %) 111111 (−0,44 %) 111628 115200 (+3,2 %)
115200 115385 (+0,16 %) 115385 (+0,16 %) 115385 115200
120192 (U-Boot?) 120000 (−0,16 %) 120000 (−0,16 %) 120000 128000 (+6,5 %)

PS. der ch340 kommt mit dem „115200er“ UBboot auf 120000bps zurecht.