您尚未登录。

楼主 # 2022-07-15 11:38:57

LYF0630
会员
注册时间: 2021-12-22
已发帖子: 4
积分: 54

基于CH32V307的高速USB转JTAG下载器

沁恒CH32V307这个单片机相信很多人都见过了,14块钱就能拥有内置PHY的USB HS,性价比拉满。前一段时间沁恒开源了一个基于它的高速USB转JTAG下载器项目,并适配了openocd。根据官方文档,该项目使用了硬件SPI优化JTAG信号输出,JTAG时钟可以达到36MHz,也就是约3.3M/s的下载速度,在这个价位下基本是无敌的存在,于是前几天就尝试了一下,过程简略记录如下。

首先在Github上下载项目openwch/usb-jtag-spi,将项目里的固件写入到CH32V307-EVK中(CH32V307/V305芯片均可),安装对应的驱动(项目中自带的驱动打不上的话可以去官网下载新版),此时设备管理器中将出现一个USB To Jtag/SPI的设备,代表驱动安装成功。

下一步根据项目中文档的引脚说明,将单片机的指定引脚连接到FPGA的JTAG引脚上。我手上目前只有xc7k325,因此没有测试其他FPGA或者单片机。随后进入到项目中自带的openocd目录下,在openocd.exe所在的路径下使用终端执行下列命令。

PS C:\Users\12484\Desktop\usb-jtag-spi\bin\WIN APP\openocd\bin> 

.\openocd.exe -f .\usb20jtag.cfg -f ..\scripts\cpld\xilinx-xc7.cfg -c "init; xc7_program xc7.tap; pld load 0 led.bit" -c exit

Open On-Chip Debugger 0.11.0+dev-00631-g6c9dd1c6b-dirty (2022-04-28-20:19)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
xc7_program
Info : This adapter doesn't support configurable speed
Info : JTAG tap: xc7.tap tap/device found: 0x43651093 (mfg: 0x049 (Xilinx), part: 0x3651, ver: 0x4)
Warn : gdb services need one or more targets defined
loaded file led.bit to pld device 0 in 0s 104245us

Info : Close the USB20JTAG.

实测结果是完全可以达到36MHz的速度,使用一个更大的比特流文件测试也得到了同样的结果。对比之下,我手上使用ft232h芯片的digilent-hs3只能跑到约24MHz的速度,实力不可谓不强悍。不过hardware manager并不会认这个下载器,因此无法在vivado中使用,目前只能用来下载比特流。希望手上有单片机的朋友也能测试一下调试和下载单片机的情况。

当然,这个项目目前还有一些缺点,比如名字(USB20JTAG)就取得很不好,一点辨识度都没有。此外,由于是使用SPI优化的原因,JTAG频率貌似是写死的36MHz无法调整,如果从机反应慢或者接线情况不好可能就会出现问题,希望沁恒能够尽快改善并推送到openocd上游,加快普及基于USB2.0 HS的下载调试器。

离线

楼主 #3 2022-07-15 21:42:10

LYF0630
会员
注册时间: 2021-12-22
已发帖子: 4
积分: 54

Re: 基于CH32V307的高速USB转JTAG下载器

echo 说:

其实没啥用处,调试器很多时候都得降频使用。FS的速度也足够应对绝大多数场景。

咋可能没用,大FPGA的比特流动辄几十M,下载器当然是高速才好用。单片机方面H7这类高性能单片机固件达到几M也是很正常的事情

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn