Arduino mega 2560 i problem z wgraniem bootloadera...

May 04, 2012 7 Replies

Czesc :)



Mam dziwny problem z wgraniem bootloadera do plytki zgodnej z Arduino 2560. (Oryginal bede mial po niedzieli i wtedy porownam).



Probowalem wgrywac roznie, w koncu z linii polecen daje najlepsze wyniki.



Wgrywam tak:



avrdude.exe -b 115200 -p m2560 -P com1 -c usbasp -v -e -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m avrdude.exe -b 115200 -p m2560 -P com1 -c usbasp -v -e -U flash:w:stk500boot_v2_mega2560.hex -U lock:w:0x0F:m



Bootloader wgrywa sie, program zglasza blad kontroli, ale to jak doczytalem gdzies w necie jest normalne.



Plytka dziala. Wgrywam wlasciwy soft i rowniez dziala. ALE! Ponowne wgranie softu wlasciwego zabija plytke.



Na moje, niefachowe oko wyglada to jakby za drugim razem zamazywany byl bootloader pomimo ustawienia Lock Bitu 0F.



Programator mam taki:

formatting link
Dotychczas programowalem nim Atmegi 328 i wszystko gralo. Fakt, ze akurat nie wgrywalem bootloaderow tylko finalny soft.



Ma ktos moze pomysl o co chodzi? Przyznam, ze jestem zielony jak szczypior ;)



Z gory dzieki za pomoc



Jakub


Tak an szybko to imo przy wgrywaniu przez programator robisz chip erase a powinieneś czyścić tylko określone strony.

Przy czym nie rozumiem po co wgrywasz program programatorem skoro masz już zainstalowany bootloader - powinieneś programować za jego pomocą.

Programatorem wgrywam bootloader.

Wlasciwy program juz przez USB. Za pierwszym wgraniem (programu przez USB) wszystko gra, za drugim plytka umiera.

q

Większość działa tak, że żeby przejść do bootloadera trzeba spełnić jakiś warunek:

- wymusić na pinie stan niski/wysoki

- zresetować 2 razy procesor w krótkim czasie

- (bardzo rzadko) odpalić bootloader z kodu użytkownika

- etc

No i jeszcze bootloader mógł być zbudowany z wektorem przerwań w 0 zamiast w odpowiedniej lokacji, albo nie ma ustawionego odpowiedniego fuse bitu, żeby procesor startował z bootoadera, etc.

A w ogóle czemu nie używasz środowiska arduino?

U¿ytkownik "Michoo" <michoo snipped-for-privacy@vp.pl napisa³ w wiadomo¶ci news:jo17ui$acn$ snipped-for-privacy@mx1.internetia.pl...

¯eby u¿ywaæ ¶rodowiska arduino to chyba najpierw musi w procku bootloader umie¶ciæ.

U¿ytkownik "Jakub Jewu³a" snipped-for-privacy@skanowanie.com.pl> napisa³ w wiadomo¶ci news:jo0skt$47b$ snipped-for-privacy@inews.gazeta.pl...

Porównaj fusebity z prockiem w którym tak siê nie dzieje. Czy to na pewno bootloader od ATMEGA2560, a nie np. do ATMEGA1280?

ATMEGA2560 pomimo wspólnego datasheet-a do¶æ sporo siê ró¿ni od 1280. Dodatkowe mechanizmy umo¿liwiaj±ce u¿ywanie flasha powy¿ej 128K. Np. wiêcej stosu zu¿ywa na adresy powrotu (ka¿dy adres powrotu to 3 bajty na stosie), co skutkuje wiêkszym zu¿yciem stosu i wyd³u¿eniem zapisu/¶ci±gania adresu ze stosu o 2 cykle zegarowe.

Wydawało mi się, że arduino ma opcję ładowania bootloadera. A także po zapakowaniu bootloadera arduino powinno wiedzieć co zrobić,żeby wykonać reset do bootloadera.

Ma ale wymaga jakiegos koszernego programatora a ja mam jaki mam. Po niedzieli bede mial druga plytke Arduino i jej uzyje jako programatora - jest taka teoretyczna mozliwosc.

q

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required