USB-SERIAL CH341A driver is a windows driver .
Common questions for USB-SERIAL CH341A driver
Q: Where can I download the USB-SERIAL CH341A driver's driver?Please download it from your system manufacturer's website. Or you download it from our website.
Q: Why my USB-SERIAL CH341A driver doesn't work after I install the new driver?
1. Please identify the driver version that you download is match to your OS platform.
2. You should uninstall original driver before install the downloaded one.
3. Try a driver checking tool such as DriverIdentifier Software .
As there are many drivers having the same name, we suggest you to try the Driver Tool, otherwise you can try one by on the list of available driver below.
Please scroll down to find a latest utilities and drivers for your USB-SERIAL CH341A driver.Be attentive to download software for your operating system.
If none of these helps, you can contact us for further assistance.
USB-SERIAL CH341A driver download listDescription: USB-SERIAL CH341A driver setup Version: 4.2.8 Date: 09 Sep 2014 Filesize: 0.81 MB Operating system: Windows XP, Visa, Windows 7,8 (32 & 64 bits) |
Version: 003.001.2009.006
Date: 2009-06-03
Filesize: 158.59K
Operating system: Windows XP,Vista, Windows 7 Filename: IWB드라이버_vista.zip
Version: 002.008.2007.009
Date: 2007-09-24
Filesize: 6.16M
Operating system: Windows XP,Vista, Windows 7
DriverIdentifier Tool
Find the drivers quickly
Download directly from OEM
Designed for Windows 8, 7, Vista, XP
Download
Download directly from OEM
Designed for Windows 8, 7, Vista, XP
Download
USB-EPP/I2C.. CH341A driver is a windows driver .
Common questions for USB-EPP/I2C.. CH341A driver
Q: Where can I download the USB-EPP/I2C.. CH341A driver's driver?Please download it from your system manufacturer's website. Or you download it from our website.
Q: Why my USB-EPP/I2C.. CH341A driver doesn't work after I install the new driver?
Ch341a Usb Driver Zip File
1. Please identify the driver version that you download is match to your OS platform.2. You should uninstall original driver before install the downloaded one.
3. Try a driver checking tool such as DriverIdentifier Software .
As there are many drivers having the same name, we suggest you to try the Driver Tool, otherwise you can try one by on the list of available driver below.
![Ch341a Usb Driver Zip Ch341a Usb Driver Zip](/uploads/1/2/3/7/123701326/818879211.jpg)
Please scroll down to find a latest utilities and drivers for your USB-EPP/I2C.. CH341A driver.Be attentive to download software for your operating system.
If none of these helps, you can contact us for further assistance.
USB-EPP/I2C.. CH341A driver download listDescription: USB-EPP/I2C.. CH341A driver setup Version: 4.2.8 Date: 09 Sep 2014 Filesize: 0.81 MB Operating system: Windows XP, Visa, Windows 7,8 (32 & 64 bits) |
Version: 002.002.2009.006
Date: 2009-06-05
Filesize: 56.16K
Operating system: Windows XP,Vista, Windows 7
DriverIdentifier Tool
Find the drivers quickly
Download directly from OEM
Designed for Windows 8, 7, Vista, XP
Download
Download directly from OEM
Designed for Windows 8, 7, Vista, XP
Download
Scan performed on 4/25/2017, Computer: Dell Precision R7610 - Windows 7 64 bit
Outdated or Corrupted drivers:5/21
Device/Driver | Status | Status Description | Updated By Scanner |
Motherboards | |||
Intel(R) ICH9 Family USB Universal Host Controller - 2934 | Up To Date and Functioning | ||
Mice And Touchpads | |||
ELECOM HID-compliant mouse | Up To Date and Functioning | ||
Logitech Logitech Gaming Virtual Keyboard | Corrupted By Usb Serial Ch341 Com1 | ||
Usb Devices | |||
Initio Dispositif de stockage de masse USB | Up To Date and Functioning | ||
Sound Cards And Media Devices | |||
NVIDIA NVIDIA GeForce GTX 675M | Up To Date and Functioning | ||
Intel(R) High Definition Audio-apparaat | Corrupted By Usb Serial Ch341 Com1 | ||
YUAN High-Tech Development YUAN MC763M/MC763H Hybrid Analog/DVB-T | Up To Date and Functioning | ||
Network Cards | |||
Buffalo BUFFALO WLI-UC-GNM Wireless LAN Adapter | Up To Date and Functioning | ||
Keyboards | |||
Microsoft Keyboard Device Filter | Up To Date and Functioning | ||
Hard Disk Controller | |||
VIA Secondary IDE Channel | Up To Date and Functioning | ||
Others | |||
Hewlett-Packard psc 1200 (DOT4) | Up To Date and Functioning | ||
Intel Intel(r) AIM External TV Encoder Driver 1 | Up To Date and Functioning | ||
Intel(R) ICH9DO LPC Interface Controller - 2914 | Up To Date and Functioning | ||
Broadcom HP integrated module with Bluetooth wireless technology | Up To Date and Functioning | ||
Unibrain Texas Instruments 1394 OHCI Compliant Host Controller | Up To Date and Functioning | ||
Cameras, Webcams And Scanners | |||
Canon Canon MP560 ser | Corrupted By Usb Serial Ch341 Com1 | ||
Video Cards | |||
ATI RADEON X600 Series Secondary (Microsoft Corporation - WDDM) | Up To Date and Functioning | ||
Input Devices | |||
Logitech HID-compliant consumer control device | Up To Date and Functioning | ||
Port Devices | |||
MediaTek MediaTek PreLoader USB VCOM Port (COM51) | Corrupted By Usb Serial Ch341 Com1 | ||
Monitors | |||
Sony Digital Flat Panel (1024x768) | Up To Date and Functioning | ||
Mobile Phones And Portable Devices | |||
Acer NOKIA | Corrupted By Usb Serial Ch341 Com1 |
Scan performed on 4/24/2017, Computer: HP RS898AA-B14 t3740.be - Windows 7 64 bit
Outdated or Corrupted drivers:8/20
Device/Driver | Status | Status Description | Updated By Scanner |
Motherboards | |||
Intel PCI standard host CPU bridge | Outdated | ||
Mice And Touchpads | |||
VMware VMware USB Pointing Device | Outdated | ||
Usb Devices | |||
Intel(R) 925X/XE PCI Express Root Port - 2585 | Up To Date and Functioning | ||
Sony Ericsson Mobile Software Download | Corrupted By Usb Epp I2c. Ch341a | ||
HTC T-Mobile myTouch 3G Slide | Up To Date and Functioning | ||
Sound Cards And Media Devices | |||
Sony Multimedia Video Controller | Up To Date and Functioning | ||
Realtek Audio Device on High Definition Audio Bus | Up To Date and Functioning | ||
Network Cards | |||
Ralink 802.11bgn 1T1R Mini Card Wireless Adapter | Up To Date and Functioning | ||
Keyboards | |||
Microsoft HID Keyboard | Outdated | ||
Hard Disk Controller | |||
Intel(R) 82801DB Ultra ATA Storage Controller - 24CB | Up To Date and Functioning | ||
Others | |||
Google Android ADB Interface | Corrupted By Usb Epp I2c. Ch341a | ||
Texas Instruments Texas Instruments PCI7420 Integrated FlashMedia Controller | Up To Date and Functioning | ||
AuthenTec AuthenTec AES3500 TruePrint Sensor | Corrupted By Usb Epp I2c. Ch341a | ||
Broadcom HP integrated module with Bluetooth wireless technology | Up To Date and Functioning | ||
Cameras, Webcams And Scanners | |||
Realtek Realtek USB2.0 PC Camera | Up To Date and Functioning | ||
Video Cards | |||
VIA/S3G VIA/S3G UniChrome Pro IGP | Outdated | ||
Input Devices | |||
Logitech Logitech WingMan Digital Device | Corrupted By Usb Epp I2c. Ch341a | ||
Port Devices | |||
LG LGE Bluetooth TransPort (COM5) | Up To Date and Functioning | ||
Monitors | |||
Sony Digital Flat Panel (1024x768) | Up To Date and Functioning | ||
Mobile Phones And Portable Devices | |||
Acer NOKIA | Up To Date and Functioning |
The driver can be used with CH341A USB to UART/I2C/SPI adapter boards to connect SPI slaves to a Linux host. It uses either the fast SPI hardware interface which is, however, limited to SPI mode 0 or a slow SPI bit banging implementation.
Additionally, CH341A data pins that are not used for the SPI interface can be configured as GPIO pins. The driver can generate software interrupts for all input pins. One input pin can be connected with the CH341A interrupt pin to generate hardware interrupts. However, since USB is an asynchronous communication system, it is not possible to guarantee exact timings for GPIOs and interrupts.
Limitations of the SPI interface
The SPI hardware interface implementation is limited to
- SPI mode 0 (CPOL=0, CPHA=0)
- fixed clock frequency of about 1.4 MHz,
- low active CS signal,
- single bit transfers,
- 8 bits per word, and
- 3 slaves at maximum.
Because of the very limited documentation and applications that are almost all in Chinese, it is impossible to figure out whether these parameters can be changed by means of control commands. Therefore you have to live with this configuration as it is if you want to use the hardware implementation :-(
The bit banging implementation allows the following SPI modes
- SPI mode 1 (CPOL=0, CPHA=1)
- SPI mode 2 (CPOL=0, CPHA=1)
- SPI mode 3 (CPOL=0, CPHA=1)
as well as high active CS signals. It is very slow. Only a SCK clock frequency of about 400 kHz can be reached, so that one byte takes around 14 us. However, each byte of a message has to be sent as a separate USB message to the adapter because of its bitwise implementation and the very limited USB endpoint buffer sizes. This results into a delay of about 6.5 ms between each byte. Additionally, handling the CS signal before the transfer and after the transfer causes an additional delay of about 20 ms. Thus, it takes about
to transfer a message of n bytes.
Both implementations allow the transmission with MSB first (
SPI_MSB_FIRST
) and LSB first (SPI_LSB_FIRST
).SPI configuration
The driver uses following CH341A pins for the SPI interface.
Pin | Name | Direction | Function SPI (CH341A) |
---|---|---|---|
18 | D3 | output | SCK (DCK) |
20 | D5 | output | MOSI (DOUT) |
22 | D7 | input | MISO (DIN) |
15 | D0 | output | CS0 |
16 | D1 | output | CS1 |
17 | D2 | output | CS2 |
With these three CS signals, three slaves can be used at maximum at the interface.
GPIO configuration
Five of the data pins can be configured as GPIO pins if they are not used for the SPI interface or as chip select signals:
Pin | Name | SPI Function (default) | Configurable as (CH341 default in bold face) |
---|---|---|---|
15 | D0 | CS0 | Input, Output, CS |
16 | D1 | CS0 | Input, Output, CS |
17 | D2 | CS0 | Input, Output, CS |
19 | D4 | OUT2 | Input, Output |
21 | D6 | IN2 | Input |
Please note:
- Direction of pins that are configured as input or output can be changed during runtime.
- Pin 21 (D6/IN2) can only be configured as input. It's direction can't be changed during runtime.
- At least one of the CS data pins D0..D2 has to be configured as CS signal.
- One of the inputs can be configured to generate hardware interrupts for rising edges of signals. For that purpose, the pin has to be connected with the CH341A INT pin 7.
Installation of the driver
Prerequisites
To compile the driver, you must have installed current kernel header files.
Even though it is not mandatory, it is highly recommended to use DKMS (dynamic kernel module support) for the installation of the driver. DKMS allows to manage kernel modules whose sources reside outside the kernel source tree. Such modules are then automatically rebuilt when a new kernel version is installed.
To use DKMS, it has to be installed before, e.g., with command
on Debian based systems.
Installaton
The driver can be compiled with following commands:
If DKMS is installed (recommended), command
sudo make install
adds the driver to the DKMS tree so that the driver is recompiled automatically when a new kernel version is installed.In case you have not installed DKMS, command
sudo make install
simply copies the driver after compilation to the kernel modules directory. However, the module will not be loadable anymore and have to be recompiled explicitly when kernel version changes.If you do not want to install the driver in the kernel directory at all because you only want to load it manually when needed, simply omit the
sudo make install
.Loading
Once the driver is installed, it should be loaded automatically when you connect a device with USB device id
1a86:5512
. If not try to figure out, whether the USB device is detected correctly using commandand try to load it manually with command:
Uninstallation
To uninstall the module simply use command
in the source directory.
Conflicts with CH341A USB to I2C Linux kernel driver
Since the CH341A also provides an I2C interface as USB device with same id, you have to unload the driver module with
before you can load the driver module for the I2C interface.
Configuration of the driver
Per default, the driver configures the GPIOs as following and polls the inputs with a default rate of 100 Hz and 10 ms period, respectively.
Pin | SPI Function | GPIO function | GPIO name | IRQ |
---|---|---|---|---|
15 | CS0 | - | - | - |
16 | CS1 | - | - | - |
17 | CS2 | - | - | - |
19 | - | Input | gpio4 | hardware |
21 | - | Input | gpio5 | software |
GPIO configuration as well their polling rate can be changed according to your requirements. The direction of GPIO pins configured as inputs or outputs can be changed during runtime.
GPIO configuration
To change GPIO configuration, simply change the variable
ch341_board_config
that should be self-explaining. This variable contains structured entries for each configurable pin. Each entry consists of the pin number, the GPIO mode used for the pin, the name used for the GPIO in the Linux host and a flag whether the pin is connected with the CH341A hardware interrupt pin INT. Default configuration is:In this configuration, pins 15 to 17 are used as CS signals while pin 19 and 21 are used as inputs. Additionally, pin 19 is connected with the CH341A hardware interrupt pin INT that produces hardware interrupts on rising edge of the signal connected to pin 19.
To define a pin as output, simply change the GPIO mode to
CH341_PIN_MODE_OUT
. For example, if you would like to configure only one CS signal and the other CS signal pins as GPIO outputs, the configuration could look like the following:Please note:
- Pin 21 can only be configured as input. It's direction can't be changed during runtime.
- At least one of the CS signal pins 15..17 (D0..D2) has to be configured as CS signal.
- Hardware interrupts can only be generated for rising edges of signals.
- Only one of the input pins can be configured to generate hardware interrupts (
hwirq
set to 1). - The signal at the input pin that is configured to generate hardware interrupts (
hwirq
set to 1) MUST also be connected to the CH341A INT pin 7. - If ther is no input should generate hardware interrupts, set
hwirq
to 0 for all entries.
GPIO polling rate
GPIO inputs are polled periodically by a separate kernel thread. GPIO polling rate defines the rate at which the kernel thread reads GPIO inputs and determines whether to generate software interrupts. That is, it defines the maximum rate at which changes at GPIO inputs can be recognized and software interrupts can be generated.
The GPIO polling rate is defined by its period in milliseconds using the constant
CH341_POLL_PERIOD_MS
. The period must be at least 10 ms, but should be 20 ms or more if possible dependent on the performance of your system. Please check your syslog
for messages like 'GPIO poll period is too short by at least %n msecs'
. This message is thrown if the defined CH341_POLL_PERIOD_MS
is shorter than the time required for one reading of the GPIOs.The higher GPIO polling rate is, the higher is the system usage by the kernel thread. On the other hand, the probability that short interrupt events will be lost grows, the lower the GPIO polling rate becomes.
GPIO polling rate can also be changed using the module parameter
poll_rate
either when loading the module, e.g.,or as real
root
during runtime using sysfs, e.g.,Please note: Since the CH341A hardware interrupt signal INT uses a separate USB endpoint, the maximum rate of hardware interrupts is independent on the GPIO polling rate and can reach up to 400 Hz.
Usage from user space
Using SPI slaves
Once the driver is loaded successfully, it provides up to three SPI slave devices on next available SPI bus, e.g.,
according to the naming scheme
/dev/spidev<bus>.<cs>
. <bus>
is the bus number selected automatically by the driver and <cs>
is the chip select signal of the according pin. Please note that independent on how many pins are configured as chip select signals, pin 15 gives always 0, pin 16 gives always 1, and pin 17 gives always 2 as chip select signal.Standard I/O functions like
open
, ioctl
and close
can be used to communicate with one of the slaves connected to the SPI.To open an SPI device simply use:
Once the device is opened successfully, you can modify SPI configurations and transfer data using
ioctl
function.Function
ioctl
is also used to transfer data:Using GPIOs
To access GPIOs from user space,
sysfs
can be used . For each configured GPIO, a directoryis created by the system, where
<gpio>
is the name of the GPIO as defined in the driver variable ch341_board_config
. These directories contain- the file
value
that can be used to read from and write to GPIOs, - the file
edge
that can be used to control whether and what type of interrupt is enabled, and - the file
direction
that can be used to change the direction of the GPIO if possible.
Please note: For read and write operations from and/or to these files, the user requires read and/or write permissions, respectively.
Open a GPIO
Before a GPIO can be used, file
value
has to be opened Serial number aiseesoft screen recorder.where
<gpio>
is again the name of the GPIO.Write GPIO output
Once the file
value
is opened, you can use standard I/O functions to read and write. To write a GPIO value, simply use function write
as following. The value is written to the GPIO out immediately.Read GPIO input
To read values from GPIOs immediately, you can simply use function
read
as following:After each read operation, file position has to be rewound to first character before the next value can be read.
Reacting on GPIO input interrupt
Function
poll
can be used before function read
to react and read values from the GPIO only on interrupts.Function
poll
blocks until the specified event on the file descriptor happened.Please note: The interrupt has to be activated before by
root
with commandwhere
<gpio>
is again the name of the GPIO and <type>
is the type of the interrupt that should be used. Possible interrupt types arerising
for interrupts on rising signal edges,falling
for interrupts on falling signal edges, andboth
for interrupts on rising as well as falling signal edges.
For example, following command would activate interrupts for rising edges of the signal connected to
gpio4
. The command has to be executed as real root
, using sudo
command doesn't work.Even though the driver defines software interrupts for GPIO inputs as well as GPIO outputs, they can be activated only for GPIO inputs.
Full examples for GPIO output and interrupt input can be found in the driver's directory.
Change the GPIO direction
To change the direction of a GPIO pin configured as input or output, simply write as
root
keyword in
or keyword out
to the file direction
, e.g.