USB TO UART/I2C/SPI/JTAG
| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
说明
产品参数
参数名称 | 参数 | |
产品类型 | 工业级USB转UART/I2C/SPI/JTAG转换器 | |
供电电压 | USB口,5V | |
工作电流 | 55mA~65mA | |
工作电平 | 3.3V/5V(通过开关切换) | |
工作温度 | -40℃~85℃ | |
操作系统 | Linux、Windows 11 / 10 / 8.1 / 8 / 7 | |
USB 接口 | 接口形式 | USB-B 型接口 |
接口保护 | 自恢复保险丝、ESD 静电保护 | |
UART 接口 | 支持通道 | 2路(红色双开关须设置成 M0 模式) |
接口形式 | 6PIN 防反接接口 | |
通信速率 | 1200bps ~ 9Mbps(M0 模式) | |
1200bps ~ 7.5Mbps(M1/M2/M3 模式) | ||
硬件流控 | CTS和RTS | |
I2C 接口 | 支持通道 | 1路(红色双开关须设置成 M1/M2 模式) |
接口形式 | 12PIN 防反接接口 (前4个引脚为I2C) | |
通信速率 | 20KHz~750KHz(低速/标准/快速/高速模式) | |
SPI 接口 | 支持通道 | 1路(红色双开关须设置成 M1/M2 模式) |
接口形式 | 12PIN 防反接接口 (后8个引脚为SPI) | |
通信速率 | 468.75KHz~30MHz(可选) | |
JTAG 接口 | 支持通道 | 1路(红色双开关须设置成 M3 模式) |
接口形式 | 12PIN 防反接接口 (后8个引脚为JTAG) |
功能说明
- USB TO UART/I2C/SPI/JTAG 是一款高速 USB 总线转接设备,支持USB 转 2路UART,USB 转 1路UART+1路I2C+1路SPI,USB 转 1路UART+1路JTAG
- 处于模式0时,产品提供了 2 个高速串口
- 处于模式1或模式2时,产品提供了1个高速串口、 1 个 2 线 I2C 接口(SCL 线、SDA 线)和 1 个 4 线 SPI 接口(CS 线、SCK线、SDI(MISO) 线、SDO(MOSI) 线)
- 处于模式3时,产品提供了 1 个 JTAG 接口,支持 4 线或 5 线接口(TMS 线、TCK 线、TDI线、TDO 线和 TRST 线)
- 处于模式2时为 HID 免驱模式(设备管理器中为人机接口设备),故在设备管理器中的端口看不到新增设备
- I2C 与 SPI 都是作为 Host/Master 主机模式不支持从机模式。
模式说明
- 请在调整完模式后再上电
接口说明
Windows下使用
环境搭建
驱动安装
安装提供驱动CH341PAR与CH343SER(驱动程序),安装后可通过设备管理器查看串口对应端口
- 另一种查看方式:进入设备管理器->点击上方”查看“->”按连接列出设备“-> 选择”基于ACPI x64 的电脑“->”PCI Express 根复合体“->”Intel(R) USB 3.20可扩展主机控制器- 1.20 (Microsoft)“(不同计算机存在不一样的可能)->”USB根集线器(USB 3.0)“->在多个”通用USB集线器“中的”USB Composite Device“可找到CH347相关设备
- 说明:除模式0外,其余模式存在一个串口端口
Python IDLE 环境搭建
- 安装Python IDLE(安装网址:Python IDLE),请注意安装时选中添加到 PATH
- 点击“WIN + R”,输入 cmd 回车,在窗口输入pip install pyserial
pip install pyserial pip install numpy pip install pillow
- 请确保已通过上方指令成功安装 pyserial 库、numpy 库、pillow 库
UART接口使用演示
SSCOM下,串口自收发通信
以下为演示使用产品的两个串口进行自收发,请将模式切换为模式0
硬件连接
USB TO UART/I2C/SPI/JTAG(UART0) USB TO UART/I2C/SPI/JTAG(UART1) UART0.TXD UART1.RXD UART0.RXD UART1.TXD
软件操作
- 开启两个SSCOM程序(SSCOM),分别选中产品的两个端口号
- 设置为相同波特率,输入要发送的字符,选择“加时间戳和分包显示”,设定“50ms/次,定时发送”
- 点击“打开串口”即可接收到数据,现象如下
Python IDLE下,串口自收发通信
以下为演示使用产品的两个串口进行自收发(示例程序)
硬件连接
USB TO UART/I2C/SPI/JTAG(UART0) USB TO UART/I2C/SPI/JTAG(UART1) UART0.TXD UART1.RXD UART0.RXD UART1.TXD
软件操作
- 开启Python IDLE,点击上方”File -> Open...“,进入示例程序中“../USB-TO-UART-I2C-SPI-JTAG-Demo/Windows/Code”
- 进入UART文件夹,选择打开 UART.py 文件(请注意查看是否为对应端口)
- 点击上方“Run”->“Run Module”或直接点击 F5 运行程序
- 效果如下
I2C接口使用演示
若想在使用 I2C 或 SPI 时使用串口调试助手进行 UART 的收发,请将模式切换成 模式1(模式2 为HID免驱模式,不会显示在端口中)
Python IDLE下,I2C获取测距模块数据
以下为演示使用产品的 I2C 功能获取I2C模式下的TF-Luna的数据(TF-Luna相关资料、引脚说明) 的数据(示例程序)
硬件连接
请将模式切换开关拨至模式1或模式2,并在接好连线后再连接电脑
Peripheral(TF-Luna) USB TO UART/I2C/SPI/JTAG 1脚 VCC 2脚 I2C.SDA 3脚 I2C.SCL 4脚 GND 5脚 GND(最先连接,配置TF-Luna为I2C模式(TF-Luna所需)) 6脚 悬空
软件操作
- 开启Python IDLE,点击上方”File -> Open...“,进入示例程序中“../USB-TO-UART-I2C-SPI-JTAG-Demo/Windows/Code”(示例程序)
- 进入I2C文件夹,选择打开 I2C.py 文件
- ①如果同时使用多个 USB TO UART/I2C/SPI/JTAG 设备,请在①处进行设备选择(类似设备序号,0、1、2...等等)
- ②根据实际需要操作的I2C设备地址进行修改
- 点击上方“Run”->“Run Module”或直接点击 F5 运行程序
- 效果如下
使用上位机,I2C调试测距模块
以下为演示使用产品的 I2C 功能 打开与关闭 I2C模式下的TF-Luna的数据输出(TF-Luna相关资料)
下载 I2C调试软件( USB TO UART/I2C/SPI/JTAG 调试软件),无需安装,直接打开即可使用。
硬件连接
请将模式切换开关拨至模式1或模式2,并在接好连线后再连接电脑
Peripheral(TF-Luna) USB TO UART/I2C/SPI/JTAG 1脚 VCC 2脚 I2C.SDA 3脚 I2C.SCL 4脚 GND 5脚 GND(最先连接,配置TF-Luna为I2C模式(TF-Luna所需)) 6脚 悬空
软件操作
- 开启 USB TO UART_I2C_SPI_JTAG Demo软件进入I2C调试界面,开启设备
- 点击初始化SPI(因为该软件与SPI共用界面),不用管初始化按键前的那些参数
- 在I2C输入框中输入需要发送的数据(输入为十六进制数据),点击 写/读
20 5A 05 07 00 66
1.其中 0x20 为TF-Luna的I2C写入地址
2.0x5A 0x05 0x07 0x00 0x66 为关闭TF-Luna数据输出的指令(TF-Luna的红灯将会熄灭)
- 输入 20 5A 05 07 01 67 点击 写/读,将打开TF-Luna的数据输出(TF-Luna的红灯重新被点亮)
20 5A 05 07 01 67
- 现象如下(拍摄效果对比人眼观察更显眼,使用人眼观察请转动TF-Luna,防止角度原因未观察到)
SPI接口使用演示
若想在使用 I2C 或 SPI 时使用串口调试助手进行 UART 的收发,请将模式切换成 模式1(模式2 为HID免驱模式,不会显示在端口中)
Python IDLE下,SPI驱动OLED屏
以下为演示使用产品的 SPI 功能点亮SPI模式下的OLED(OLED相关资料) (示例程序)
环境配置说明
当前示例已搭建好环境,无需进行下方操作
- DLL文件要放到demo程序所处目录下,示例文件中存放有两个DLL文件(分别对应64位系统与32位系统),请根据系统进行调整
- 或者可修改程序中的文件路径为DLL文件存放位置
硬件连接
请将模式切换开关拨至模式1或模式2,并在接好连线后再连接电脑
Peripheral USB TO UART/I2C/SPI/JTAG RES UART1.RTS(用于控制OLED进行复位(OLED所需)) D/C UART1.CTS(用于指示发送的为命令还是数据(OLED所需)) CS SPI.CS0 CLK SPI.SCK DIN SPI.SDO GND SPI.GND VCC SPI.VCC
软件操作
- 开启Python IDLE,点击上方”File -> Open...“,进入示例程序中“../USB-TO-UART-I2C-SPI-JTAG-Demo/Windows/Code”(示例程序)
- 进入SPI文件夹,选择打开 example.py 文件
- ①如果同时使用多个 USB TO UART/I2C/SPI/JTAG 设备,请在CH347T_Config.py文件中的①处进行设备选择(类似设备序号,0、1、2...等等)
- 点击上方“Run”->“Run Module”或直接点击 F5 运行程序
- 效果如下
使用上位机,SPI调试OLED屏
以下为演示使用产品的 SPI 功能点亮SPI模式下的OLED(OLED相关资料) 下载 SPI调试软件( USB TO UART/I2C/SPI/JTAG 调试软件),无需安装,直接打开即可使用。
硬件连接
请将模式切换开关拨至模式1或模式2,并在接好连线后再连接电脑
Peripheral USB TO UART/I2C/SPI/JTAG RES I2C.VCC(使OLED处于工作(OLED所需)) D/C URAT0.GND(用于指示发送的为命令还是数据(OLED所需)) CS SPI.CS0 CLK SPI.SCK DIN SPI.SDO GND SPI.GND VCC SPI.VCC
软件操作
- 开启 USB TO UART_I2C_SPI_JTAG Demo软件进入SPI调试界面,开启设备
- 根据使用环境初始化SPI参数,选择完参数点击初始化SPI(多点击几下初始化SPI,防止初始化失败)
- 在SPI输入框中输入需要发送的数据,根据所需操作选择SPI读、SPI写或SPI读写
1.下方数据为OLED初始化指令(使用鼠标右键进行数据粘贴,不能使用键盘快捷键)
AE D5 80 A8 3F D3 00 40 8D 14 20 00 A1 C8 DA 12 81 CF D9 F1 DB 40 A4 A6 AF 21 00 7F 22 00 07
- 初始化效果如下(本来屏幕是不亮的)
- 将OLED的D/C脚连接到VCC(接到GND为发送命令,接到VCC为发送数据)
- 发送清屏数据(使用鼠标右键进行数据粘贴,不能使用键盘快捷键),点击一次SPI写将清除一部分
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- 发送点亮数据(使用鼠标右键进行数据粘贴,不能使用键盘快捷键),点击一次SPI写将点亮一部分
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
JTAG接口使用演示
OpenOCD下,STM32单片机调试和烧录
以下为演示使用产品的JTAG接口向 STM32F429IGT6开发板 中烧录程序
请注意:保证设备处于3V3状态而非5V(要与需要烧录的设备保持同一电位)
硬件连接
外部JTAG接口 USB TO UART/I2C/SPI/JTAG TDI TDI TDO TDO TMS TMS TCLK TCK TRST(不接) TRST(不接) GND GND
前置操作
- 开启Telnet功能
- 点击win+R键,输入"cmd"进入命令窗口
- 进入资料包路径中的“USB-TO-UART-I2C-SPI-JTAG-Demo\Windows\Software\OpenOCD-CH347\bin”目录下(演示为存放于桌面的情况)
cd Desktop\USB-TO-UART-I2C-SPI-JTAG-Demo\Windows\Software\OpenOCD-CH347\bin
- 连接CH347与STM32F4(openocd.exe -f ch347.cfg -f + 参数 :此处参数为所连接芯片的配置文件,可将文件复制到第2点的bin文件夹下,否则需要加上配置文件的路径)
- 说明:常见芯片的配置文件存放于“USB-TO-UART-I2C-SPI-JTAG-Demo\Windows\Software\OpenOCD-CH347\scripts\target”中,可将其复制到当前文件夹
openocd.exe -f ch347.cfg -f stm32f4x.cfg
- 点击“win+R”开启新的命令窗口
- telnet.exe Localhost 4444(根据上方返回结果)
telnet.exe Localhost 4444
- 出现以下文字,则为连接成功
- 使用openocd向STM32F4中烧入程序
程序下载
- 拷贝hex文件到“USB-TO-UART-I2C-SPI-JTAG-Demo\Windows\Software\OpenOCD-CH347\bin”目录下
说明:示例文件中,bin文件下存放有Test文件夹,文件夹下有两个文件分别对应 Open429I-C (套餐A) 下按键对灯源的顺时针与逆时针控制
- 在Telnet窗口中输入“halt”回车执行,暂停正在运行的程序
halt
- 执行“program STM32F429_439xx.hex”进行程序下载(program + 参数 :此处参数为需要下载的hex文件,可以将其复制到前置操作中提到的bin文件夹中或者您需要将参数改为 路径+需要下载的hex文件或者elf文件)
program STM32F429_439xx.hex
程序调试
- 在程序下载中已经有用到调试相关命令“halt”,暂停正在运行的程序
- 使用“flash probe 0”进行扫描Flash
- 执行各种调试指令进行功能调试(例:reset 重启、halt 暂停、resume 恢复等)
移植说明
移植参考
环境配置说明
- DLL文件要放到demo程序所处目录下,示例文件中存放有两个DLL文件(分别对应64位系统与32位系统),请根据系统进行调整
- 或者可修改程序中的文件路径为DLL文件存放位置
示例参考
说明: 程序基于 Rapberry Pi 驱动 OLED 的程序进行修改
参考链接:OLED相关资料, 参考的示例为”../OLED_Module_Code /RaspberryPi/python“下的文件(参考的示例程序))
- 文件”../USB-TO-UART-I2C-SPI-JTAG-Demo/Windows/Code“中的I2C与SPI两个应用示例
- 应用1:使用本产品的I2C接口点亮OLED(使用设备:0.96inch OLED (A))
- 应用2:使用本产品的SPI接口点亮OLED(使用设备:0.96inch OLED (A))
文件说明
- CH347T_Config.py对应参考示例中”../OLED_Module_Code/RaspberryPi/python/lib/waveshare_OLED/config.py“,定义CH347T的设备初始化等操作
- OLED_Library_Function.py对应参考示例中”../OLED_Module_Code/RaspberryPi/python/lib/waveshare_OLED/OLED_0in96.py“,定义OLED的设备初始化等操作
- example.py对应参考示例中”../OLED_Module_Code/RaspberryPi/python/lib/waveshare_OLED/OLED_0in96_test.py“,为程序主流程
- pic文件夹中存放图片与字体文件
Linux(Raspberry Pi)下使用
环境搭建
驱动安装
下载文件包到树莓派,并解压文件
wget https://www.waveshare.net/w/upload/2/2b/USB-TO-UART-I2C-SPI-JTAG-Demo.zip unzip USB-TO-UART-I2C-SPI-JTAG-Demo.zip -d ./USB-TO-UART-I2C-SPI-JTAG-Demo
cd USB-TO-UART-I2C-SPI-JTAG-Demo/Raspberry/Driver/driver/
在树莓派上安装执行环境
sudo apt-get install raspberrypi-kernel-headers
在Ubuntu 上需要使用其他指令安装
sudo apt-get update sudo apt-get install build-essential sudo apt install python3-pip
make sudo insmod ch34x_pis.ko
使驱动程序永久工作
sudo make install
- 安装 serial 库(失败的话请执行 sudo pip3 install pyserial )
pip install pyserial
- 将模式切换至模式1再连接树莓派,查询设备可看到设备"ch34x_pis*"
ls /dev/
- 各模式识别到的设备
模式 设备号 模式0 tty* and tty*((常为ttyACM*) 模式1 ch34x_pis* and tty* 模式2 hidraw* 模式3 ch34x_pis* and tty*
前置操作
- 查看系统信息
uname -a
如果返回值为 armv61 或 armv71 ,则代表是32位ARM架构(为树莓派)。如果返回值为aarch64 ,则代表是64位ARM架构(为树莓派)。如果返回值是x86_64,则不是树莓派,选择x64文件夹
当前使用的是树莓派64位的库,如果你的查询结果为 aarch64 ,则无需进行下方的操作
- 进入下载的文件,“../USB-TO-UART-I2C-SPI-JTAG-Demo/Raspberry/Code/lib/XXX”(XXX:根据上方查询结果选择文件夹)
cd cd USB-TO-UART-I2C-SPI-JTAG-Demo/Raspberry/Lib/aarch64
- 将so为后缀的文件拷贝至程序文件夹中(文件夹中原本存在一个.so文件为aarch64上使用的,用你当前系统适配的.so文件将其替换)
例:将其拷贝到I2C示例中
sudo cp libch347.so ../../Code/I2C/
- 或拷贝到SPI示例中
sudo cp libch347.so ../../Code/SPI/
- 使用UART时与使用普通UART设备一致(Raspberry 识别到的设备号一般为 ttyACM*,可通过插拔设备查询新增设备)
1.先不连接 USB TO UART/I2C/SPI/JTAG ,使用指令查询当前设备
ls /dev/tty*
2.连接 树莓派 与 USB TO UART/I2C/SPI/JTAG,再次查询 “ls /dev/tty*”,新增设备即为本产品的设备号
ls /dev/tty*
UART接口使用演示
以下为演示使用产品的两个串口进行自收发,请将模式切换至模式0(为两个 tty* 设备)
Python 环境下,串口自收发通信
硬件连接
USB TO UART/I2C/SPI/JTAG(UART0) USB TO UART/I2C/SPI/JTAG(UART1) UART0.TXD UART1.RXD UART0.RXD UART1.TXD
软件操作
- 查询当前识别到的设备号
1.先不连接 USB TO UART/I2C/SPI/JTAG ,使用指令查询当前设备
ls /dev/tty*
2.连接 树莓派 与 USB TO UART/I2C/SPI/JTAG,再次查询 “ls /dev/tty*”,新增设备即为本产品的设备号
ls /dev/tty*
- 进入UART示例目录,编辑程序 UART.py
cd USB-TO-UART-I2C-SPI-JTAG-Demo/Raspberry/Code/UART/ vi UART.py
- 光标移动到位置①处,修改为识别到的设备号(移动光标使用'上下左右键' -> 点击'i'然后进行修改 -> 修改完点击'Esc' -> 输入’:wq‘保存退出)
- 执行程序
sudo python3 UART.py
I2C接口使用演示
若想在使用 I2C 或 SPI 时使用 UART 进行数据收发,请将模式切换成 模式1或 模式2(模式1为ch34x_pis* 与 tty* 设备,模式2为 hidraw* 设备)
Python 环境下,I2C获取测距模块数据
硬件连接
请将模式切换开关拨至模式1或模式2,并在接好连线后再连接电脑
Peripheral(TF-Luna) USB TO UART/I2C/SPI/JTAG 1脚 VCC 2脚 I2C.SDA 3脚 I2C.SCL 4脚 GND 5脚 GND(最先连接,配置TF-Luna为I2C模式(TF-Luna所需)) 6脚 悬空
软件操作
- 查询当前识别到的设备号(连接 树莓派 与 USB TO UART/I2C/SPI/JTAG,查询设备)
模式1 查询'ch34x_pis*'与'tty*',可在连接本设备与未连接本设备各查一次('ch34x_pis*'用于SPI/I2C,'tty*'用于UART)
ls /dev/ch34x_pis*
模式2 查询'hidraw*',可在连接本设备与未连接本设备各查一次
ls /dev/hidraw*
- 进入I2C示例目录,编辑程序 I2C.py
cd USB-TO-UART-I2C-SPI-JTAG-Demo/Raspberry/Code/I2C/ vi I2C.py
- 光标移动到位置①处,修改为识别到的设备号(移动光标使用'上下左右键' -> 点击'i'然后进行修改 -> 修改完点击'Esc' -> 输入’:wq‘保存退出)
- 执行程序
sudo python3 I2C.py
SPI接口使用演示
若想在使用 I2C 或 SPI 时使用 UART 进行数据收发,请将模式切换成 模式1或 模式2
Python 环境下,SPI驱动OLED屏
硬件连接
请将模式切换开关拨至模式1或模式2,并在接好连线后再连接电脑
Peripheral USB TO UART/I2C/SPI/JTAG RES UART1.RTS(用于控制OLED进行复位(OLED所需)) D/C UART1.CTS(用于指示发送的为命令还是数据(OLED所需)) CS SPI.CS0 CLK SPI.SCK DIN SPI.SDO GND SPI.GND VCC SPI.VCC
软件操作
- 查询当前识别到的设备号(连接 树莓派 与 USB TO UART/I2C/SPI/JTAG,查询设备)
模式1 查询'ch34x_pis*'与'tty*',可在连接本设备与未连接本设备各查一次('ch34x_pis*'用于SPI/I2C,'tty*'用于UART)
ls /dev/ch34x_pis*
模式2 查询'hidraw*',可在连接本设备与未连接本设备各查一次
ls /dev/hidraw*
- 进入SPI示例目录,编辑程序 CH347T_Config.py
cd USB-TO-UART-I2C-SPI-JTAG-Demo/Raspberry/Code/SPI/ vi CH347T_Config.py
- 光标移动到位置①处,修改为识别到的设备号(移动光标使用'上下左右键' -> 点击'i'然后进行修改 -> 修改完点击'Esc' -> 输入’:wq‘保存退出)
- 执行程序
sudo python3 example.py
- 效果如下
FAQ
常见问题
这种情况可能是切换模式后没有进行断电操作
1.首先断开设备与电脑的连接
2.拨动模式切换开关,调整到需要的模式
3.重新连接设备与电脑
{{{5}}}
这种情况可能是没有将TF-Luna(外接的设备)配置到I2C模式
- 1.断开TF-Luna与设备的所有连线
- 2.首先连接TF-Luna的第五根线,再依次连接其他线
{{{5}}}
- 点击 WIN + R ,执行以下 PIL 安装指令
pip install pillow
- 若不能正常下载则使用其他源进行下载执行
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow
{{{5}}}
- 存在1:可能是与本产品通信的设备与设备当前通信电平不匹配导致
- 1.请检查与本产品通信的设备的允许电平是3.3V还是5V
- 2.拨动电平切换开关,将通信电平调至与外接设备一致
- 存在2:可能是与本产品通信的设备功耗较高或使用本产品的VCC口供电的设备较多导致
- 1.请将连接至本产品的设备使用外部设备供电,并将供电设备的GND与本产品的GND连接
- 2.请注意,各个设备的GND需要连接到一起
{{{5}}}
请检查通信设备是否支持5V通信
{{{5}}}