Ostatnio na grupie padło pytanie nt prędkości programowania AVRów przy pomocy programatorów USB. Zmierzyłem jak to jest w przypadku najprostszego kabelka na LPT zgodnego z STK200/300 (z buforem 74LVC245) obsługiwanego przez ISP Programmer w porównaniu z programatorem na USB (ze sprzętowym konwerterem USB-UART FT232R) gadającego w protokole STK500v2 z AVR Studio. Testowi podlegał odczyt i programowanie 128KB pamięci Flash mikrokontrolera ATmega128 popędzanego kwarcem 14,7456 MHz. Ustawiłem w obu programach jak najszybszą transmisję ISP (AVR Studio:
1,843MHz; ISP Programmer: FASTEST). Zapisywałem plik 128KB szumu. Przed każdym programowaniem cała pamięć Flash była kasowana.LPT (ISP Programmer 1.2.0.48): odczyt 15,10s (czyli ok. 8,48KB/s) programowanie 33,74s (niewyłączalna weryfikacja, ok. 3,79KB/s)
USB (AVR Studio 4.16.638): odczyt 22,60s (ok. 5,66KB/s) programowanie 14,92s (bez kasowania ani weryfikacji, ok. 8,58KB/s) programowanie z weryfikacją 26,11s (bez kasowania, ok. 4,90KB/s)
W moim przypadku protokół STK500v2 stworzony dla normalnych portów COM ograniczał prędkość komunikacji AVR Studio z programatorem do 115200 bps. Myślę, że programatory USB porozumiewające się dużo szybciej z komputerem (np. AVRISP mkII, AVR One! lub STK600) powinny radzić sobie jeszcze szybciej. Ktoś ma i mógłby zmierzyć czasy?
I dla porównania: czy ktoś mógłby też zmierzyć te prędkości dla najtańszych programatorów USB LowSpeed, gdzie całe USB obsługuje programowo mały AVRek?
BTW: Myślę, że dopiero programatory z USB 2.0 HighSpeed mogłyby dojść do max. wydajności ograniczanej już tylko przez programowany scalak.
480Mb/s oczywiście tu niepotrzebne, ale przy okazji znacznie mniejsze są opóźnienia pakietów niż przy prędkości FullSpeed (12Mb/s). Taki FT2232H to byłby potwór. :) Procesor w takim programatorze nawet nie jest potrzebny (można wykorzystać sprzętowy deserializer MPSSE).