您尚未登录。

楼主 # 2021-10-21 20:11:13

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

分享一个CH552可用的USB-Blaster固件

下载链接

https://github.com/xjtuecho/CH552Nano/tree/main/FW

USB-Blaster固件,调试烧录Altera/AGM的FPGA和CPLD,使用WCHISPTool写入CH552。
测试在我的CH552Nano板子上进行的,当然由于没有什么依赖,别的CH552板子也完全可以。

主要参数
  • 支持Altera和AGM公司的FPGA和CPLD

  • 支持JTAG和AS两种下载方式

  • 使用MCU内部时钟,运行频率16MHz,无需外部晶振

  • 3.3V供电,IO电平为3.3V

  • 所有IO全部使用到

  • 支持串口命令行

管脚分配
  • P1.1 板载LED

  • P1.4 NCS

  • P1.5 TDI

  • P1.6 TDO

  • P1.7 TCK

  • P3.2 TMS

  • P3.3 ASDO

  • P3.4 NCE

注意
  • JTAG接口只需要连接TCK、TMS、TDI、TDO四个信号

  • AS接口除了JTAG的四个信号还需要连接ASDO、NCS、NCE三个信号

  • AG1280Q48下载FLASH需要使用AS接口,NCE信号不接

  • P3.0和P3.1为UART接口,波特率38400,可以使用超级终端连接

  • P3.6和P3.7为USB接口

离线

#1 2021-10-22 08:08:48

david
会员
注册时间: 2018-03-05
已发帖子: 190
积分: 159.5

Re: 分享一个CH552可用的USB-Blaster固件

这个有人移植到ch573上吗 现在552跟573也差不多

离线

#2 2021-10-22 09:48:12

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

Re: 分享一个CH552可用的USB-Blaster固件

没有源代码?

离线

楼主 #3 2021-10-22 10:24:58

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

david 说:

这个有人移植到ch573上吗 现在552跟573也差不多

1.x元的CH552才有价值,目前明显是价格倒挂状态,相信不会持续很久。
扫了下CH573的datasheet,USB的IP和CH552应该是一样的。

离线

楼主 #4 2021-10-22 10:25:42

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

Blueskull 说:

没有源代码?

因为涉及一些私有代码,所以不开源,不好意思。

离线

楼主 #5 2021-11-01 16:43:46

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

david 说:

这个有人移植到ch573上吗 现在552跟573也差不多

我在CH573上也实现了这个USB-Blaster,效率接近STM32版本,但是优化花了很多时间。
CH573的GPIO有_CLR寄存器,可以直接清零,但是没有_SET寄存器,无法直接置1,导致操作GPIO效率很低。
相比之下,C51可以直接位寻址,M3和M4支持bit-banding操作,直接操作GPIO方便太多了

离线

楼主 #6 2021-11-06 12:52:32

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

目前最新版本v21.11.6,经过汇编优化,相比初始版本性能提高了3.88倍,基本达到CH552的天花板,已经非常实用了。
好久不写C51汇编了,C进行位操作太低效了,汇编优化完看那些编译器生成的汇编代码就跟傻子写的一样。

离线

#7 2021-11-06 17:11:31

david
会员
注册时间: 2018-03-05
已发帖子: 190
积分: 159.5

Re: 分享一个CH552可用的USB-Blaster固件

加油 现在jtag时钟能到多少

离线

楼主 #8 2021-11-06 18:54:14

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

david 说:

加油 现在jtag时钟能到多少

移位输出大概2M,移位输入输出1.471M,大部分数据使用1.471M这个时钟。

离线

#9 2021-11-06 22:01:47

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

Re: 分享一个CH552可用的USB-Blaster固件

这么强!我用8MHz硬SPI才做到4M左右的平均码率。大神!

BTW,我的双DPTR自增突然就好了。。。最后抠根问第查出来是SDCC的bug,在调用栈足够深的时候SDCC的ABI会变,传参用的寄存器有特殊玩法,这个时候自己插入汇编操作DPTR会出问题。减少调用深度,代码扁平化重构一遍就好了。

最近编辑记录 Blueskull (2021-11-07 11:38:59)

离线

#10 2021-11-07 00:35:04

david
会员
注册时间: 2018-03-05
已发帖子: 190
积分: 159.5

Re: 分享一个CH552可用的USB-Blaster固件

移植到573上 那个好歹60m 32位 有个硬spi 还可以上蓝牙

离线

楼主 #11 2021-11-07 09:09:29

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

@Blueskull
我那个是TCK时钟,一个字节内的,字节之间当然还有间隙,算平均码率还要再低的。
CH552说3.3V下最高16M主频,真就是16M,提高到24M在3.3V下面直接不识别。
由于SETB和CLR时钟都是2周期,理论上的最高反转率是4M,这是光出时钟,别的啥都干不了。
由于USB-Blaster有TDO和ASDO两个输入线,硬件SPI无法同时照顾到,所以用不上。

离线

楼主 #12 2021-11-07 09:15:13

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

david 说:

移植到573上 那个好歹60m 32位 有个硬spi 还可以上蓝牙

CH573我也移植好了,主要问题是GPIO只有清零寄存器,没有置位寄存器,设置高电平只能通过R-M-W过程来做,拉低了GPIO的效率,所以TCK最高主频也没超过3M。51有位操作,M3/M4支持bit-banding,他们比RISC-V操作GPIO效率高多了。至于硬件SPI,CH552也有都用不上,原因前面说了。蓝牙也没用。

离线

楼主 #13 2021-11-07 09:21:14

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

目前一个TCK时钟周期内写一个位再读一个位用了7条指令共11个周期,所以TCK理论频率为16/11=1.455M,和实际测量结果一致。
只写不读的话4条指令7个周期就够了,加了个NOP改善占空比,所以5条指令8个周期,频率2M
51操作GPIO效率很高,主要吃亏在主频太低,要是有48M主频,就完全不比ARM和RISC-V慢了。

最近编辑记录 echo (2021-11-07 09:41:41)

离线

#14 2021-11-08 11:16:37

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

Re: 分享一个CH552可用的USB-Blaster固件

@echo

CH549可以跑48M,就是不支持bootloader跳转稍微麻烦点,要么手按要么额外硬件。
就是价格和573也差不多,但是SOP还是好焊接。

离线

楼主 #15 2021-11-08 11:21:09

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

又优化了一版v21.11.8,提升了些许性能,目前3.3V 16M限制下,性能提升的空间已经很小了。目前各个模式下的TCK时钟频率如下:

  • bit-bang频率90.91k

  • shift_out频率2.273M

  • shift_io频率1.471M

如果芯片直接换成CH546G,3.3V下直接到48M,上面的频率都x3,就可以和STM32和RISC-V掰手腕了。

离线

楼主 #16 2021-11-08 11:23:57

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

iamseer 说:

@echo

CH549可以跑48M,就是不支持bootloader跳转稍微麻烦点,要么手按要么额外硬件。
就是价格和573也差不多,但是SOP还是好焊接。

CH549太浪费了,用CH546G就可以了,之前价格还不到2块,现在是非常时期,芯片价格完全是乱的。

离线

#17 2021-11-08 16:07:31

david
会员
注册时间: 2018-03-05
已发帖子: 190
积分: 159.5

Re: 分享一个CH552可用的USB-Blaster固件

加片ag1280 同时解决输出的电平转换问题

离线

楼主 #18 2021-11-08 16:54:02

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

david 说:

加片ag1280 同时解决输出的电平转换问题

电平转换一片244就搞定了

离线

楼主 #19 2021-11-09 09:37:36

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

v21.11.9,再次优化性能,使用硬件SPI,TCK时钟提到8M,JTAG模式比之前版本提高了大约37%。
CH552_Blaster_v21.11.9.hex

离线

#20 2021-11-24 15:43:45

90999
会员
注册时间: 2020-06-25
已发帖子: 7
积分: 22

Re: 分享一个CH552可用的USB-Blaster固件

不知道为何烧录AG1280会蓝屏,  A320主板 WIN10系统  ,   
但是淘宝买的552 USB BLASTER烧录器不会

离线

楼主 #21 2021-11-24 19:57:11

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

90999 说:

不知道为何烧录AG1280会蓝屏,  A320主板 WIN10系统  ,   
但是淘宝买的552 USB BLASTER烧录器不会

哪个固件会蓝屏呢?我的测试环境是Win7x64

离线

#22 2021-11-27 13:18:23

90999
会员
注册时间: 2020-06-25
已发帖子: 7
积分: 22

Re: 分享一个CH552可用的USB-Blaster固件

echo 说:
90999 说:

不知道为何烧录AG1280会蓝屏,  A320主板 WIN10系统  ,   
但是淘宝买的552 USB BLASTER烧录器不会

哪个固件会蓝屏呢?我的测试环境是Win7x64

关了U3就好了,可能是主板问题

离线

楼主 #23 2021-11-27 22:22:23

echo
会员
注册时间: 2020-04-16
已发帖子: 160
积分: 145.5

Re: 分享一个CH552可用的USB-Blaster固件

90999 说:
echo 说:
90999 说:

不知道为何烧录AG1280会蓝屏,  A320主板 WIN10系统  ,   
但是淘宝买的552 USB BLASTER烧录器不会

哪个固件会蓝屏呢?我的测试环境是Win7x64

关了U3就好了,可能是主板问题

这个蛮奇怪的,我的X230上的USB3.0没问题

离线

页脚

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

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