当前位置: 首页 > news >正文

CH347使用笔记:CH347作为FPGA下载器的几种方式

CH347简介

CH347是一款高速USB总线转接芯片,通过USB总线提供异步串口、I2C同步串行接口、SPI同步串行接口和JTAG接口等。JTAG接口最高支持60Mhz。
详细介绍:

CH347-高速USB转串口、JTAG/SWD、SPI、I2C芯片介绍

CH347下载FPGA程序的三种方式

  1. 使用OpenOCD
    OpenOCD(Open On-Chip Debugger)作为开源的硬件调试器,除了可以对嵌入式芯片进行下载和调试,其实还支持一些型号的FPGA下载。
    在OpenOCD目录中的share\openocd\scrips目录中可以看到支持的FPGA型号。
    在这里插入图片描述
    具体使用可参考

CH347应用–USB TO JTAG进行FPGA调试下载

  1. 使用OpenFPGALoader
    类似于成熟的openOCD项目,openFPGALoader主要专注于对FPGA的固件下载,支持Xilinx, Altera/Intel, Lattice, Gowin等常见FPGA。
    项目链接:https://github.com/ZhiyuanYuanNJ/openFPGALoader/tree/master
    目前支持的FPGA型号如下:
    https://trabucayre.github.io/openFPGALoader/compatibility/fpga.html
    具体使用可参考:

CH347应用 USB转JTAG功能:开源项目openFPGALoader实现对FPGA高速下载

  1. 使用VIVADO xvcd
    Xilinx Virtual Cable Daemon(xvcd)是Xilinx推出的基于 TCP/IP协议 的虚拟调试工具,主要用于替代传统的平台电缆 (如 Impact 工具)实现FPGA的远程调试和程序加载。
    具体使用流程如下:

1、下载编译xvcd-ch347。

https://github.com/AIOT-CAT/xvcd-ch347

2、运行程序
首先使用-h,查看使用说明

ch347_xvcd.exe -hUsage:-h, --help                     display this message-a, --address <host add xxx>   specify host address, default is 127.0.0.1-p, --port <port num>          specify socket port, default is 2542-i, --index <index num>        specify CH347 index, default is 0-s, --speed <ch347 speed>      specify CH347 JTAG speed, default is 30MHz

一般使用时需要关注JTAG速率,一般单纯下载程序速率可以设置的稍高,程序固化时速率不宜过高

设置JTAG速率3.75Mhz:

xvcd_ch347.exe -s 3750000
Open CH347 Succes.
CH347:[0] init done.

可以看到CH347成功打开,程序不要关闭,随后打开vivado。

3、vivado连接CH347
初始界面打开硬件管理。
在这里插入图片描述
点击New Target
在这里插入图片描述
点Next
在这里插入图片描述
添加XVC虚拟线缆,并确认Host name:127.0.0.1 port:2542
在这里插入图片描述
此时应能够看到FPGA的型号已经被扫描到。
在这里插入图片描述
点击Next、Finish。

4、程序下载
右键FPGA并选择Program Device。
在这里插入图片描述
在弹出的界面选择bit文件,点击Program并等待下载完成。

5、FPGA程序固化
为FPGA选择自己的flash型号。
在这里插入图片描述
在这里插入图片描述
选择MCS文件并下载。
在这里插入图片描述
在这里插入图片描述
等待固化完成,并重启FPGA即可。

http://www.lryc.cn/news/604700.html

相关文章:

  • 大语言模型API付费?
  • 【PZ7020-StarLite 入门级开发板】——FPGA 开发的理想起点,入门与工业场景的双重优选
  • PyTorch API
  • PyTorch 生态四件套:从图片、视频到文本、语音的“开箱即用”实践笔记
  • 汽车电子控制系统开发的整体安全理念
  • 为什么网站需要高防IP?高防IP的优势是什么?
  • 打造高效、安全的期货资管交易平台:开发流程与关键要素解析
  • 企业级应用安全传输:Vue3+Nest.js AES加密方案设计与实现
  • 开发避坑短篇(9):解决升级Vue3后slot attributes废弃警告
  • 从黑箱到理解模型为什么(模型可解释性与特征重要性分析)
  • 力扣54:螺旋矩阵
  • git rebase 操作记录
  • 《Java 程序设计》第 11 章 - 泛型与集合
  • chukonu阅读笔记(2)
  • 【LY88】双系统指南及避坑
  • 阿里云AI代码助手通义灵码开发指导
  • 【读书笔记】设计数据密集型应用 DDIA 第三章:存储与检索
  • OPCap:Object-aware Prompting Captioning
  • PHP/Java/Python实现:如何有效防止恶意文件上传
  • 【Qt开发】信号与槽(三)-> 自定义信号和槽
  • <RT1176系列13>LWIP概念介绍
  • 游戏盾是如何做到免疫攻击的
  • Spring Cloud Gateway Server Web MVC报错“Unsupported transfer encoding: chunked”解决
  • 离线录像文件视频AI分析解决方案
  • android 性能优化
  • 密码学安全性简介
  • 深入浅出:在 Spring Boot 中构建实时应用 - 全面掌握 WebSocket
  • 电池自动生产线:科技赋能下的高效制造新范式
  • Ubuntu LNMP
  • MCU中的CAN总线是什么?