CuVoodoo

the sorcery of copper

User Tools

Site Tools


dump_spi_flash

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
dump_spi_flash [2021/04/13 11:59] – finish CH341 part kingkevindump_spi_flash [2021/04/13 18:14] – [BX48] kingkevin
Line 78: Line 78:
 {{:spi_flash:adapter_1.8v.jpg?0x150|}} {{:spi_flash:adapter_1.8v.jpg?0x150|}}
  
 +==== MiniPRO ====
  
 +The [[http://autoelectric.cn/EN/TL866_main.html|TL866A]] (aka. MiniPRO) is the next step up, and still cheap (< $30).
 +
 +{{:spi_flash:tl866a.jpg?0x200|}}
 +
 +Advantages:
 +
 +  * supports 3.3-6.5V VCC, allowing to properly power 3.3V and 5.0V flash
 +  * has over-current protection, in case you inserted the chip wrongly
 +  * does signature checking (this is just a software check though)
 +  * supports up to 21V VPP and has flexible pin configuration, allowing plenty of other EEPROM chips or MCU to be flashed
 +
 +Disadvantages:
 +
 +  * does not support 1.8V (you can still use the same adapter as for the CH341A). the newer TL866II+ claims to support 1.8V, but from the [[https://github.com/radiomanV/TL866/raw/master/docs/TL866II.pdf|schematic]] I don't see how they do this properly
 +  * also slow (~ 100 kbyte/s)
 +
 +For more information about the device (including reversed schematic), see [[https://proghq.org/wiki/index.php/TL866|this wiki]] or [[https://github.com/radiomanV/TL866|this repo]].
 +
 +To dump SPI flash, we will use [[https://gitlab.com/DavidGriffith/minipro/|minipro]].
 +
 +<code>
 +# search for the right part using the top marking on the chip
 +minipro --search 25q32bv
 +
 +Found TL866A 03.2.86 (0x256)
 +W25Q32BV
 +W25Q32BV@WSON8
 +W25Q32BV@SOIC8
 +W25Q32BV@SOIC16
 +W25Q32BV(OTP)
 +W25Q32BV(OTP)@WSON8
 +W25Q32BV(OTP)@SOIC8
 +W25Q32BV(OTP)@SOIC16
 +
 +
 +# read the device ID to be sure the connection work (it's not get_id as in the help, but read_id)
 +minipro --device 'W25Q32BV@SOIC8' --read_id
 +Found TL866A 03.2.86 (0x256)
 +Chip ID OK: 0xEF4016
 +
 +
 +# alternatively, let it find which 25xx SPI 8-pin flash it is
 +minipro --auto_detect 8
 +
 +Found TL866A 03.2.86 (0x256)
 +Autodetecting device (ID:0xEF4016)
 +S25FL032K@SOIC8
 +W25Q32@MLP8
 +W25Q32(OTP)@MLP8
 +W25Q32BV
 +W25Q32BV@WSON8
 +W25Q32BV@SOIC8
 +W25Q32BV(OTP)
 +W25Q32BV(OTP)@WSON8
 +W25Q32BV(OTP)@SOIC8
 +W25Q32FV
 +W25Q32FV@WSON8
 +W25Q32FV@SOIC8
 +W25Q32FV(OTP)
 +W25Q32FV(OTP)@WSON8
 +W25Q32FV(OTP)@SOIC8
 +W25Q32V@MLP8
 +W25Q32V(OTP)@MLP8
 +17 device(s) found.
 +
 +
 +# now read the memory
 +minipro --device 'W25Q32BV@SOIC8' --read spi.bin
 +
 +Found TL866A 03.2.86 (0x256)
 +Chip ID OK: 0xEF4016
 +Reading Code...  40.53Sec  OK
 +</code>
 +
 +==== BX48 ====
 +
 +The [[https://www.batronix.com/shop/programmer/BX48/index.html|Batronix BX48 Batego]] is my high end programmer.
 +
 +{{:spi_flash:bx48.jpg?0x200|}}
 +
 +Yes, it is expensive (> $500), but the hardware is good, and what you pay for is the support.
 +And I have to say that it is excellent.
 +Is a chip missing?
 +Just ask them and they will swiftly add support for it.
 +
 +Note: This device is obsolete now, replaced by the [[https://www.batronix.com/shop/programmer/BX48/batego-II.html|BX48 Batego II]].
 +The main difference is that the Batego I does not support VPP > 15V (only required by very old NMOS EPROM).
 +It still seems to be supported though.
 +
 +The software is [[https://www.batronix.com/shop/software/prog-express/index.html#tabs-4|Prog-Express]], and there is even support for Linux (a bit lagging the Windows release).
 +There is an auto-detect function, but I am too concerned it accidentally damages the chip.
 +Therefor I still select the target chip by hand.
 +
 +On my setup it is not able to open the file dialog to allow me setting where I want to load/save the file (using version 3.8.8).
 +To circumvent the issue I open the built-it hex-editor.
 +There I can save read/write the data content, and save/load it.
 +
 +To get the latest chip database (particularly if the Linux release it lagging), here how I update it:
 +
 +<code>
 +wget https://www.batronix.com/downloads/ChipDBUpdate/ChipDB.zip
 +unzip ChipDB.zip
 +sudo mv /usr/lib/prog-express/ChipDB.db3 /usr/lib/prog-express/ChipDB.db3.bak
 +sudo mv ChipDB.db3 /usr/lib/prog-express/ChipDB.db3
 +rm ChipDB.zip
 +</code>
dump_spi_flash.txt · Last modified: 2024/01/07 17:49 by 127.0.0.1