CH347介绍
CH347是一款高速USB总线转接芯片,通过USB总线提供异步串口、I2C同步串行接口、SPI同步串行接口和JTAG接口等。芯片资源如下:
- 2个高速串口,最高波特率达9Mbps
- 1个2线I2C接口
- 1个4线SPI接口,最高速率60MHz
- 1个JTAG接口,最高速率60MHz
- 1个SWD接口
芯片封装分为T/F两种,CH347F可多功能同时使用,CH347T则需要进行相应模式切换。
openFPGALoader简介
类似于成熟的openOCD项目,openFPGALoader主要专注于对FPGA的固件下载,支持Xilinx, Altera/Intel, Lattice, Gowin等常见FPGA。
项目链接:https://github.com/ZhiyuanYuanNJ/openFPGALoader/tree/master
openFPGALoader安装
Windows、Linux、mac均可参照官方链接,按步骤执行:
安装
openFPGALoader使用
CH347F对XILINX SPARTAN-6系列XC6SLX9做下载
Linux系统:
- 使用lsusb查看硬件是否连接:
home:~/develop_pro/openFPGALoader_github/openFPGALoader/build$ lsusb
Bus 003 Device 007: ID 1a86:55de QinHeng Electronics UART+SPI+I2C+JTAG
- 使用detect指令查看是否识别此FPGA:
home:~/develop_pro/openFPGALoader_github/openFPGALoader/build$ sudo ./openFPGALoader -c ch347_jtag --pid 0x55de --detect
empty
Cable PID overridden
JTAG TCK frequency set to 7.500 MHz
index 0:
idcode 0x4001093
manufacturer xilinx
family spartan6
model xc6slx9
irlength 6
注:默认PID为CH347T模式3:0x55DD,此处需指定PID。
- 下载固件:
home:~/develop_pro/openFPGALoader_github/openFPGALoader/build$ sudo ./openFPGALoader -c ch347_jtag --pid 0x55de --freq 30000000 -B spiOverJtag_xc6slx9csg324.bit.gz -f led_test.bit
empty
write to flash
Cable PID overridden
JTAG TCK frequency set to 30.000 MHz
Open file DONE
Parse file DONE
use: spiOverJtag_xc6slx9csg324.bit.gz
load program
Load SRAM: [==================================================] 100.00%
Done
Detected: ST M25P16 32 sectors size: 16Mb
00000000 00000000 00000000 00
Erasing: [==================================================] 100.00%
Done
Writing: [==================================================] 100.00%
Done
重写上电,检查固件下载情况。
注:此处spiOverJtag_xc6slx9csg324.bit.gz文件为该FPGA的JTAG/SPI的桥接文件,位于源码中spiOverJtag目录下。
Windows系统:
Windows系统指令与Linux类似,需安装MSYS2编译,需提前安装CH347的Windows JTAG驱动
编译方法:
mkdir build;cd build;cmake ..;cmake --build .
...
...
[49/49] Linking CXX executable openFPGALoader.exe
detect FPGA:
lzy@DESKTOP-NM6R9PE MINGW64 /c/Users/lzy/Desktop/openFPGALoader/build
$ openFPGALoader.exe -c ch347_jtag --detect
CH347 Open Success.
JTAG TCK frequency set to 7.500 MHz
index 0:
idcode 0x4001093
manufacturer xilinx
family spartan6
model xc6slx9
irlength 6
Close the CH347.
下载:
lzy@DESKTOP-NM6R9PE MINGW64 /c/Users/lzy/Desktop/openFPGALoader/build
$ ./openFPGALoader -c ch347_jtag --freq 30000000 -B ../spiOverJtag/spiOverJtag_xc6slx9csg324.bit.gz -f led_test.bit
empty
write to flash
CH347 Open Success.
JTAG TCK frequency set to 30.000 MHz
Open file DONE
Parse file DONE
use: C:/Users/lzy/Desktop/openFPGALoader/spiOverJtag/spiOverJtag_xc6slx9csg324.bit.gz
load program
Load SRAM: [==================================================] 100.00%
Done
Shift IR b5
ir: 1 isc_done 1 isc_ena 0 init 1 done 1
Detected: ST M25P16 32 sectors size: 16Mb
00000000 00000000 00000000 00
Erasing: [==================================================] 100.00%
Done
Writing: [==================================================] 100.00%
Done
Close the CH347.
关于openFPGALoader的更多功能信息可查阅官方文档。