AVR - predkosc programowania przez LPT i USB

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).
Reply to
Adam Dybkowski
Loading thread data ...

Witam!

Adam Dybkowski dnia 09-06-16 23:32 napisał(a):

Postaram się w sobotę zmierzyć prędkość programowania dla USBasp oraz AVR JTAGICE mkII w trybie ISP i JTAG. Musze tylko przelutować atmegę bo na wszystkich płytkach testowych które mam są wlutowane ATmega2561.

Reply to
vania

vania pisze:

Do testu dobra, nie zmieniaj.

Algorytm programowania ATmegi2561 przez ISP nie różni się prawie od ATmegi128. Jeżeli możesz to sprawdź też przez JTAG, może być nieco szybciej.

Reply to
Adam Dybkowski

Adam Dybkowski wrote: > Myślę, że programatory USB porozumiewające się dużo szybciej z

Moge do AVR32. Od razu powiem ze AVR One jest z 5x szybszy niz AVRISP. Zapodaj plik na priva (wytnij to co po 1111 w adresie jest).

Reply to
Jerry1111

Jerry1111 pisze:

Weź pierwszy z brzegu szum o rozmiarze całego Flasha tego procesora. Z braku szumu może być przycięty plik ZIP (przerobiony na Intel Hex jeżeli trzeba).

Reply to
Adam Dybkowski

Jakis PDF o dlugosci 424671 pisal sie do flasha lacznie z kasowaniem przez 12.5s

Aha - AVR One pisze: Connected to AVR ONE! 00000000004E version 2.8. Querying file system information. FPGA file avr32 version 1.9 loaded. JTAG clock is configured at 40.698 MHz.

Reply to
Jerry1111

Jerry1111 pisze:

Czyli średnio 33KB/s, wynik taki sobie bo tylko 2-3x lepszy niż stare AVRy.

Przy programowaniu przez JTAG 40MHz chyba prędkość interfejsu nie ma dużego znaczenia. No to w takim razie zadziwia jednak tak niska prędkość programowania procka (tylko 33KB/s). Myślałem wcześniej, że AVR32 to już hiperprędkość i będzie się zapisywać chociażby z wydajnością przeciętnego NAND Flash'a (5MB/s).

Reply to
Adam Dybkowski

Ano jest jak jest. Wlasnie sprawdzilem ze verify trwa podobie - znaczy programowanie i verify razem trwaja 25s, wiec moze to jednak cos z przesylem danych a nie szybkoscia procka. Nie mam jak sprawdzic teraz mkII (w robocie zostal) ale jest kilka razy wolniejszy niz One.

Reply to
Jerry1111

Bylo tak wolno bo w opcjach mialem ustawiony zegar na internal RC. Jak przestawilem na kwarc, to kasowanie, zapis i weryfikacja trwaja razem

9s. Same kasowanie i zapis trwa 5s, co daje 85kB/s.
Reply to
Jerry1111

Jerry1111 pisze:

No, to już coś!

5s programowania ponad 400KB. :)

Czy masz jakiegoś AVRa pod ręką (nie AVR32) do sprawdzenia, jak idzie programowanie atmelowych 8-bitowców przy pomocy AVR One? Ciekawe, na ile szybciej niż inne programatory AVRów.

Reply to
Adam Dybkowski

;-) Tylko czemu te cholerstwo takie drogie jest.

Nie mam - ja wielki wrog malych AVR ;-) Dopiero AVR32 przekonalo mnie do Atmela - a i to jest kur*&* problem. Kiedys we wczesnych wersjach Cyclone1 byl problem lock-up przy wolnym narastaniu zasilania. Dokladnie to samo jest w AVR32 - przynajmniej w tych ktore uzywam.

Reply to
Jerry1111

Witam!

Adam Dybkowski dnia 09-06-17 21:41 napisał(a):

Na razie tak na szybko sprawdziłem na Dellu D610 i coś jest nie tak programowanie 256kB trwa ok 2min:

ISP Programmer 1.2.0.48 pod WinXP programator ByteBlaster: Programowanie 2,12kB/s, odczyt 4,34kB/s

AVRDUDE minimalnie szybciej programuje 2,38kB/s natomiast odczyt to ma tragiczny 1,26kB/s

jtagiceii.exe pod WinXP JTAGICE MKII (SPI) Programowanie 2,03kB/s, odczyt 2,05kB/s

W sobotę sprawdzę jeszcze pod Win98SE bo coś mi się wydaje że z tym laptopem coś nie tak jest. Pamiętam że jak dawniej programowałem ATmega128 to trwało to dużo szybciej. Ostatnio tylko wgrywam 3kB bootlodery więc nie zauważyłem zmniejszenia prędkości programowania.

Reply to
vania

vania pisze:

Jakoś tragicznie wolno. Wybrałeś w ISP Programmer taktowanie "FASTEST"? Zobacz, w ilu % jest zajęty procesor komputera w trakcie programowania.

A tutaj tym bardziej nie chce mi się wierzyć. Czy masz innego peceta do testów?

Reply to
Adam Dybkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.