USB Bus Adapter Chip CH341

Overview 

 The CH341 is a USB bus adapter chip that provides UART, print, and parallel ports as well as commonly used synchronous serial interfaces such as 2-wire and 4-wire via the USB bus. In the UART mode, the CH341 provides interactive rate control signals such as serial transmit enable and serial receive ready, as well as the commonly used MODEM contact signals, which can be used to extend UART for computers, or to upgrade ordinary serial devices directly to the USB bus. In the print port mode, the CH341 provides a standard USB print port compatible with USB-related specifications and the Windows operating system, which is used to upgrade ordinary parallel-port printers directly to the USB bus. In parallel port mode, the CH341 provides an 8-bit parallel interface in EPP mode or MEM mode for direct input and output data in environments where a microcontroller/DSP/MCU is not required. In addition, the CH341B/F/A chip supports some common synchronous serial interfaces, such as 2-wire interface (SCL line, SDA line) and 4-wire interface (CS line, SCK/CLK line, MISO/SDI/DIN line, MOSI/SDO/DOUT line).

Features

Overview
UART
Print Port
Parallel Port
Synchronous Serial Port

Package

Note:
CH341C/T is only used for USB to serial or USB to 2-wire interface.
CH341H is only used for USB to 4-wire interface, etc. (e.g. SPI), it is not recommended for new design, CH341B or CH341F is recommended.
CH341A, CH341T and CH341H must be connected with external crystal and oscillator capacitor.
CH341B, CH341F and CH341C can either be connected to an external crystal and capacitor or use the built-in clock directly without external connection.

Most of the people aware of CH341 based memory programmer which is exclusively used for BIOS update and copying the BIOS etc.,

Recently there are many variants available in the market for different applications and available in different form factors.

The above module is available with almost all the pins available to the user. The user can connect as per the requirements.

Another variant is dedicated to only UART and I2C. This module can be used as general purpose USB-TTL module. This module comes with voltage selection jumper for 3V3 or 5V0.

USB-I2C Bridge

This website only deals with CH341 TOOL

There are periodic update available with more device support and bug fix.

There is a Github with all the source files and BIN files available for WINDOWS

Recently Got few modules for USB-I2C bridge applications. 

We can find the datasheet, driver and technical documents at WCH website page. We can also use the Github CH341 TOOL page which also contains the driver and DLL for the windows App.

CH341-RDA5807FP or any of the RDA5807 family member IC

The FM Tuner IC can be operated at 3V3. So if we select the 3V3 jumper in CH341 module, then the CH341 module can provide the power as well as SCL, SDA without any level translators.

CH341 - TEA5767 FM Tuner

We can also connect the TEA5767 module from Philips or NXP and can be tuned by the CH341 through I2C bus

For backward compatibilty RDA5807 Tuner from RDA microelectronics also supports the same I2C address(0x60) of TEA5767 and can be used with the same setup without any modifications

We can also quick test the LCD and OLED modules without any external power or hardware.

CH341 + HD44780 + PCF7584 LCD MODULE

The GUI supports both HD44780 4 bit parallel or I2C version. 

The interesting thing about the GUI which supports only 2 lines. But I have tested with a 4 lines 20 characters LCD with backlight.

The trick is If we exceed 20 characters in the first list, it will automatically appear in 3rd line of the display. Siimilarly the 2nd line overflow will result in the 4th line. That is how the 79 digits and a decimal point is displayed using a two line GUI.

CH341 - SSD1306 OLED 128x64 & 128x32

Even if you select the wrong resolution, still the text will appear with a compressed or elongated font

We can also turn on/off the display and adjust the contrast. We do not need any additional power or components to test the OLED module. Just 4 jumpers which takes few seconds to connect.

CH341-LM75A Temperature sensor

Just connecting 4 wires between the CH341 I2C and LM75A I2C we can read the temperature. This also helps to check the module or IC.

CH341 - DS1307 RTC

We can easily set and read the DS1307 RTC module without any external power or components.

There are many more ICs and functions supported by the GUI. Please refer to this PAGE