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接口
离线
david wrote:
这个有人移植到ch573上吗 现在552跟573也差不多
1.x元的CH552才有价值,目前明显是价格倒挂状态,相信不会持续很久。
扫了下CH573的datasheet,USB的IP和CH552应该是一样的。
离线
Blueskull wrote:
没有源代码?
因为涉及一些私有代码,所以不开源,不好意思。
离线
david wrote:
这个有人移植到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进行位操作太低效了,汇编优化完看那些编译器生成的汇编代码就跟傻子写的一样。
离线
david wrote:
加油 现在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无法同时照顾到,所以用不上。
离线
david wrote:
移植到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掰手腕了。
离线
iamseer wrote:
@echo
CH549可以跑48M,就是不支持bootloader跳转稍微麻烦点,要么手按要么额外硬件。
就是价格和573也差不多,但是SOP还是好焊接。
CH549太浪费了,用CH546G就可以了,之前价格还不到2块,现在是非常时期,芯片价格完全是乱的。
离线
david wrote:
加片ag1280 同时解决输出的电平转换问题
电平转换一片244就搞定了
离线
v21.11.9,再次优化性能,使用硬件SPI,TCK时钟提到8M,JTAG模式比之前版本提高了大约37%。
CH552_Blaster_v21.11.9.hex
离线
90999 wrote:
不知道为何烧录AG1280会蓝屏, A320主板 WIN10系统 ,
但是淘宝买的552 USB BLASTER烧录器不会
哪个固件会蓝屏呢?我的测试环境是Win7x64
离线
90999 wrote:
echo wrote:
90999 wrote:
不知道为何烧录AG1280会蓝屏, A320主板 WIN10系统 ,
但是淘宝买的552 USB BLASTER烧录器不会哪个固件会蓝屏呢?我的测试环境是Win7x64
关了U3就好了,可能是主板问题
这个蛮奇怪的,我的X230上的USB3.0没问题
离线
KooLee wrote:
目前FT232H和FT2232H都没货,且价格贵,请问这个可以用于Xilinx的FPGA烧录吗?
USB-Blaster是Altera和AGM的调试工具,不支持Xilinx
离线
sven1234 wrote:
:)用楼主的固件做了个迷你版的USB Blaster
/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的驱动就好了。
离线
ndk wrote:
速度快不快
CH552版本里是最快的。
离线
gavinfree wrote:
请问一下,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)
离线
liberty wrote:
@echo @chinazhangdj
意思就是没有USB转串口,但是可以通过CH552芯片上的串口引脚(RX,TX)下载调试CH552
我这样理解是否正确?
是。
这个很好理解,因为USB转串口需要USB驱动支持,usb-blaster驱动不支持虚拟串口
离线
Woodzn wrote:
@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版本
离线