项目简介
本项目以AVR DU微控制器为核心构建了USB CDC到USART的桥接系统。借助该微控制器实现主机与其他外设之间的通信连接,以USART外设为例展示桥接功能。项目除提供能与标准终端应用配合工作的应用程序外,还提供Python脚本,方便用户通过CDC接口与AVR DU进行交互。
项目的主要特性和功能
- 桥接通信:实现USB CDC虚拟串行端口,使外部设备可通过USB与微控制器通信,并借助USART与外设进行数据交互。
- 多方式通信支持:支持标准终端应用程序通信,同时提供Python脚本简化数据传输操作。
- 参数配置灵活:具备初始化、配置和请求处理功能,用户可设置和获取USB通信的关键参数,如波特率、数据位、停止位和奇偶校验等。
- 高效数据管理:采用环形缓冲区管理,确保在USB和USART之间高效桥接数据。
- 全面的USB功能:提供USB事件和传输处理函数,支持USB设备状态管理、特性设置与清除、地址配置、描述符获取以及配置的获取与设置等功能。
安装使用步骤
环境准备
确保已安装以下软件: - PuTTY 0.81 或更新版本。 - Python 3.11.0 或更新版本。
硬件连接
使用 AVR64DU32 Curiosity Nano 开发板,将其两个USB - C端口都连接到主机。用跳线连接开发板上的VBUS针座,为VUSB直接提供3.3V电源。
项目配置
- 使用MPLAB X IDE打开项目。
- 启动MPLAB Code Configurator (MCC),按以下步骤配置:
- 若USB库未在设备资源的库列表中显示,在内容管理器菜单中添加。
- 向项目添加USB设备栈库、USART、AC0、RTC和VREF驱动。
- 依次配置USB通用设置、设备描述符、接口、CDC通信接口、CDC数据接口、USART、设备时钟、USB电压检测、RTC、LED及全局中断。
编译烧录
使用MPLAB X IDE对项目进行编译,并将程序下载到AVR64DU32微控制器。
功能验证
PuTTY验证
- 确定两个虚拟串口的端口号:
- Windows:可通过设备管理器(Device Manager>Ports (COM and LPT))查看,设备显示为USB Serial Device (COM##);也可在命令提示符中使用
reg query HKLM\HARDWARE\DEVICEMAP\SERIALCOMM
命令,或在PowerShell中使用Get-WMIObject Win32_SerialPort | Select-Object Name,DeviceID,Description
命令查看。 - macOS和Linux:在终端中使用
ls /dev/tty.*
命令查看。
- Windows:可通过设备管理器(Device Manager>Ports (COM and LPT))查看,设备显示为USB Serial Device (COM##);也可在命令提示符中使用
- 启动两个PuTTY终端会话,连接类型选择“serial”,输入端口号,速度设置为
115200
,点击“Open”。若USART外设的波特率改变,此处也需相应修改。
Python脚本验证
- 安装
pyserial
包:pip install pyserial
。 - 运行脚本:
python usb_cdc_usart_bridge.py
。若脚本识别端口号出错,或VID、PID改变,可使用-s
和-d
选项手动输入端口号,如python usb_cdc_virtual_serial_port.py -s COM10 -d COM5
。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】