使用 USB-Blaster 烧录 ChisFlash 固件
ChisFlash 是一个开源的 GBA 烧录卡项目,使用 FPGA/CPLD 作为核心控制器。 本文记录的是 EPM240 芯片的 ChisFlash v0.1青春版,更新固件时需要通过 JTAG 接口将固件写入芯片。
USB-Blaster 是连接电脑与目标板 JTAG 接口的下载器,电脑端使用 Quartus Programmer 识别设备并完成烧录。 本文使用的 USB-Blaster 为网上购买的 CH552G 芯片廉价国产替代版,可以使用 Type-C 数据线连接电脑,价格约 5 元包邮。

安装 EPM240 烧录软件
在电脑上安装 Quartus Programmer。 Quartus Programmer 支持 Windows、Linux 不支持 macOS,本文使用 Windows 10 系统进行安装,安装的版本为 Quartus Programmer 13。 安装时至少需要包含 Programmer 和 USB-Blaster 驱动;如果已经安装 Quartus,可以直接使用其中的 Programmer 工具。
具体的下载和安装过程在此不赘述,安装完成后可以在开始菜单中找到 Quartus Programmer。
安装完成后连接 USB-Blaster,打开 Quartus Programmer,点击 Hardware Setup,在硬件列表中选择 USB-Blaster [USB-0]。如果列表中没有 USB-Blaster,先检查驱动是否安装成功,再检查 USB 线和下载器状态。
安装 USB-Blaster 驱动
将 USB-Blaster 连接到电脑,右键点击开始菜单,打开 设备管理器。
在 其他设备、通用串行总线控制器 或 Altera USB-Blaster 一类的设备中找到 USB-Blaster。设备名称可能显示为未知设备,并带有黄色感叹号。
右键点击该设备,选择 更新驱动程序,再选择 浏览我的电脑以查找驱动程序。
将驱动目录指定为 Quartus 的安装目录下的
quartus\drivers\usb-blaster。以默认安装位置和 Quartus Programmer 13 为例,目录通常是:textC:\altera\13.0\quartus\drivers\usb-blaster如果安装的是其他版本或自定义了安装目录,应以电脑上的实际路径为准。也可以在驱动更新向导中勾选 包括子文件夹 后选择
quartus目录。安装完成后,在设备管理器中确认设备已正常显示,并重新打开 Quartus Programmer,在 Hardware Setup 中选择
USB-Blaster [USB-0]。
更新 USB-Blaster 固件
部分 CH552G 版的 USB-Blaster 出厂固件与 Quartus Programmer 自带的驱动不兼容,可能导致无法识别要烧录的设备或 Quartus Programmer 软件操作时卡死,此时需要先更新 USB-Blaster 固件。
参考资料:
- 【DIY】基于CH552G的USBblaster
- 解决WCH552 USB-Blaster 导致蓝屏死机
- USB-Blaster_CH552
- 新年第一天就被坑,CH552 USB Blaster的固件一定要和驱动匹配!!!
- 下载 USB-Blaster_CH552 固件。
- 下载和安装 WCHISPTool 工具,具体下载和安装过程不再赘述。安装完成后打开 WCHISPTool,选择 CH55x 对应的 USB 下载方式。
- 将下载好的固件添加到 WCHISPTool 中。
- 将 USB-Blaster 断开与电脑的连接后,用金属短接空余的两个焊盘,连接电脑后再松开短接,此时 WCHISPTool 会识别到接入的 CH552G 设备。
- 点击开始下载,等待提示成功后再拔出 USB-Blaster。
连接 ChisFlash
连接前先断开 USB-Blaster 与电脑的 USB 连接。按照项目提供的 JTAG 定义连接 TCK、TMS、TDI、TDO、VCC 和 GND。
USB-Blaster 的 JTAG 接口为 10 针排针,其引脚定义如下:
| A侧 | B侧 |
|---|---|
| 1. TCK | 2. GND |
| 3. TDO | 4. VCC |
| 5. TMS | 6. NC |
| 7. NC | 8. NC |
| 9. TDI | 10. GND |
其中带三角标记的是 USB-Blaster 的 1 脚,另外一侧与其相邻的为 2 脚。
USB-Blaster 与 ChisFlash 的连接如下图所示:


为了省事可以使用 USB-Blaster 直接给 ChisFlash 供电,下图将 VCC 直接与 CH552的 3.3v 引脚相连。

烧录 ChisFlash 固件
固件 pof 文件可以在 项目 releases 下载,或者在 ChisFlash 交流 QQ 群下载。
- 目标板接线完成后,将 USB-Blaster 连接到电脑,打开 Quartus Programmer。
- 在 Hardware Setup 中选择
USB-Blaster [USB-0],点击 Auto Detect 检查 JTAG 链是否能识别目标 FPGA。 - 点击 Add File,选择 ChisFlash 项目提供的目标固件文件。这里选择的是目标 FPGA 的固件,不是上一步使用的 USB-Blaster 固件。
- 确认设备型号、文件和 JTAG 链顺序正确后,勾选 Program/Configure 和 Verify。如果需要先擦除或执行空白检查,按项目说明选择对应操作。
- 点击 Start,等待编程和校验完成。底部消息区域出现
Successfully performed operation(s),并且进度显示100% (Successful)后,才算烧录完成。

问题排查
Auto Detect 操作卡死。
- 更新 USB-Blaster 固件。
Auto Detect 无法识别到设备。
- 根据电路图使用万用表测量 ChisFlash 的 JTAG 接口与 EPM240 芯片对应的几个引脚是否连通。
- 根据引脚定义检查 USB-Blaster 与 ChisFlash 的 JTAG 接口的接线是否正确。
- 检查 ChisFlash 的供电是否正常。
Auto Detect 识别到未知设备,并提示连接问题。
- 检查 USB-Blaster 与 ChisFlash 的接线是否错乱。
社区
《ChisFlash 复古游戏机DIY交流》QQ 群:771688226