页次: 1
沁恒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的下载调试器。
页次: 1