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也差不多
离线
没有源代码?
离线
这个有人移植到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时钟能到多少
离线
加油 现在jtag时钟能到多少
移位输出大概2M,移位输入输出1.471M,大部分数据使用1.471M这个时钟。
离线
这么强!我用8MHz硬SPI才做到4M左右的平均码率。大神!
BTW,我的双DPTR自增突然就好了。。。最后抠根问第查出来是SDCC的bug,在调用栈足够深的时候SDCC的ABI会变,传参用的寄存器有特殊玩法,这个时候自己插入汇编操作DPTR会出问题。减少调用深度,代码扁平化重构一遍就好了。
最近编辑记录 Blueskull (2021-11-07 11:38:59)
离线
移植到573上 那个好歹60m 32位 有个硬spi 还可以上蓝牙
离线
@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)
离线
@echo
CH549可以跑48M,就是不支持bootloader跳转稍微麻烦点,要么手按要么额外硬件。
就是价格和573也差不多,但是SOP还是好焊接。
离线
又优化了一版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 同时解决输出的电平转换问题
离线
加片ag1280 同时解决输出的电平转换问题
电平转换一片244就搞定了
离线
v21.11.9,再次优化性能,使用硬件SPI,TCK时钟提到8M,JTAG模式比之前版本提高了大约37%。
CH552_Blaster_v21.11.9.hex
离线
不知道为何烧录AG1280会蓝屏, A320主板 WIN10系统 ,
但是淘宝买的552 USB BLASTER烧录器不会
离线
不知道为何烧录AG1280会蓝屏, A320主板 WIN10系统 ,
但是淘宝买的552 USB BLASTER烧录器不会
哪个固件会蓝屏呢?我的测试环境是Win7x64
离线
90999 说:不知道为何烧录AG1280会蓝屏, A320主板 WIN10系统 ,
但是淘宝买的552 USB BLASTER烧录器不会哪个固件会蓝屏呢?我的测试环境是Win7x64
关了U3就好了,可能是主板问题
离线
echo 说:90999 说:不知道为何烧录AG1280会蓝屏, A320主板 WIN10系统 ,
但是淘宝买的552 USB BLASTER烧录器不会哪个固件会蓝屏呢?我的测试环境是Win7x64
关了U3就好了,可能是主板问题
这个蛮奇怪的,我的X230上的USB3.0没问题
离线
CH551能用吗?我这一堆CH551
离线
@echo
楼主,可不可以拿你的固件做成产品去销售,盈利跟你分成
离线
目前FT232H和FT2232H都没货,且价格贵,请问这个可以用于Xilinx的FPGA烧录吗?
离线
目前FT232H和FT2232H都没货,且价格贵,请问这个可以用于Xilinx的FPGA烧录吗?
USB-Blaster是Altera和AGM的调试工具,不支持Xilinx
离线
:)用楼主的固件做了个迷你版的USB Blaster
离线
很精致,方便分享一下PCB么?感谢楼主的分享,也想做一个玩玩
:)用楼主的固件做了个迷你版的USB Blaster
https://whycan.com/files/members/3241/mmexport1656044754257.jpg
离线
:)用楼主的固件做了个迷你版的USB Blaster
https://whycan.com/files/members/3241/mmexport1656044754257.jpg
随便用个CH552开发板就可以
离线
好的,谢谢,用立创EDA画了一个
sven1234 说::)用楼主的固件做了个迷你版的USB Blaster
https://whycan.com/files/members/3241/mmexport1656044754257.jpg随便用个CH552开发板就可以
离线
清理了一下旧固件,放个最新的。
CH552_Blaster_v22.2.27.7z
偶尔用的话,用这个CH552版本的USB-Blaster就足够了。经常用的话建议买CH546或者CH571版本的USB-Blaster,速度要快得多。
离线
文件下载: ch552-Usb-Blaster
抱歉忘记传了。
是用PADS2005画的,现在验证能正常工作。
连接器我改成1.27 10p排针了。
IO电压3.3V。
最近编辑记录 sven1234 (2022-08-26 19:55:00)
离线
请问楼主的CH552Nano是ch552g还是ch552t呢
离线
明显楼主的是CH552G。ch552g和ch552t应该完全兼容,只是CH552T多了几个管脚而已。
离线
@echo
刚刚一个国外用户反馈了相同的问题,Win10上无法使用,查了下,后来降级了一下usb-blaster驱动就好了。据说是quartus ii 18.0自带的usb-blaster驱动问题,降级到13.0的驱动就好了。
离线
现在遇到的问题是电脑能识别设备,但是quartus里面没有
同一台电脑用c8t6的下载器quartus里面能识别,也能用
我的ch552g开发板是5V供电
使用超级终端也连不上
dataflash里面出现了一些数字
最近编辑记录 66123382 (2022-10-22 20:05:37)
离线
现在遇到的问题是电脑能识别设备,但是quartus里面没有
同一台电脑用c8t6的下载器quartus里面能识别,也能用我的ch552g开发板是5V供电
使用超级终端也连不上dataflash里面出现了一些数字
问题已解决,附上13的驱动
usb-blaster.zip
离线
速度快不快
离线
速度快不快
CH552版本里是最快的。
离线
ch573是怎么移植的,可以直接用ch552g的固件吗?还是说要重新写固件
离线
请问一下,ch552烧录blaster固件后,串口驱动打哪个,在设备管理器中只看到blaster的设备,没有看到有com口
离线
请问一下,ch552烧录blaster固件后,串口驱动打哪个,在设备管理器中只看到blaster的设备,没有看到有com口
usb-blaster驱动本身不提供虚拟串口,串口是CH552芯片的物理串口。
离线
gavinfree 说:请问一下,ch552烧录blaster固件后,串口驱动打哪个,在设备管理器中只看到blaster的设备,没有看到有com口
usb-blaster驱动本身不提供虚拟串口,串口是CH552芯片的物理串口。
您好,在FW文件夹里面的blaster程序 有同时提供虚拟串口功能的么,我买的硬件还没到手,
离线
gavinfree 说:请问一下,ch552烧录blaster固件后,串口驱动打哪个,在设备管理器中只看到blaster的设备,没有看到有com口
usb-blaster驱动本身不提供虚拟串口,串口是CH552芯片的物理串口。
因为我看readme文件里提到,
(# CH552_Blaster_v21.10.21.hex
USB-Blaster固件,调试烧录Altera的FPGA和CPLD,使用WCHISPTool写入CH552。主要参数如下:
- 支持Altera和AGM公司的FPGA和CPLD
- 支持JTAG和AS两种下载方式
- 使用MCU内部时钟,运行频率16MHz,无需外部晶振。
- 3.3V供电,IO电平为3.3V
- 所有IO全部使用到
- 支持串口命令行)
后来的 版本CH552_Blaster_v22.2.27.hex也支持么?
离线
@ling123
都支持,新固件会比老固件更完善。无论速度还是可靠性,CH552版本偶尔使用完全够了。
如果经常用,而且有更高的追求,可以买CH546和CH571版本的。
离线
@ling123
都支持,新固件会比老固件更完善。无论速度还是可靠性,CH552版本偶尔使用完全够了。
如果经常用,而且有更高的追求,可以买CH546和CH571版本的。
FW文件夹里面只有 CH552_Blaster_v22.2.27.hex是usb-blaster的,
这个版本是没有虚拟串口的,
您能帮忙私发一下其他版本么?164952146@qq.com
十分感谢。。。
离线
@ling123
所有版本都没有usb虚拟串口,因为usb-blaster驱动就不支持。
离线
@ling123
所有版本都没有usb虚拟串口,因为usb-blaster驱动就不支持。
嗯,谢谢,我硬件到手了,插上电脑可以识别blaster,但是我quartus里出不来usb-blaster,稍微还会卡顿;没有虚拟串口我还是用老方案,
多谢指点
多谢
离线
这个模块太实用了,谢谢楼主的分享
离线
git上的链接没找到下载接口:rolleyes
离线
感谢!我试着用手上的模块烧录了v22.2.27.7z 固件,可以用。但是不知道怎么回事,jtag有时候点start,会卡住,10来秒后才下载成功
离线
@66123382
CH552 在qurtus ii 18确实不好用,网上的安装包很坑
离线
gavinfree 说:请问一下,ch552烧录blaster固件后,串口驱动打哪个,在设备管理器中只看到blaster的设备,没有看到有com口
usb-blaster驱动本身不提供虚拟串口,串口是CH552芯片的物理串口。
弱弱的问一句,那个物理串口是啥意思?和CH340使用上有啥区别?另外,那个波特率意思是固定的吗?
离线
@liberty
没有虚拟串口,不知道干嘛用的,看描述符只有一个接口,就是blaster,所以这个串口大概率用来控制ch552改参数或者下载的,建议作者改一下描述,很容易被误导,我就被误导了,傻乎乎的以为画开发板可以省一个ch343,然后,现在就只能外挂一个ch340板子用了(没加板载USB转串口)。
附:USB Device Tree Viewer截图
离线
@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
我这样理解是否正确?
离线
@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
离线
@echo
我烧录CH552_Blaster_v22.2.27.hex然后3.3v供电连接Altera的板子在Quartus 13.1中能识别usb-Blaster但是没有办法下载到sram
FPGA要独立供电,不要指望USB-Blaster上的3.3V给FPGA供电
离线
手上有个下载器不工作,用的这个芯片,能直接刷这个固件吗,下载器用哪种啊
离线
Woodzn 说:@echo
我烧录CH552_Blaster_v22.2.27.hex然后3.3v供电连接Altera的板子在Quartus 13.1中能识别usb-Blaster但是没有办法下载到sramFPGA要独立供电,不要指望USB-Blaster上的3.3V给FPGA供电
感谢提供!
请问下楼主:
我试着用手上的模块烧录了v22.2.27.7z 固件,可以用。但是不知道怎么回事,jtag有时候点start,会卡住,10来秒后才下载成功。
是我的硬件的问题吗,还是quartus版本问题,我换了2台电脑,11.0, 13.0版本都 试了,都是一样的结果 。‘
离线
请问安装quartus13.0的USBBlaster驱动后可以在Quartus18.0上进行烧录么
离线
@sky2222
WIN11吧,WIN10下没问题,我WIN11下包括原装货,用Q2_13.1 全部的卡。
离线
win7 x64 Quartus15.0 蓝屏死机。
插上后无操作不死机,打开Quartus下载程序卡死,一两秒后蓝屏死机。
windows设备管理器查看usb blaster设备也是卡死,一两秒后蓝屏死机。
更新驱动为13.0后不再蓝屏,功能正常。
离线
买了个淘宝6块多钱的USB-Blaster,到货试了不会蓝屏死机,拆开看也是CH552G。
猜测楼主的固件可能是功能不完整,对于某些命令请求没有正确响应。
安装15.0和13.0驱动对比一下,15.0的多了几个选项。
另外USB-Blaster是有USB转串口功能的,设备管理器USB-Blaster选项中选中“加载VCP”,电脑即会发现新硬件“USB Serial Port”,但是找不到驱动程序,驱动安装失败。
查看该新设备的PID和VID,手动修改个驱动程序,将FTDI的VCP驱动中的PID和VID替换为该设备的PID和VID,即可安装成功。
驱动安装成功后,电脑新增一个串口号,使用串口调试助手可正常打开串口和收发数据。
离线
@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公司的新芯片?公司都没了好久了。
离线
@echo
使用CH552_Blaster_v22.2.27.hex这版固件,在quarters 18的驱动,会出现蓝屏问题
插上后无操作不死机,打开Quartus下载程序卡死,一两秒后蓝屏死机。
windows设备管理器查看usb blaster设备也是卡死,一两秒后蓝屏死机。
更新驱动为13.0后不再蓝屏,功能正常。
有办法对过修改固件来解决不?
离线
@jameschen
有什么理由必须要用Quartus II 18吗?ALTERA卖身好久了,市面上常见的新的器件差不多就是Cyclone4?13.0 sp1完全可以支持,老器件也是13.0sp1支持比较好。所以没什么理由用更新的Quartus版本
离线
@jameschen
有什么理由必须要用Quartus II 18吗?ALTERA卖身好久了,市面上常见的新的器件差不多就是Cyclone4?13.0 sp1完全可以支持,老器件也是13.0sp1支持比较好。所以没什么理由用更新的Quartus版本
我一般都是把新工具降级去支持老系统,在一个系统稳定的情况下,不会刻意为了升级而升级,升级带来了一系列非预期的环境变化,没有意义的事情,升级通常只会吃掉更多系统性能,而原厂希望客户升级,因为可能涉及到一些ip产权的变更,一些合作供应商的替换,原来集成在ide里面的供应商组建需要替换.但是对于最终用户,没有这种顾虑
离线
能支持XILINX的JTAG?
离线
Xilinx的FPGA不支持吗?
离线