[USB芯片]

CH347应用 USB转SPI/I2C功能之:开源项目SNANDer实现flash烧写

[复制链接]
1423|3
手机看帖
扫描二维码
随时随地手机跟帖
lzy871238103|  楼主 | 2024-9-9 14:52 | 显示全部楼层 |阅读模式
本帖最后由 lzy871238103 于 2024-9-9 14:54 编辑

SNANDer介绍
今天接触flash下载的同学可能对SNANDer开源项目并不陌生,他是基于CH341的下载器。
目前支持上百种flash的下载,涵盖了主流的flash型号,同时支持常见的EEPROM。具体参考github中的详细介绍。若SNANDer中未能支持所需下载的flash型号,可以试试更加强大的https://github.com/ZhiyuanYuanNJ/flashrom/tree/build_windows_x64开源项目。
本此主要是对原始项目进行改造,将烧录设备CH341更换为功能更加强大的CH347。
仓库地址:https://github.com/ZhiyuanYuanNJ/SNANDer


CH347简介
CH347是一款高速USB总线转接芯片,通过USB总线提供异步串口、I2C同步串行接口、SPI同步串行接口和JTAG接口等。芯片资源如下:
1. 2个高速串口,最高波特率达9Mbps
2. 1个2线I2C接口,作为Host/Master主机模式,最高速率1MHz
3. 1个4线SPI接口,作为Host/Master主机模式,最高速率60MHz
4. 1个JTAG接口,作为Host/Master主机模式,最高速率60MHz
5.  1个SWD接口,作为Host/Master主机模式

由此可以看到,CH347完全可以完成SPI接口的flash与I2C接口的EEPROM烧写任务。
芯片具体信息可参考:
https://www.wch.cn/products/CH347.html


软件编译
在Windows系统下:需借助Cygwin进行安装。
仓库内通过了编译脚本,克隆后直接运行即可:

#克隆仓库
git clone https://github.com/ZhiyuanYuanNJ/SNANDer.git
cd SNANDer
#运行编译脚本
./build-for-windows.sh
完成后,可在build目录下找到编译好的可执行文件。
嫌麻烦的同学也可去GitHub仓库直接下载release版:
https://github.com/ZhiyuanYuanNJ/SNANDer/releases


使用方法
需提前安装好https://www.wch.cn/downloads/CH341PAR_EXE.html
此处硬件为CH347F,无需进行模式切换,若使用CH347T应切换为模式1。
-i detect IC

$ ./snander -i
SNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC <mcmcc@mail.ru>
Open CH347 device success.
spi device id: ef 40 15 0 0 (40150000)
Detected SPI NOR Flash: W25Q16JQ, Flash Size: 2 MB
-r 读nor flash, -w 写命令
$ ./snander -r data.bin
SNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC <mcmcc@mail.ru>
Open CH347 device success.
spi device id: ef 40 15 0 0 (40150000)
Detected SPI NOR Flash: W25Q16JQ, Flash Size: 2 MB
READ:
Read addr = 0x0000000000000000, len = 0x0000000000200000
Read 100% [2097152] of [2097152] bytes
Elapsed time: 0 seconds
Status: OK
-e 擦除指令
$ ./snander -e
SNANDer - Serial Nor/nAND/Eeprom programmeR v.1.7.8 by McMCC <mcmcc@mail.ru>
Open CH347 device success.
spi device id: ef 40 15 0 0 (40150000)
Detected SPI NOR Flash: W25Q16JQ, Flash Size: 2 MB
ERASE:
Set full erase chip!
Erase addr = 0x0000000000000000, len = 0x0000000000200000
Please Wait......
Elapsed time: 5 seconds
Status: OK



使用特权

评论回复
呐咯密密| | 2024-9-9 17:16 | 显示全部楼层
硬件方面怎么处理的,SPI和IIC怎么处理的。有没有相关的开发板或者成品

使用特权

评论回复
评论
lzy871238103 2024-9-10 16:54 回复TA
硬件部分可参考:https://oshwhub.com/jsyzlyk/KILLER_3000 
xionghaoyun| | 2024-9-11 08:37 | 显示全部楼层
兄弟 应该放个打包文件在贴里的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

0

粉丝