您尚未登录。

楼主 #1 2020-10-23 14:53:35

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 296
积分: 296.5

CH552通用JTAG适配器

如题,最近写了个基于CH552的通用JTAG适配器。用法如下:

向EP1写入0x00+一个字节:控制电源、FPGA复位等,具体逻辑参见jtag.c的jtag_power()实现。其中0x04位控制JTAG模式还是SPI模式。
向EP1写入0x01+字节数+比特数+0x00+tms序列数组(以字节为单位,lsb先出)+tdi序列数组(同上):输出一个JTAG序列,最多30字节。
向EP1写入0x02+数据:输出一个SPI序列,复用JTAG引脚,最多63字节。
从EP1读取数据:读取JTAG写入时TDO采样得到的数据,字节序和TMS、TDI相同。

支持WCID,可以免驱(但是WinUSB貌似不被PyUSB支持,所以我手工安装了libusb-win32)。
下位机只负责输入输出JTAG序列,具体高层逻辑(TAP状态改变、读写、复位等)完全依赖上位机。

附送Python程序用于加载高云FPGA的比特流。实测GW1NR-LV9可用。

https://github.com/blueskull/CH552-JTAG

最近编辑记录 Blueskull (2020-10-23 15:17:04)

离线

#2 2020-10-23 15:22:19

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 202
积分: 190.5

Re: CH552通用JTAG适配器

大神厉害,迟些帮大佬验证下gw2ar是否可以用。

离线

楼主 #3 2020-10-23 18:00:07

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 296
积分: 296.5

Re: CH552通用JTAG适配器

代码仓库更新,新版本支持5倍的下载速度,达到160kBps(1.28Mbps)。等有时间把USB双缓冲搞了,应该能更快。

离线

#4 2020-10-24 01:26:02

metro
会员
注册时间: 2019-03-09
已发帖子: 341
积分: 321.5

Re: CH552通用JTAG适配器

不错,这个应该是类似于FTDI的MPSSE的思路吧?做得好的话可以实现SWD等协议的模拟。

离线

#5 2020-10-24 08:17:10

shawn.d
会员
注册时间: 2020-09-12
已发帖子: 135
积分: 130

Re: CH552通用JTAG适配器

厉害!

离线

#6 2020-10-24 10:24:39

ljbfly
会员
注册时间: 2017-12-07
已发帖子: 37
积分: 37

Re: CH552通用JTAG适配器

优秀

离线

楼主 #7 2020-10-24 11:03:40

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 296
积分: 296.5

Re: CH552通用JTAG适配器

metro 说:

不错,这个应该是类似于FTDI的MPSSE的思路吧?做得好的话可以实现SWD等协议的模拟。

SWD没有研究过。这个就是bit shifter,具体每个bit啥意义他不管,他只负责把收到的byte拆成bit然后shift出去,然后shift进来另一路数据。

具体的bit定义和再高一层的协议是上位机的事情。就是MPSSE。

离线

#8 2020-10-26 10:19:06

iamseer
会员
注册时间: 2020-06-06
已发帖子: 25
积分: 24.5

Re: CH552通用JTAG适配器

请问这个能连接openocd吗?

离线

楼主 #9 2020-10-26 11:26:59

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 296
积分: 296.5

Re: CH552通用JTAG适配器

iamseer 说:

请问这个能连接openocd吗?

不能,没做OCD的接口库

离线

楼主 #10 2020-11-16 11:25:36

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 296
积分: 296.5

Re: CH552通用JTAG适配器

挖个坟,代码重构了,C代码文件合并了,函数解耦了,Python代码合并了,模块化了,新增参数解析器。增加了韩同学的CH552 ISP程序。
GitHub链接不变。

离线

#11 2020-11-26 16:43:43

wm20031015
会员
注册时间: 2017-10-18
已发帖子: 29
积分: 29

Re: CH552通用JTAG适配器

这个要能挂openocd就强大了

离线

#12 2021-05-26 16:09:29

blade_cheng
会员
注册时间: 2018-10-15
已发帖子: 61
积分: 57

Re: CH552通用JTAG适配器

这个能用来配置A家和X家的片子吗

离线

楼主 #13 2021-05-27 10:35:27

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 296
积分: 296.5

Re: CH552通用JTAG适配器

blade_cheng 说:

这个能用来配置A家和X家的片子吗

硬件能,但是上位机软件我没做。AXL都有公开的配置JTAG指令文档,自己可以去看,然后基于我的Python脚本去改。
另外,X/L家的官方下载器就是FT2232H做的,有大神写的CH552模拟FT2232H,但是只能跑2.5Mbps。具体自己GitHub找。
A家不支持FT2232H,A家官方下载器是基于68013和CPLD的。CH552可以从零开始按照文档写,但是不能直接模拟FT2232H偷懒。
换句话说,X/L可以靠模拟FT2232H实现调试和在线仿真,A家只能下载,而且得自己写上位机。

离线

#14 2021-05-28 11:30:03

wxws
会员
注册时间: 2019-11-29
已发帖子: 8
积分: 7.5

离线

楼主 #15 2021-05-28 11:56:00

Blueskull
会员
注册时间: 2020-02-20
已发帖子: 296
积分: 296.5

Re: CH552通用JTAG适配器

离线

#16 2021-05-30 17:11:53

metro
会员
注册时间: 2019-03-09
已发帖子: 341
积分: 321.5

Re: CH552通用JTAG适配器

@Blueskull

Quartus默认不支持FTDI的芯片,不过我在网上看到一个号称可以通过替换dll支持的方法,链接如下:https://mil.ufl.edu/3701/docs/quartus/quartus18.1_installation.pdf
手头没有Altera的FPGA板子(严格来说有但是板载了下载器233)所以没法测试,可以试一下好不好用。

离线

页脚

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

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