![](/upload/wiki/202312/14/17026112925869729969.jpg)
Overview
This product is used for USB to UART. This serial port module is a convenient and powerful electronic product designed for communication with a computer and a UART serial port device through a USB interface. It adopts high-quality CP2102-GMR chip, which has reliable performance and stable data transmission capability. It supports multiple operating systems, including Windows, Mac, and Linux, etc., providing users with extensive compatibility. No additional drivers are required, and the plug-and-play feature makes the use process easier and more convenient. Support baud rate from 300bps to 1Mbps, which can meet the needs of most serial communication. It provides a standard UART interface, including TX (transmit) and RX (receive) lines, and also has CTS (clear to send) and RTS (request to send) lines for more flexible control of data flow.
Parameters
Supply voltage | 5V(from USB Type-C) |
Logic voltage | 3.3V |
Serial communication interface chip | CP2102-GMR |
Baudrate | 12Mb/s(MAX) |
Size | 45mm(Length) x 20mm(width) |
Weight | 4.2g |
![](/upload/wiki/202404/22/17137769206707778223.jpg)
Resource Profile
Module Resource Profile is shown in the figure below:
![SG-C2102-01C](/upload/wiki/20230706/16887129655256580223.jpg)
① Onboard power indicator
②&⑥ Reserve 2.54mm pitch control pin pad
③ TXD LED indicator
④ UART(TTL) interface pin header
⑤ RXD LED indicator
⑦ 3.3V/5V voltage output level switching slide switch
⑧ USB Type-C connector
Usage
UART interface description
VOUT | 5V or 3.3V(switching with slide switch) |
GND | Ground |
TXD | Serial data transmit pin, connect to MCU.RX |
RXD | Serial data receive pin, connect to MCU.TX |
RTS | Request to send, used to control data sending, connect to MCU.CTS |
CTS | Clear sending for controlling data sending, connect to MCU.RTS |
Computer driver installation
Open the following official website:
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
Then select "DOWNLOADS" at the bottom of the page, you can see the driver software download for the corresponding operating system, as shown in the figure below:
![SG-C2102-01C](/upload/wiki/20230706/16887129653881962138.jpg)
Raspberry Pi configuration and testing
Raspberry Pi Hardware Interface Configuration Instructions
1. Connect one end of aUSBdata cable directly to a USB port on the Raspberry Pi.
2.Connect the other end of theUSBdata cable's Type-C port to the Type-Cconnectorof the module.
3. Use dupont cables to connect the TXD and RXD pins of the module together.
4. On the Raspberry Pi terminal, run the following command to check if the device is recognized:
lsusb
After running the command, the Raspberry Pi terminal displays the following.
![SG-C2102-01C](/upload/wiki/20230706/16887129654042813555.jpg)
Then run the command to view the recognized serial port number.
ls -l /dev/tty*
The terminal displays the following,ttyUSB0 is the recognized serial port number;
![SG-C2102-01C](/upload/wiki/20230706/16887129655192614355.jpg)
Run the command to view the baud rate of the serial port (note: the USB number here is written according to the USB identified above).
stty -F /dev/ttyUSB0
The terminal displays the following:
![SG-C2102-01C](/upload/wiki/20230706/16887129656911885256.jpg)
Run the command to view the serial port connection information.
dmesg | grep ttyUSB0
The terminal displays the following:
![SG-C2102-01C](/upload/wiki/20230706/16887129656962487202.jpg)
Enter the following code to test the UART to serial port module.
![SG-C2102-01C](/upload/wiki/20230706/16887129657066211450.jpg)
Demo code analysis:
pi@raspberrypi:~ $ python3 # open editable interface
Python 3.7.3 (default, Oct 31 2022, 14:04:00)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial # import the module
>>> ser = serial. Serial('/dev/ttyUSB0',115200,timeout = 0.5) #Set parameters: serial port number, baud rate, read time
>>> ser.isOpen() # determine whether the serial port is open
True # serial port is open return True, otherwise return False
>>> ser.write('123456'.encode()) # input data, data can be input multiple times
6# read returns the number of bytes written
>>> ser.inWaiting() #Read the total input bytes
6# return, display the accumulated number of bytes
>>> ser.read(6) #read six bytes, assuming a total of 24 bits of data are input, this time the first six bits will be output; if changed to ser.read(24) then only the input 24 bits will be output data
Computer and Raspberry Pi Connection Test
The computer is connected to the module through a USB data cable, and the module is connected to the Raspberry Pi through a Dupont cable. The wiring method is as follows:Module -> Raspberry Pi
GND -> GND
TXD -> RXD
RXD -> TXD
Run the command to view the serial port
ls -l /dev/*serial*
The terminal displays the following
![SG-C2102-01C](/upload/wiki/20230707/16887138182736107216.jpg)
sudo nano /boot/config.txt
Add the following two lines at the end of the config.txt file.
dtoverlay=pi3-miniuart-bt
force_turbo=1
The terminal displays the following:
![SG-C2102-01C](/upload/wiki/20230707/16887138182986795113.jpg)
Then save and exit. At this time, open the terminal again and enter "ls /dev -al", you can see that the serial port mapping has been forcibly changed, and the main serial port Serial0 has pointed to the hardware serial port ttyAMA0.
![SG-C2102-01C](/upload/wiki/20230707/1688713818292634864.jpg)
Computer and Raspberry Pi Connection Test
Open the terminal, enter "sudo apt-get install minicom" and wait for the installation to complete. After the installation is complete, the terminal displays the following:
![SG-C2102-01C](/upload/wiki/20230707/1688714709153347938.png)
Enter the command in the terminal: "minicom -D /dev/ttyAMA0 -b 115200" to open the serial port assistant.
Here -D /dev/ttyAMA0 points to the serial port number we opened, which is the same as COM1. -b 115200 is the configuration baud rate. We can enter Ctrl+A in minicom to see it below. For our baud rate, if -b is not set, the baud rate will be 115200 by default.
![SG-C2102-01C](/upload/wiki/20230707/16887138182792750530.jpg)
Run minicom -D /dev/ttyAMA0 -b 115200 to enter the serial port tool.
![SG-C2102-01C](/upload/wiki/20230707/1688713818286292059.jpg)
(1) First press Crtl+A in the minicom serial port, then click Z to enter the help option:
(2) Click O to enter the Configure Minicom option;
(3) Select the Serial port setup option, press F to change Hardware Flow Contorl to No; that is, disable the hardware flow, and then exit. All configurations have been completed here, and then you can verify it.
Go back to the computer side, open the serial port debugging assistant on the computer side, and set the serial port parameters at both ends to be the same;
![SG-C2102-01C](/upload/wiki/20230707/16887138183054478932.jpg)
If your minicom input is not displayed, press Crtl+A, then press E to open the echo function.
The computer side can send a series of data, but the Raspberry Pi side can only send data one by one, and will not automatically wrap;
When opening the minicom serial port assistant, if you got unresponsive keyboard input, you can refer to the following. But if you do not got this situation, you can skip this section.
Check the documentation and find this Note in the documentation:
Note: If you haven't configured minicom before (i.e: first use after installation), or if you find that your keyboard key presses are not sent to the RPi, you should make sure Hardware Flow Control is disabled. See Tedious Old-Fashioned Way Using
It reminds us to make sure to disable hardware control flow, and follow the documentation.
Resources
Data Sheet
Software
PL2303 series chip and driverdownload:
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers