CP210x支持如下平台:
Windows Windows 10 Universal (v10.1.1)。 Windows 7/8/8.1/10 (v6.7.5)。 XP/Server 2003/Vista/7/8/8.1 (v6.7)。 Windows 2K。
OSX (v5)
Linux 3.x.x, 4.x.x系列内核中已经包含CP210x的驱动。也可以从我们官网下载并编译、加载驱动。 2.6.x系列内核开始包含CP210x的驱动。如果未包含请从我们官网下载并编译、加载驱动。
Android 4.2
需要编译内核,详情参见AN809
官网关于驱动的页面为:
http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx
Linux上自带有HID设备的驱动,我们又封装了SLABHIDDevice、SLABHIDtoUART的库函数方便用户调用。库文件及源代码在AN721SW的压缩包中如下文件夹: AN721SW\Linux\CP211x_InterfaceLibrary
如何在Linux系统上读写CP210x的GPIO?
Linux v4.10以后版本自带的CP210x VCP驱动程序cp210x.c中已经包含了对CP210x GPIO端口进行读写操作的相关函数。
另外,Silabs官方网站上的 Linux VCP 驱动程序压缩包中也包含了对 CP210x GPIO进行读写操作的参考例程,Linux VCP 驱动参考例程下载链接地址如下: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
HID设备使用操作系统自带的HID设备的驱动。但是USB-HID串口非标准USB设备类型,应用程序需要自己编写,调用Silabs提供的dll(dll调用操作系统的HID驱动)与设备通信。 USB-CDC串口也是虚拟串口的一种,只需要加载一个inf即可。应用程序可以按照标准的串口进行操作。需要注意的是这个inf也需要进行微软认证,否则在安装时会出现警告。
在CP210x设备枚举时,如何让CP210x VCP驱动忽略设备的序列号?
通常,Windows系统对每个新接入的CP210x设备会自动分配一个新的COM口编号便于系统对设备的识别。但对于生产测试系统,可能更希望看到不同设备接入后枚举到相同的COM端口。忽略设备序列号可以解决这COM口编号问题。
Silicon Labs的后来提供的CP210x VCP驱动安装包(V6.6版本及上)是基于DPInst开发的,无法直接通过修改驱动配置文件(.inf)以忽略设备的序列号。客户可以通过修改注册表的方式指定设备的VID 0xvvvv 和 PID 0xpppp以实现忽略设备序列号,方法如下:
1. Windows系统开始菜单 > 运行框中输入“regedit”启动注册表编辑器。
2. 在注册表编辑器左侧窗口中导航到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags
右键点击usbflags > New > Binary Value,修改新建的注册表项名为‘IgnoreHWSerNumvvvvpppp’ (其中vvvv为设备VID 4位十六进制数,pppp为PID的4位十六进制数),比如需要忽略CP2108设备的序列号,可以将其命名为IgnoreHWSerNum10C4EA71。同时双击该项修改其值为‘01’。
3. 重新启动电脑使得修改生效。
为了简化对注册表的直接操作,可以通过双击注册表文件直接导入到注册表方式添加或修改该注册表项,附件是忽略CP2108设备序列号的注册表文件。若需要忽略其它USB设备,则需修改其中的VID和PID数值。
在Windows的设备管理器中,发现每次接入CP210x设备后,系统自动分配的COM编号比较大,该如何删除被占用的多余COM端口?
除了CP2102型号以外,其它CP210x型号产品的芯片内部自带一个唯一的序列号。而Windows系统是依据所接入的USB设备的VID、PID以及序列号三者组合的不同而分配不同的COM口编号,同款CP210x芯片使用的VID/PID完全相同。从而导致系统在每次检测到新CP210x设备序列号接入后便会自动根据当前已占用的COM口编号递增分配新的COM口编号。后续即使设备已被拔出,所分配的COM端口在该系统上仍然处于被占用的隐藏状态,由此产生了许多被占用的多余的COM端口。下面以Windows 7为例,介绍如何显示并删除隐藏的设备。
1. 用管理员身份运行命令行。开始菜单 > 所有程序 > 附件,然后选择命令提示符,点击右键选择以管理员身份运行,打开命令行窗口。
2. 在命令提示符中设置变量,输入 set devmgr_show_nonpresent_devices=1,并按回车。
3. 接着在提示符中输入devmgmt.msc 启动设备管理器。
4. 在设备管理器中,点击菜单 View > Show hidden devices 以显示隐藏的没有连接到电脑上的设备名称。
5. 在设备管理器窗口左侧展开串口部分,将可以看到所有已被分配的COM口的设备列表。选择需要删除的串口设备,通过右键菜单> 卸载,便可以删除多余的设备。
另外,对于产线上的测试系统,用户并不希望所测试的设备COM口编号随着不同CP210x设备的接入而变化,需要固定使用同一COM口编号方便测试同类产品的不同设备,这时用户可以尝试通过修改注册表相关选项让Windows系统忽略指定的VID/PID设备的序列号。本文末附件提供了忽略CP2101/2/3/4, CP2105 和CP2108设备序列号的注册表文件,用户只需在测试系统上双击运行对应的注册表文件即可完成注册表的修改,忽略相应的CP210x设备的序列号,这样后续每次接入同类产品不同设备时,系统根据相同的VID/PID使用同一COM口编号。注意:用于USB3.0驱动的原因,通过修改注册表忽略系列号的方式对于连接到USB3.0接口的设备不起作用。
对于Windows 7/8/8.1系统中,我该如何强制指定CP210x使用特定的COM编号?
1. 开始菜单>运行框输入“regedit”启动注册表编辑器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter\ComDB
该二进制键值是按比特位代表不同的COM端口编号,即第一个字节从最高位到最低位代表COM8...COM1,第二个字节代表COM16...COM9,依此类推,第n个字节代表COM[n*8]...COM[n*8-7]。比特位数值1表示COM端口编号已被占用。通过双击该注册表项修改二进制键值可以指定设备的COM端口编号。
CP210x UART接口输入输出引脚是5V耐压吗?
CP2102/3/4/5 器件可以连接5V设备,只要该5V设备能够接受CP210x的逻辑高电平。CP210x UART输入引脚可以容许0-5V信号,任何超出该范围的信号需要电平转换器。
注意:并非所有CP2108的UART接口的输入引脚是5V兼容的。
所有CP210x UART 输出引脚驱动逻辑‘0’到信号地,逻辑‘1’到VDD(或者VIO,取决于CP210x器件)。实际输出电压是不同的,取决于引脚负载。在不同电流负载条件下,VOH和VOL的规格数据可以在产品数据手册中找到。CP210x数据手册以及其它信息可以在Silicon Laboratories网站 www.silabs.com 获得。
Interface Knowledge Base
CP210x支持哪些平台?
CP210x支持如下平台:
Windows
Windows 10 Universal (v10.1.1)。
Windows 7/8/8.1/10 (v6.7.5)。
XP/Server 2003/Vista/7/8/8.1 (v6.7)。
Windows 2K。
OSX (v5)
Linux
3.x.x, 4.x.x系列内核中已经包含CP210x的驱动。也可以从我们官网下载并编译、加载驱动。
2.6.x系列内核开始包含CP210x的驱动。如果未包含请从我们官网下载并编译、加载驱动。
Android 4.2
需要编译内核,详情参见AN809
官网关于驱动的页面为:
http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx
USB-HID串口在 Linux 上怎么驱动?
Linux上自带有HID设备的驱动,我们又封装了SLABHIDDevice、SLABHIDtoUART的库函数方便用户调用。库文件及源代码在AN721SW的压缩包中如下文件夹:
AN721SW\Linux\CP211x_InterfaceLibrary
如何在Linux系统上对CP210x GPIO端口进行读写操作?
问题
如何在Linux系统上读写CP210x的GPIO?
答案
Linux v4.10以后版本自带的CP210x VCP驱动程序cp210x.c中已经包含了对CP210x GPIO端口进行读写操作的相关函数。
另外,Silabs官方网站上的 Linux VCP 驱动程序压缩包中也包含了对 CP210x GPIO进行读写操作的参考例程,Linux VCP 驱动参考例程下载链接地址如下:
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
USB-CDC/USB-HID串口需要驱动吗?
如何让基于DPInst开发的驱动忽略CP210x设备序列号
如何删除被占用的多余COM端口
问题
在Windows的设备管理器中,发现每次接入CP210x设备后,系统自动分配的COM编号比较大,该如何删除被占用的多余COM端口?
答案
除了CP2102型号以外,其它CP210x型号产品的芯片内部自带一个唯一的序列号。而Windows系统是依据所接入的USB设备的VID、PID以及序列号三者组合的不同而分配不同的COM口编号,同款CP210x芯片使用的VID/PID完全相同。从而导致系统在每次检测到新CP210x设备序列号接入后便会自动根据当前已占用的COM口编号递增分配新的COM口编号。后续即使设备已被拔出,所分配的COM端口在该系统上仍然处于被占用的隐藏状态,由此产生了许多被占用的多余的COM端口。下面以Windows 7为例,介绍如何显示并删除隐藏的设备。
1. 用管理员身份运行命令行。开始菜单 > 所有程序 > 附件,然后选择命令提示符,点击右键选择以管理员身份运行,打开命令行窗口。
2. 在命令提示符中设置变量,输入 set devmgr_show_nonpresent_devices=1,并按回车。
3. 接着在提示符中输入devmgmt.msc 启动设备管理器。
4. 在设备管理器中,点击菜单 View > Show hidden devices 以显示隐藏的没有连接到电脑上的设备名称。
5. 在设备管理器窗口左侧展开串口部分,将可以看到所有已被分配的COM口的设备列表。选择需要删除的串口设备,通过右键菜单> 卸载,便可以删除多余的设备。
另外,对于产线上的测试系统,用户并不希望所测试的设备COM口编号随着不同CP210x设备的接入而变化,需要固定使用同一COM口编号方便测试同类产品的不同设备,这时用户可以尝试通过修改注册表相关选项让Windows系统忽略指定的VID/PID设备的序列号。本文末附件提供了忽略CP2101/2/3/4, CP2105 和CP2108设备序列号的注册表文件,用户只需在测试系统上双击运行对应的注册表文件即可完成注册表的修改,忽略相应的CP210x设备的序列号,这样后续每次接入同类产品不同设备时,系统根据相同的VID/PID使用同一COM口编号。注意:用于USB3.0驱动的原因,通过修改注册表忽略系列号的方式对于连接到USB3.0接口的设备不起作用。
在Windows中强制指定CP210x枚举的COM端口编号
问题
对于Windows 7/8/8.1系统中,我该如何强制指定CP210x使用特定的COM编号?
答案
1. 开始菜单>运行框输入“regedit”启动注册表编辑器。
2. 在注册表编辑器左侧窗口中导航到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter\ComDB
该二进制键值是按比特位代表不同的COM端口编号,即第一个字节从最高位到最低位代表COM8...COM1,第二个字节代表COM16...COM9,依此类推,第n个字节代表COM[n*8]...COM[n*8-7]。比特位数值1表示COM端口编号已被占用。通过双击该注册表项修改二进制键值可以指定设备的COM端口编号。
CP210x 5V 耐压