CP2102 UART模块是Silicon Labs推出的RS-232 Communicator的升级版,它是一个CP2102芯片USB转UART桥接器,具有12Mbps USB全速。
CP2102具有用于串行数据的高性能内置收发器以及用于芯片和外部电路能量控制的暂停/恢复信号,该模块支持握手,还处理USB主机发出的命令请求,以控制异步串行UART端口的活动。
此外,CP2102包含一个1024字节的PROM和一个48MHz的内部振荡器。该器件内置两个稳压器和匹配的上拉电阻。CP2102兼容Windows/Linux/Mac OS-X/OS-9和现有的COM端口。但是,它需要驱动程序来启动串行通信。
CP2102 USB转UART桥模块由CP2102芯片、调制解调器接口信号端口、控制端口、UART数据传输加控制端口、电源端口、内置TX和RX LED组成。
CP2I02 UART模块的引脚排列如下所示:
| 引脚名称 | 功能描述 |
|---|---|
| VCCIO | 正电源引脚 |
| GND | 接地脚 |
| RST | 复位引脚 |
| TXD | UART串口传输引脚 |
| RXD | UART串行接收引脚 |
| CTS | 低电平有效的清除发送输入引脚。它支持Xon/Xoff握手机制。 |
| RTS | 低电平有效Ready-to-Send输出引脚 它支持Xon/Xoff握手机制。 |
| DSR | 低电平有效数据集就绪输入引脚。它表明它已准备好接受数据.. |
| DTR | 低电平有效数据终端就绪输出引脚。它表明终端已准备好进行数据传输。 |
| DCD | 低电平有效数据载体检测输入引脚。它指示何时从调制解调器接收到良好的载波。 |
| SUSPEND | 高电平有效USB挂起状态引脚 |
| SUSPEND | 低电平有效USB挂起状态引脚 |
| RI | 低电平有效Ring Indicator输入引脚。当它改变其状态时,会产生硬件中断。 |
USB转UART模块的一些附加功能如下所述:
数据传输是如何发生的?
CP2102通过USB端口插入PC。微控制器单元和模块的RX和TX信号连接。这些模块用作主机PC的串行端口。主机PC发送信息,模块将它们转换为UART信号,这些信号通过UART协议传送到微控制器。
连接Arduino Pro Mini
Arduino pro mini和其它不带板载USB编程器的Arduino模块可以使用此USB到串行转换器芯片进行编程。
安装CP2102串口模块驱动
在使用CP2102模块之前,需要安装驱动程序。当将此USB模块插入计算机USB端口时,将自动安装所需的驱动程序。但是如果驱动程序没有自动安装,将需要手动安装它们。因为只有安装驱动程序才能以使其正常工作。CP2102驱动下载地址
接线图
CP2102串口模块与Arduino Mini Pro的引脚按照下图示连接:
| Arduino Pro Mini | CP2102 Module |
|---|---|
| VCC | VCCIO |
| GND | GND |
| RXI | TXD |
| TX0 | RXD |
| DTR | DTR |
/*
Blink
Turns an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://www.arduino.cc/en/Main/Products
modified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/Blink
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
代码说明
CP2102和CH340都是常见的USB转UART芯片,但它们在特性和性能上存在一些区别:
生产厂家不同:CP2102由美国公司生产,而CH340则由中国公司生产。
驱动程序不同:CP2102芯片驱动包含在大多数主流操作系统中,如Windows、Mac OS X和Linux等;而CH340则需要下载特定的驱动程序。
芯片尺寸不同:CH340的尺寸更小,因此更适合于嵌入式应用。
工作电压不同:CP2102的工作电压范围为3.3V ~ 5.25V,而CH340的工作电压范围为3.3V~5V。
数据传输速度不同:CP2102的数据传输速度可以高达921600 bps,而CH340的数据传输速度最高为2Mbps。
应用范围不同:由于CP2102设计原则适合于大容量数据传输和高速数据传输,因此更适合于工业和仪器领域的应用。而CH340则更适用于对传输速度和功耗有要求较低的嵌入式领域。
综上所述,CP2102和CH340都是比较不错的USB转串口芯片,根据应用场景不同可以选用不同的芯片。