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接口
离线
这个有人移植到ch573上吗 现在552跟573也差不多
1.x元的CH552才有价值,目前明显是价格倒挂状态,相信不会持续很久。
扫了下CH573的datasheet,USB的IP和CH552应该是一样的。
离线
没有源代码?
因为涉及一些私有代码,所以不开源,不好意思。
离线
这个有人移植到ch573上吗 现在552跟573也差不多
我在CH573上也实现了这个USB-Blaster,效率接近STM32版本,但是优化花了很多时间。
CH573的GPIO有_CLR寄存器,可以直接清零,但是没有_SET寄存器,无法直接置1,导致操作GPIO效率很低。
相比之下,C51可以直接位寻址,M3和M4支持bit-banding操作,直接操作GPIO方便太多了
离线
目前最新版本v21.11.6,经过汇编优化,相比初始版本性能提高了3.88倍,基本达到CH552的天花板,已经非常实用了。
好久不写C51汇编了,C进行位操作太低效了,汇编优化完看那些编译器生成的汇编代码就跟傻子写的一样。
离线
加油 现在jtag时钟能到多少
移位输出大概2M,移位输入输出1.471M,大部分数据使用1.471M这个时钟。
离线
@Blueskull
我那个是TCK时钟,一个字节内的,字节之间当然还有间隙,算平均码率还要再低的。
CH552说3.3V下最高16M主频,真就是16M,提高到24M在3.3V下面直接不识别。
由于SETB和CLR时钟都是2周期,理论上的最高反转率是4M,这是光出时钟,别的啥都干不了。
由于USB-Blaster有TDO和ASDO两个输入线,硬件SPI无法同时照顾到,所以用不上。
离线
移植到573上 那个好歹60m 32位 有个硬spi 还可以上蓝牙
CH573我也移植好了,主要问题是GPIO只有清零寄存器,没有置位寄存器,设置高电平只能通过R-M-W过程来做,拉低了GPIO的效率,所以TCK最高主频也没超过3M。51有位操作,M3/M4支持bit-banding,他们比RISC-V操作GPIO效率高多了。至于硬件SPI,CH552也有都用不上,原因前面说了。蓝牙也没用。
离线
目前一个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)
离线
又优化了一版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掰手腕了。
离线
@echo
CH549可以跑48M,就是不支持bootloader跳转稍微麻烦点,要么手按要么额外硬件。
就是价格和573也差不多,但是SOP还是好焊接。
CH549太浪费了,用CH546G就可以了,之前价格还不到2块,现在是非常时期,芯片价格完全是乱的。
离线
加片ag1280 同时解决输出的电平转换问题
电平转换一片244就搞定了
离线
v21.11.9,再次优化性能,使用硬件SPI,TCK时钟提到8M,JTAG模式比之前版本提高了大约37%。
CH552_Blaster_v21.11.9.hex
离线
不知道为何烧录AG1280会蓝屏, A320主板 WIN10系统 ,
但是淘宝买的552 USB BLASTER烧录器不会
哪个固件会蓝屏呢?我的测试环境是Win7x64
离线
echo 说:90999 说:不知道为何烧录AG1280会蓝屏, A320主板 WIN10系统 ,
但是淘宝买的552 USB BLASTER烧录器不会哪个固件会蓝屏呢?我的测试环境是Win7x64
关了U3就好了,可能是主板问题
这个蛮奇怪的,我的X230上的USB3.0没问题
离线
目前FT232H和FT2232H都没货,且价格贵,请问这个可以用于Xilinx的FPGA烧录吗?
USB-Blaster是Altera和AGM的调试工具,不支持Xilinx
离线
:)用楼主的固件做了个迷你版的USB Blaster
https://whycan.com/files/members/3241/mmexport1656044754257.jpg
随便用个CH552开发板就可以
离线
清理了一下旧固件,放个最新的。
CH552_Blaster_v22.2.27.7z
偶尔用的话,用这个CH552版本的USB-Blaster就足够了。经常用的话建议买CH546或者CH571版本的USB-Blaster,速度要快得多。
离线
@echo
刚刚一个国外用户反馈了相同的问题,Win10上无法使用,查了下,后来降级了一下usb-blaster驱动就好了。据说是quartus ii 18.0自带的usb-blaster驱动问题,降级到13.0的驱动就好了。
离线
速度快不快
CH552版本里是最快的。
离线
请问一下,ch552烧录blaster固件后,串口驱动打哪个,在设备管理器中只看到blaster的设备,没有看到有com口
usb-blaster驱动本身不提供虚拟串口,串口是CH552芯片的物理串口。
离线
@ling123
都支持,新固件会比老固件更完善。无论速度还是可靠性,CH552版本偶尔使用完全够了。
如果经常用,而且有更高的追求,可以买CH546和CH571版本的。
离线
@ling123
所有版本都没有usb虚拟串口,因为usb-blaster驱动就不支持。
离线
@chinazhangdj
物理串口就是CH552的硬件串口,和USB虚拟串口做区分的。因为usb-blaster的驱动天生就不支持串口,所以不可能支持虚拟串口。
再进一步解释,物理串口就是CH552芯片上的TXD和RXD两个管脚,不知道这样说清楚了没有。
另外,usb-blaster集成一个虚拟串口这种事情毫无意义,好用的usb串口工具一抓一大把。并且使用CH552来做虚拟串口根本就不可行,常用波特率都支持不全。
最近编辑记录 echo (2023-07-05 14:11:17)
离线
@echo @chinazhangdj
意思就是没有USB转串口,但是可以通过CH552芯片上的串口引脚(RX,TX)下载调试CH552
我这样理解是否正确?
是。
这个很好理解,因为USB转串口需要USB驱动支持,usb-blaster驱动不支持虚拟串口
离线
@echo
我烧录CH552_Blaster_v22.2.27.hex然后3.3v供电连接Altera的板子在Quartus 13.1中能识别usb-Blaster但是没有办法下载到sram
FPGA要独立供电,不要指望USB-Blaster上的3.3V给FPGA供电
离线
@health
对于QuartusII,13.0sp1是最好的版本,老器件支持得比较全。Cyclone I II III IV V都支持,Max II V 3000 7000都支持。
13.1开始就不支持Max3000系列CPLD,Cyclone I II也都不支持了。
14.0开始Cyclone III都不支持了。还有人用ALTERA公司的新芯片?公司都没了好久了。
离线
@jameschen
有什么理由必须要用Quartus II 18吗?ALTERA卖身好久了,市面上常见的新的器件差不多就是Cyclone4?13.0 sp1完全可以支持,老器件也是13.0sp1支持比较好。所以没什么理由用更新的Quartus版本
离线