cqsrmxxzyx 发表于 2014-4-30 16:51:27

经验分享: 用USB Blaster读写SPI Flash,支持大量型号!

本帖最后由 cqsrmxxzyx 于 2014-4-30 16:52 编辑

最近给路由器换flash,需要给新的flash写固件,型号是W25Q64,在网上搜索编程器资料,看到一个叫flashrom的软件在最新版本中增加了对USB Blaster适配器的支持.
赶紧焊了一个简易测试座,与blaster连上,敲命令,成功!

写入中...


鳄鱼夹+转接板做的测试座



电路连接参照其源代码中的描述如下:
/*
* Device should be connected as per "active serial" mode:
*
*      +---------+------+-----------+
*      | SPI   | Pin|Altera   |
*      +---------+------+-----------+
*      | SCLK    | 1    | DCLK      |
*      | GND   | 2,10 | GND       |
*      | VCC   | 4    | VCC(TRGT) |
*      | MISO    | 7    | DATAOUT   |
*      | /CS   | 8    | nCS       |
*      | MOSI    | 9    | ASDI      |
*      +---------+------+-----------+
*
* See also the USB-Blaster Download Cable User Guide: http://www.altera.com/literature/ug/ug_usb_blstr.pdf
*/
flash上的/WP和/HOLD直接上拉,另外还得有3.3V的外部供电(JTAG口是不能供电的)

除了我这个芯片外,flashrom还支持很多芯片,详见它的wiki: http://flashrom.org/Supported_hardware#Supported_flash_chips
理论上其中列出的SPI接口的flash都可以用这个方法

注意flashrom从0.9.7才开始支持blaster,如果二进制包版本不够可以自己编译,我是在linux下编译的,需要先安装libpci,libftdi,libusb

最后配一个命令运行效果
sudo flashrom -p usbblaster_spi -w mw151rm_8M.bin
flashrom v0.9.7-r1781 on Linux 3.13.0-24-generic (x86_64)
flashrom is free software, get the source code at http://www.flashrom.org

Calibrating delay loop... OK.
Found Winbond flash chip "W25Q64.V" (8192 kB, SPI) on usbblaster_spi.
Reading old flash chip contents... done.
Erasing and writing flash chip... Erase/write done.
Verifying flash... VERIFIED.

开源世界果然有不少好东西啊:)

68336016 发表于 2014-4-30 16:54:15

usbasp也可以下载SPI FLASH{:lol:}

cqsrmxxzyx 发表于 2014-4-30 16:56:30

68336016 发表于 2014-4-30 16:54
usbasp也可以下载SPI FLASH

但是速度呢?

dragonbbc 发表于 2014-4-30 17:02:32

mark,以后折腾的时候用得上

cmheia 发表于 2014-4-30 17:08:54

{:lol:}mark,spi的买个ch341不贵,skygz写的上位机

justin_n 发表于 2014-4-30 18:15:46

我用过w25q128发现一开始可以用,但后来怎么也烧不进去。。

Nuker 发表于 2014-4-30 19:02:01

USB Blaster的JTAG模式还支持调试ARM CPU呢,OpenOCD和urJTAG都支持USB Blaster硬件

cqsrmxxzyx 发表于 2014-4-30 19:14:27

Nuker 发表于 2014-4-30 19:02
USB Blaster的JTAG模式还支持调试ARM CPU呢,OpenOCD和urJTAG都支持USB Blaster硬件

是的.
我这个usb blaster实际上是做的openjtag,配合openocd的.
同时在cpld合并了usb blaster的逻辑,通过一个外部跳线切换.
比较遗憾的是openocd似乎不支持AVR

tiger5 发表于 2014-4-30 20:01:10

{:victory:}{:victory:}{:victory:}

pitolan 发表于 2014-4-30 21:56:52

擦、写、校 一共好多时间 ?

QQ373466062 发表于 2014-5-1 09:55:20

本帖最后由 QQ373466062 于 2014-5-1 10:08 编辑

昨天在淘宝买了一个,但是快递太慢了,看店家的烧写截图也很慢,自己用STM32做了一个烧写MX25L128的烧录器,等整理好了,放上来

cqsrmxxzyx 发表于 2014-5-1 10:10:31

pitolan 发表于 2014-4-30 21:56
擦、写、校 一共好多时间 ?

8M文件,整个写入校验过程花了差不多5分钟吧,没有仔细测量.

xiaoxu191 发表于 2014-5-1 11:46:59

1)感谢楼主分享;
2)以前买过CH341做的,硬件是可行的,但是上位机不好用;5楼介绍的skygz的上位机可能不错,鼓励原创;
3)在淘宝买了另外一个,也是广州的,店铺的页面很华丽,用STM323C8T6做的,MCU带USB,感觉上位机软件和硬件都好,烧写速度较快,价格38元,还不错。

kneken 发表于 2014-5-2 18:32:07

mark{:handshake:}

wdluo 发表于 2014-5-2 19:11:28

cqsrmxxzyx 发表于 2014-5-1 10:10
8M文件,整个写入校验过程花了差不多5分钟吧,没有仔细测量.

速度太慢也恼火,可以试试纬图的USB-SPI

cqsrmxxzyx 发表于 2014-5-2 20:46:24

wdluo 发表于 2014-5-2 19:11
速度太慢也恼火,可以试试纬图的USB-SPI

当然,专用工具性能好
但如果只是偶尔用一下,像usb blaster这种通用的工具更方便

xwkm 发表于 2014-5-8 13:12:16

收藏一下~

andmain999 发表于 2014-6-1 09:57:53

感谢分享{:lol:}

zgxcom123 发表于 2014-6-1 10:19:50

很给力的东西啊!!换路由专用,哈哈!!
页: [1]
查看完整版本: 经验分享: 用USB Blaster读写SPI Flash,支持大量型号!