# 无线Xilinx FPGA调试器ESP32-XVC **Repository Path**: xiaowuzxc/ESP32-XVC ## Basic Information - **Project Name**: 无线Xilinx FPGA调试器ESP32-XVC - **Description**: ESP32无线调试器,成本低廉,能无线调试Xilinx FPGA。受到Vivado的直接支持,具有智能配网,显示IP等功能。基于Arduino开发,可移植性强,支持ESP32任意型号。 - **Primary Language**: C - **License**: CC-BY-4.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 24 - **Forks**: 15 - **Created**: 2022-03-30 - **Last Updated**: 2025-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 无线FPGA调试器ESP32-XVC ## 已板级验证 [B站演示视频](https://www.bilibili.com/video/BV1Sb4mekES2/?share_source=copy_web&vd_source=5e39f665f4088eddcb4fedb3bcc0645e) [在立创开源硬件设计](https://oshwhub.com/xiaowuzxc/14f2b16d900e4e69b931aa1f05779b25) ### 介绍 ESP32方案的无线FPGA调试器,超低成本,可以使用Vivado无线调试~~Xilinx~~AMD FPGA。相比原工程,提高了可移植性,增加自动配网功能,增加oled显示连接状态、IP地址。 ![框图](/结构框图.png) ### 作者们 主要作者derekmulcahy:[Xilinx Virtual Cable Server for Raspberry Pi](https://github.com/derekmulcahy/xvcpi) ciniml向ESP32移植:[Xilinx Virtual Cable Server for ESP32](https://github.com/ciniml/xvc-esp32) Kholia进行了优化:[kholia/xvc-esp32](https://github.com/kholia/xvc-esp32) 本工程fork自Kholia的版本,进行了以下改动: - 提高了软件的可移植性,兼容所有ESP32芯片 - 优化JTAG时序,大幅提高JTAG交互速度 - 加入智能配网,连接WIFI无需修改代码 - 支持Vref JTAG电平转换,兼容0.9-3.6V IO - 加入oled显示屏,显示连接状态、IP地址,连接Vivado更方便 ### 如何使用 #### 硬件平台 Demo设计基于ESP32-C3,见立创工程: https://oshwhub.com/xiaowuzxc/14f2b16d900e4e69b931aa1f05779b25 `hardware`目录下也有原理图、PCB ![板子](/hardware/board.jpg) #### 连接WIFI 本工程支持乐鑫的智能配网功能\(SmartConfig\),无需在程序中固化WIFI名称和密码,通过手机即可在线配网。 ESP32上电后,默认尝试连接上一次的WIFI,连接状态会在oled屏显示。多次尝试连接失败后,进入智能配网状态: - 掏出你的手机,进入乐鑫官网-支持-下载-APP,下载并安装`ESP TOUCH` - 保持WIFI开启,连接你希望ESP32连接的WIFI。 - 打开`ESP TOUCH`,选择第一个,输入WIFI密码,点击确认。 - 稍等片刻,配网完成后oled屏幕会显示连接信息。 #### 与Vivado连接 需要将ESP32对应引脚与FPGA的JTAG接口连接,保证ESP32和电脑连接在同一个路由器。 - 打开`Vivado`->`Open Hardware Manager` - 点击`Open target`->`Open new target`->`Next`->选择`Local server`再`Next`->点击`Add Xilinx Virtual Cable`->输入屏幕显示的IP地址和端口号。 - 如果`Hardware`窗口中已存在`localhost()`,则`localhost()`->`右键`->`Add Xilinx Virtual Cable(XVC)` - 如果看到调试器Hardware Target与FPGA器件Hardware Devices,表示连接成功,开始愉快的无线烧录吧! ### 编译源码 本工程基于Arduino开发环境,适用于任意型号的ESP32,如:ESP32 ESP32-S2 ESP32-C3,而ESP32-S3目前还未受到arduino的支持。 - 首先,根据系统版本,安装Arduino:[Arduino官网](https://www.arduino.cc/) - 打开`Arduino`->`文件`->`首选项`->`附加开发板管理网站`,添加: - `https://espressif.github.io/arduino-esp32/package_esp32_index.json` - 打开`Arduino`->`工具`->`开发板`->`开发板管理器`,搜索并安装`esp32` - 打开`Arduino`->`项目`->`导入库`->`管理库`,搜索关键词`esp32 ssd1306`,并安装`ESP8288 and ESP32 OLED driver for SSD1306 displays` - 在`工具`中,根据开发板的芯片型号和硬件设计,选择合适的选项。 - 点击`上传`,编译并烧录。 ### 移植说明 移植到其他ESP32硬件平台,仅需修改以下注释包住的内容。 `/*------引脚分配,可修改-------*/` 其中包括oled接口,led灯,jtag引脚配置 ### 更多功能 实现以下功能,就需要换成`ESP32` `ESP32-S3`,否则IO和外设数量不够用。 1. 提供有线连接方式 不仅可以用WIFI,还能插网线。 2. 优化传输速度 目前JTAG采用软件控制IO模拟时序的方式实现,速度大概只有500kHz,可以考虑使用SPI模拟JTAG时序。但是想要完美模拟的话需要占用两个SPI外设,`ESP32-C`系列的外设不够用。