WCH CH340 family of USB to serial chip is very popular, and often found on development boards for debugging/access to the serial console, but the company has now introduced the CH343 “Gen3” chip – just like CH9102F apparently – with a higher 6 Mbps baud rate, support for 1.8V, 2.5V, 3.3V, and 5V IO voltage, and the ability to request custom USB VID/PID numbers.
Three variants exist with CH343P, CH343G, and CH343K with different packages: QFN16, SOP16, and ESSOP10 respectively. CH343P contains an EEPROM for easy customization, while CH343G and CH343K PID/VID can still be customized for larger orders.
CH343 key features and specifications:
- Full-speed USB 2.0 device interface
- Hardware full-duplex serial UART interface with baud rate varies from 50bps to 6Mbps.
- Automatic identification and dynamic adaptation of common communication baud rate of 115200bps and below.
- Supports 5, 6, 7, or 8 data bits, as well as odd, even, space, mark, and no parity.
- MODEM interface signals: RTS, DTR, DCD, RI, DSR, and CTS.
- Supports CTS and RTS hardware automatic flow control.
- Supports half-duplex, status TNOW, used for controlling RS485 transmit-receive switch.
- Supports RS232 through an external voltage conversion chip.
- CH343P integrates EEPROM used to configure the chip of VID, PID, maximum current value, product information string, etc.
- Integrated Unique ID (USB Serial Number).
- Integrated 12MHz clock, no external crystal required.
- Power Management
- USB port 5V and 3.3V power supply.
- I/O independent power supply with 5V, 3.3V, 2. 5V, and 1.8V
- Integrated power-on-reset
- RoHS compliant SOP-16, ESSOP-10 and QFN16 lead-free package.
- Temperature Range – -40 to +85°C
The chip works with USB CDC drivers, and it should not need additional drivers on Windows, Linux, Mac, and Android. You’ll find more details in the datasheet, and on Twitter where Patrick Yang, Technical Director at WCH, often shares information about new products, and answers some technical questions.
WCH CH343G can be purchased on LCSC for just under $1 in single units, or around 55 cents per unit for 100+ orders. Waveshare is also selling a USB to serial board based on CH343G for about $4 with either a USB Type-C, Type-A, Micro USB, or mini USB port.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Finally a way to have a serial number on there, and be able to differenciate between multiple dongles on the same USB hub, like FTDI serial number?
Curious to see if they have an open source tool to change the EEPROM contents.
Chip has integrated Unique ID (USB Serial Number).
yep, configuration tool can be downloaded here
Any source code? I am not using Windows.
FWIW: shipping to EU starts at 6 USD. “Registered Post Air Mail $6.00”.
Would love to see future versions of this chip (or any other USB/Serial-port IC) support : 9-bit data, and USART support (both as a master generating the clock, and as a slave)
Just out of curiosity, in what use cases are you interested in 9-bit data ? You said too much or not enough 🙂
Probably for a RS485 kind of thingey that uses addressing. Some protocols use the high bit to indicate address/data. So, if you see a 9-bit value with the high bit set and your address in the lower 8 bits, you listen to the rest of the data, otherwise you go back to looking for your address.
I forget the name of the protocol, but I learned of it decades ago and told myself I’d never likely use it and just forgot about it. 🙂
The Elk M1 security systems do exactly that on their RS-485 bus, IIUC.
Ah I didn’t know that RS485 did support that, thanks for the explanation! I too remember about something being done in the past using a bit to split address/data, I’m wondering if it was on 8048, 8051, or maybe that was on a shift register used with HD44780 LCDs, anyway that’s too far away, it might have been something I found in a summer edition of Elektor when I was a kid 😉
You’re remembering right, the HD44780 LCD controllers use a Command/Data signal for a similar purpose. Not for addressing, but for determining what the other 8 bits mean.
If it is not a 32-bit MCU, such as WCH’s CH55x MCU, you can use the status report of the UART status register. If it is a 9-bit address information, an error message will be returned. The host adds a bit of information based on the original 8-bit information. The default is “0”. Once the error message is received, the default position is 1.
Or it’s a parity error, or it’s a framing error, or….
FYI. I’ve linked to the English datasheet in the post.
Hi, all CH32Vx chips（CH32V203/CH32V307,etc.) of WCH support 9-bit UART, which can be enabled by setting USARTx_CTRL1 bit12.
Is this supported in any OS drivers for these parts?
The 2.5V and 1.8V for TTL IO logic doesn’t seem selectable with this board. The jumper for 3.3V/5V is for VCC output to power a MCU, but nothing about CH343G’s VIO pin…. that’s too bad.
Hi,This board should be designed by WCH customers. If you need IO voltage of 1.8/2.5V, you can use the official WCH eva board or design it yourself to lead out the VIO pins of the CH343