刷路由固件手里没编程器就网上到处找后来发现了开源编程器
http://www.flashrom.org 然后用stm8实现了个适配器 这些是几个月前的事了 烧写了flash后就丢那了 今天又要烧芯片整理了一下修正了一个bug 顺手发上来吧 因为很简单所以也没有电路图, 一片STM8S103F3最小开发板即可
- MCU频率 16MHz
- SPI 波特率 fMASTER/2 = 8Mhz
- UART 波特率 fMASTER/16 = 1Mhz
- MCU 外部链接
- STM8S103F -> xx
- PD5 (UART1_TX 2) -> PL-2303HX RX
- PD6 (UART1_RX 3) -> PL-2303HX TX
- PC4 (14) -> LED RED
- PC3 (13) -> LED GREEN
- PD3 (20) -> SPI FLASH SPI_CS (1)
- PC7 (SPI_MISO 17) -> SPI FLASH SPI_MISO (2)
- VCC -> SPI FLASH wp# (3)
- GND -> SPI FLASH GND (4)
- PC6 (SPI_MOSI 16) -> SPI FLASH SPI_MOSI (5)
- PC5 (SPI_SCK 15) -> SPI FLASH SPI_CLK (6)
- VCC -> SPI FLASH HOLD (7)
- VCC -> SPI FLASH VCC (8)
探测芯片
- flashrom -p serprog:dev=\\.\COM3:1000000
- Calibrating delay loop... OK.
- serprog: Programmer name is "serprog-STM8"
- Found Winbond flash chip "W25Q16.V" (2048 kB, SPI) on serprog.
- No operations were specified.
读取flash并保存到文件
flashrom -p serprog:dev=\\.\COM3:1000000 -c W25Q16.V -r r:\file-to-save.bin
- Calibrating delay loop... OK.
- serprog: Programmer name is "serprog-STM8"
- Found Winbond flash chip "W25Q16.V" (2048 kB, SPI) on serprog.
- Reading flash...
- read flash 2097152 Byte 2048.00KB Time 21 sec 97.52KB/s
- done.
擦除flash
- Calibrating delay loop... OK.
- serprog: Programmer name is "serprog-STM8"
- Found Winbond flash chip "W25Q16.V" (2048 kB, SPI) on serprog.
- Erasing and writing flash chip...
- erase and write flash 2097152 Byte 2048.00KB Time 39 sec 52.51KB/s
- Erase/write done.
写flash
flashrom -p serprog:dev=\\.\COM3:1000000 -c W25Q16.V -w r:\340G+V3.1-002719881994编程器备份.bin
- Calibrating delay loop... OK.
- serprog: Programmer name is "serprog-STM8"
- Found Winbond flash chip "W25Q16.V" (2048 kB, SPI) on serprog.
- Reading old flash chip contents... done.
- read flash 2097152 Byte 2048.00KB Time 21 sec 97.52KB/s
- Erasing and writing flash chip...
- erase and write flash 2097152 Byte 2048.00KB Time 213 sec 9.62KB/s
- Erase/write done.
- Verifying flash... VERIFIED.
读还可以写就比较悲催了, 临时对付一下还不错.
固件与程序