Adam Dybkowski
Guest
Tue Jun 16, 2009 10:32 pm
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.4

:
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).
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
vania
Guest
Wed Jun 17, 2009 9:14 am
Witam!
Adam Dybkowski dnia 09-06-16 23:32 napisał(a):
Quote:
[...]
LPT (ISP Programmer 1.2.0.4

:
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?
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.
--
Pozdrawiam,
Rafał
Adam Dybkowski
Guest
Wed Jun 17, 2009 8:41 pm
vania pisze:
Quote:
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.
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.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Jerry1111
Guest
Wed Jun 17, 2009 9:21 pm
Adam Dybkowski wrote:
Quote:
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?
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).
--
Jerry1111
Adam Dybkowski
Guest
Thu Jun 18, 2009 1:36 am
Jerry1111 pisze:
Quote:
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?
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).
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).
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Jerry1111
Guest
Thu Jun 18, 2009 9:19 pm
Adam Dybkowski wrote:
Quote:
Jerry1111 pisze:
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?
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).
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).
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.
--
Jerry1111
Adam Dybkowski
Guest
Thu Jun 18, 2009 9:38 pm
Jerry1111 pisze:
Quote:
Jakis PDF o dlugosci 424671 pisal sie do flasha lacznie z kasowaniem
przez 12.5s
Czyli średnio 33KB/s, wynik taki sobie bo tylko 2-3x lepszy niż stare AVRy.
Quote:
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.
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).
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Jerry1111
Guest
Thu Jun 18, 2009 10:14 pm
Adam Dybkowski wrote:
Quote:
Jerry1111 pisze:
Jakis PDF o dlugosci 424671 pisal sie do flasha lacznie z kasowaniem
przez 12.5s
Czyli średnio 33KB/s, wynik taki sobie bo tylko 2-3x lepszy niż stare AVRy.
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.
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).
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.
--
Jerry1111
Jerry1111
Guest
Thu Jun 18, 2009 10:19 pm
Adam Dybkowski wrote:
Quote:
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).
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.
--
Jerry1111
Adam Dybkowski
Guest
Thu Jun 18, 2009 10:38 pm
Jerry1111 pisze:
Quote:
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).
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.
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.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Jerry1111
Guest
Thu Jun 18, 2009 11:22 pm
Adam Dybkowski wrote:
Quote:
Jerry1111 pisze:
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).
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.
No, to już coś!
5s programowania ponad 400KB.
Tylko czemu te cholerstwo takie drogie jest.
Quote:
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.
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.
--
Jerry1111
vania
Guest
Fri Jun 19, 2009 8:31 am
Witam!
Adam Dybkowski dnia 09-06-17 21:41 napisał(a):
Quote:
vania pisze:
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.
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.
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.
--
Pozdrawiam,
Rafał
Adam Dybkowski
Guest
Fri Jun 19, 2009 7:46 pm
vania pisze:
Quote:
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
Jakoś tragicznie wolno. Wybrałeś w ISP Programmer taktowanie "FASTEST"?
Zobacz, w ilu % jest zajęty procesor komputera w trakcie programowania.
Quote:
jtagiceii.exe pod WinXP JTAGICE MKII (SPI)
Programowanie 2,03kB/s, odczyt 2,05kB/s
A tutaj tym bardziej nie chce mi się wierzyć.
Czy masz innego peceta do testów?
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.