littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于AVR DU微控制器的USB CDC到USART桥接系统

项目简介

本项目以AVR DU微控制器为核心构建了USB CDC到USART的桥接系统。借助该微控制器实现主机与其他外设之间的通信连接,以USART外设为例展示桥接功能。项目除提供能与标准终端应用配合工作的应用程序外,还提供Python脚本,方便用户通过CDC接口与AVR DU进行交互。

项目的主要特性和功能

  1. 桥接通信:实现USB CDC虚拟串行端口,使外部设备可通过USB与微控制器通信,并借助USART与外设进行数据交互。
  2. 多方式通信支持:支持标准终端应用程序通信,同时提供Python脚本简化数据传输操作。
  3. 参数配置灵活:具备初始化、配置和请求处理功能,用户可设置和获取USB通信的关键参数,如波特率、数据位、停止位和奇偶校验等。
  4. 高效数据管理:采用环形缓冲区管理,确保在USB和USART之间高效桥接数据。
  5. 全面的USB功能:提供USB事件和传输处理函数,支持USB设备状态管理、特性设置与清除、地址配置、描述符获取以及配置的获取与设置等功能。

安装使用步骤

环境准备

确保已安装以下软件: - PuTTY 0.81 或更新版本。 - Python 3.11.0 或更新版本。

硬件连接

使用 AVR64DU32 Curiosity Nano 开发板,将其两个USB - C端口都连接到主机。用跳线连接开发板上的VBUS针座,为VUSB直接提供3.3V电源。

项目配置

  1. 使用MPLAB X IDE打开项目。
  2. 启动MPLAB Code Configurator (MCC),按以下步骤配置:
    • 若USB库未在设备资源的库列表中显示,在内容管理器菜单中添加。
    • 向项目添加USB设备栈库、USART、AC0、RTC和VREF驱动。
    • 依次配置USB通用设置、设备描述符、接口、CDC通信接口、CDC数据接口、USART、设备时钟、USB电压检测、RTC、LED及全局中断。

编译烧录

使用MPLAB X IDE对项目进行编译,并将程序下载到AVR64DU32微控制器。

功能验证

PuTTY验证

  1. 确定两个虚拟串口的端口号:
    • 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.* 命令查看。
  2. 启动两个PuTTY终端会话,连接类型选择“serial”,输入端口号,速度设置为 115200,点击“Open”。若USART外设的波特率改变,此处也需相应修改。

Python脚本验证

  1. 安装 pyserial 包:pip install pyserial
  2. 运行脚本: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】