Sorry for the lack of updates, I'm pretty busy everywhere but I don't forget this project ! Thank you everybody for (still) following it :-) Your interest motivates me !
For another application, I just got a TL866 USB universal programmer and it's working rather well. Most of the time. I'm testing some W25Q128 chips I just bought for a project and several would fail when writing the chip with all 0s. Repeatedly on the same chips, but not others of the same lot. Weird. Is this batch of chip mixed with bad apples ?
Fortunately I have the Pi SPI Flasher and I found that the chips have been properly written. So what happened ? It might be the TL866 as well because my algorithm finds no error. Maybe the TL866 tries to be too agressive ? Why are there reading errors on some chips and not others ?
I've also run another simple test:
$ time ./update_SPI_Flash zero16M.hyx verbose DIV 24 ... Writing 256 bytes to address FFFD00 Writing 256 bytes to address FFFE00 Writing 256 bytes to address FFFF00 * Pass 2 Checking the sector Checking for page to write... Sector : OK with 2 passes. 16777216 bytes written. fermeture SPI Setting pins 8 9 10 11 22 as input Flash programming OK real 2m41.221s user 1m49.320s sys 0m16.060s
(note: it was run over ssh which uses some CPU...)
Whereas the TL866 took 7 minutes 23 seconds to do the same task.
I guess I will not use the USB programmer for this kind of SPI chips (particularly when I have tens of chips to test). I also see that my programming algorithm is better/smarter than the TL's :-) It's both faster and more accurate.
More reasons to continue this project ;-)