Hi all, new to the forum (some Arduino experience).
I would like to put together a SPI Serial Flash programmer using off the shelf Arduino components.
Presently an USB -> Serial -> SPI -> Flash solution is working on a standard Mega/UNO configuration. Unfortunately it is unstable and have some bottleneck issues at the USB->Serial interface.
I would like to replace the USB->Serial with a Ethernet Shield and have Ethernet -> SPI -> Flash. I would like to know what kind of throughput I can expect? (keeping in mind most of the transactions will be straight streaming from Ethernet to SPI). Given that the Ethernet shield is also on the SPI bus I assume the context switching will be an issue, but if it performs better than the USB->Serial solution this will be fine (given that the Ethernet interface also has other advantages).
Idea:
You can add an (32K/128K?) EEPROM to the writer which is filled over the ethernet. If all data is in, you can flash over SPI with only one context switch.
You can implement a reflash command from EEPROM - e.g. to flash 1000 Arduini in a row - with the push of a button !
You can even patch the "flashing stream" from EEPROM with an auto incrementing serial number or so (pro version)
Because above concept has only one SPI switch it will probably depend on the speed of the EEPROM writes/reads.
What is the standard way to add a additional EEPROM/RAM to the board? i2C?
This will work, but I need to program 4MB and 8MB SPI flash ICs, so the actual speed of data coming down the Ethernet link is important.
Any idea if there are any benchmarks out there? Googled a bit, but can't find anything.
Another approach is to download the data to the SD card "slowly" and then just do the SPI SD card to SPI Flash everytime (assuming this is faster than the ethernet pipe).