FDxICSP 1.70 - 22.2kB/s - New Universal AVR MCU programmer - AVR910 new benchmark record fast Atmel
News for 1.70:
-Stable and error free
-New maximum upload speed achieved on an atmega128 at 22.2kB/s (1kB/s improvement)
UART : At 1Mbps it takes 1/(1000000/((2+8)*(256+3+4)))=0.00263s to transfer 256 bytes
SPI : At 4Mhz, it takes 1/(4000000/(256*4*8))=0.002048s to transfer that same 256
Flash: It takes 3.7-4.5ms to write to 1 page or 256 bytes
Total time = 0.00263+0.002048+0.0045 = 0.009178s
so 256/0.009178=27892 bytes per second is the ideal near maximum upload speed; 22.2kB/s is slow, but still not bad. My bootloader FDxboot 1.61x with atmega128 has achieved 36.1kB/s;
The true bottleneck is SPI, even thought it looks so smallest 2ms, but that is at 4MHz. A target MCU needs to been on a 16MHz clock to be able to operate at 4Mhz, so a typical 8MHz MCU would be on 2MHz or even 1MHz to be on the safe side. This is the time that can't not be optimized. Therefore with a slower target MCU, the upload speed would be much slower.
In conclusion, so far FDxICSP 1.70 can upload at the rate from about 10kB/s to 22kB/s depending on the page size of the MCU and it's CPU clock. It's still much better than an USBasp with an flat average upload speed of about 2kB/s;