Nowe atmegi328p - problem z wgraniem bootloadera.

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
pablo7890
Młodszy majsterkowicz
Posty: 12
Rejestracja: 5 cze 2014, 20:02

Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: pablo7890 » 3 lip 2015, 09:07

Wczoraj odebrałem dwie nowe ATmegi328P. Z tego, co mi wiadomo oryginalnie te konkretne sztuki są bez bootloadera. Podłączyłem jedną do USBasp, odpaliłem mkavrcalculator i poprawnie wykrył atmegę. Następnie posiłkowałem się poradnikiem z tego linku: arduino cc/en/Main/Standalone (na samym końcu sekcja "Time to burn!"), aby wypalic bootloader. Jednak Arduino IDE najwyraźniej odmawia współpracy, gdyz dostaję taki komunikat:
Screen Shot 07-03-15 at 07.23 AM.PNG
Próbowałem wgrać przykładowego "blinka", ale wtedy mam coś takiego:
Screen Shot 07-03-15 at 07.24 AM.PNG
Ponownie spróbowałem podłączyć się pod mkavrcalculator, ten jednak już nie wykrywa mikrokontrolera, ale wywala konsolę avrdude'a z błędami:
Screen Shot 07-03-15 at 07.22 AM.PNG
Również próbowałem włożyć kość do Arduino Uno, jednak też nie mogę jej nijak zaprogramować. Obie ATmegi są obecnie w tym samym stanie, próbowałem z dwoma. Co w takiej sytuacji można zrobić, by wypalić ten bootloader i móc ją programować? Serdeczne dzięki za wszelkie odpowiedzi :)
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
dzasek
Młodszy majsterkowicz
Posty: 44
Rejestracja: 21 sty 2015, 09:24

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: dzasek » 3 lip 2015, 09:37

Arturr300
Starszy majsterkowicz
Posty: 307
Rejestracja: 16 paź 2013, 17:24

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: Arturr300 » 3 lip 2015, 09:40

1. Sprawdź połączenia - jak źle podłączysz to wtedy taki błąd może się wyświetlić.
2. Daj kwarc 8Mhz lub 16MHz - mogą mieć ustawione fusebity na zewnętrzny kwarc i wtedy jeżeli nie masz kwarcu też takie coś z tego co pamiętam się pojawia :)
stiven
Złota rączka
Posty: 1596
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: stiven » 3 lip 2015, 11:52

Nie wgrywaj sketchów, zanim nie wgrasz bootloadera/fusebitów, bo w ten sposób możesz zablokować atmegę i nic już z nią nie zrobisz.

Jeśli chcesz używać atmegę osobno, do tego bez kwarcu, nie na płytce arduino, to nie możesz wgrywać bootloadera arduino uno (chodzi o niewłaściwe ustawienia fuse bitów). Możesz to zrobić tylko wtedy, kiedy zrobisz imitację płytki arduino, czyli podłączysz do atmegi kwarc 16Mhz i wgrywać będziesz programy przez przejściówkę FTDI FT232. W innym przypadku (wgrywanie przez usbasp) musisz przygotować arduino ide do wgrania bootloadera/programów pod atmegę328, tutaj masz instrukcję(tytuł programowanie atmeg za pomocą arduino, jednak przygotowanie arduino ide do programowania przez usbasp robi się w ten sam sposób): http://majsterkowo.pl/forum/programowan ... -t280.html

Jeśli masz na płytce usbasp zworkę slow, to musi byś zwarta na czas wgrywania bootloadera z arduino ide. Jeśli masz nowsze usbasp bez tej zworki, to nie wgrasz bootloadera przez arduino ide do "świeżej" atmegi, zanim w mkavrcalculator nie ustawisz odpowiednio fuse bitów (instrukcja http://majsterkowo.pl/forum/post20579.html#p20579).
Jeśli do atmegi będziesz wgrywał programy tylko przez usbasp, to później nie musisz wgrywać już bootloadera tak na prawdę, bo bootloader jest niezbędny tylko przy wgrywaniu przez przejściówkę FTDI. Fuse bity muszą być odpowiednio ustawione, a przy wgrywaniu bootloadera też są ustawiane.

Przygotuj arduino ide do atmegi (i tak musisz, żeby potem wgrywać programy przez usbasp), spróbuj wgrać bootloader, jeśli nie pójdzie, to ustaw fusebity przez mkavrcalculator z ustawioną niską prędkością:
http://forum.atnel.pl/_obrazki/o/54_24e ... 10da1e.jpg
(ta zaznaczona na zdjęciu powinna być dobra)
Po wgraniu odczytaj fuse bity, jeśli się zgadzają, to już możesz wgrywać sketche.

Ściągnij sobie arduino ide w wersji 1.0.5 albo 1.0.6. W nowszych wersjach programowanie atmeg nie działa.
pablo7890
Młodszy majsterkowicz
Posty: 12
Rejestracja: 5 cze 2014, 20:02

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: pablo7890 » 3 lip 2015, 14:36

@dzasek
Dzięki za link. Spróbowałem wszystkiego, co w tym temacie napisano, ale nadal bez skutku. Nic się nie zmieniło.

@Arturr300
Połączenia sprawdzałem już minimum 5 razy, wszystko jest ok :)
Próbowałem z kwarcem i bez - nie robi różnicy.

@stiven
Na początku dziękuję za tak obszerną wypowiedź, dzięki której sporo sobie uporządkowałem.
Wyjaśnię jeszcze jedną kwestię. Te ATmegi chcę ustawić tak, aby chodziły wsadzone w Arduino Uno, nie osobno.
Arduino IDE mam już odpowiednio przygotowane zgodnie z Twoimi zaleceniami z linków.
Z tego, co zrozumiałem, teraz muszę wgrać bootloader do kości wybierając w Arduino:
Narzędzia -> Płytka -> ATmega328P @ 16 MHz
oraz
Narzędzia -> Programator -> USBasp
a następnie dać Wypal bootloader.
Mam taką wersję USBaspa:
2015-07-03 14.32.13.jpg
Gdzieś doczytałem, że aby spowolnić na nim zegar muszę zewrzeć zworkę oznaczoną JP3, zgadza się?

Prosiłbym o potwierdzenie mojego toku myślowego.


PS
Nie ma możliwości, żeby wgrać bootloader na atmegę, gdy ta będzie siedziała w arduino?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
pablo7890
Młodszy majsterkowicz
Posty: 12
Rejestracja: 5 cze 2014, 20:02

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: pablo7890 » 3 lip 2015, 14:51

stiven pisze: Przygotuj arduino ide do atmegi (i tak musisz, żeby potem wgrywać programy przez usbasp), spróbuj wgrać bootloader, jeśli nie pójdzie, to ustaw fusebity przez mkavrcalculator z ustawioną niską prędkością:
forum.atnel pl/_obrazki/o/54_24e95d4d60530abb52630d8d9010da1e.jpg
(ta zaznaczona na zdjęciu powinna być dobra)
Po wgraniu odczytaj fuse bity, jeśli się zgadzają, to już możesz wgrywać sketche.
Nie mogę ani odczytać ani wgrać fusebitów. Przy próbie wgrania za pomocą:
avrdude -p atmega328p -c usbasp -P usb -B 8 -u -U lfuse:w:0xE1:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m
otrzumuję:

Kod: Zaznacz cały

avrdude: set SCK frequency to 93750 Hz
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.
Chciałem odczytać je:
avrdude -c usbasp -p m328p -U hfuse:r:-:h -U lfuse:r:-:h
To dostałem:

Kod: Zaznacz cały

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.
Czy to znaczy, że kości są "martwe"?
Awatar użytkownika
dzasek
Młodszy majsterkowicz
Posty: 44
Rejestracja: 21 sty 2015, 09:24

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: dzasek » 3 lip 2015, 14:58

Ustaw w mkavrcalculatorze fusebity dla arduino uno tu jest o nich mowa http://forum.arduino.cc/index.php?topic=71580.0 , poźniej włóż atmege do uno i wypal bootloader
stiven
Złota rączka
Posty: 1596
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: stiven » 3 lip 2015, 15:07

Tak, jak pisze dzasek, wgrywaj fusebity w mkavrcalculatorze, jak nie idzie na jednej prędkości, to sprawdzaj na innych. Jak na żadnej nie pójdzie, to sprawdź ze zworką na JP3.
Jak te atmegi maja być na płytce arduino, to w arduino ide wybierz arduino uno i wgraj bootloader. Jedno i drugie możesz robić na płytce arduino.
Możesz spróbować wgrać bootloader od razu przy zwartej zworce JP3, no ale jak nie pójdzie no to najpierw mkavrcalculator.
Ostatnio zmieniony 3 lip 2015, 15:13 przez stiven, łącznie zmieniany 1 raz.
stiven
Złota rączka
Posty: 1596
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: stiven » 3 lip 2015, 15:11

A skąd ty wziąłeś te ustawienia 0xE1 i 0xD9? Na pewno są złe, a jak źle ustawisz, to może się zablokować atmega.
pablo7890
Młodszy majsterkowicz
Posty: 12
Rejestracja: 5 cze 2014, 20:02

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: pablo7890 » 3 lip 2015, 15:52

Nie, nie, próbowałem wgrać Low - 0xff, high - 0xde, ext - 0x05. Tak jak pisałem wyżej, nie mogę ich ustawić przy użyciu mkavrcalca, bo nie może odczytać atmegi. Jak klikam "Check connected AVR" po prawej stronie wyskakuje avrdude error a w konsoli pojawia się cały czas:

Kod: Zaznacz cały

avrdude: set SCK frequency to 93750 Hz
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 1 
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.
tylko, że zmieniają się prędkości w pierwszej linijce - wypróbowałem wszystkie, jakie na liście są dostępne.
To tyle, jeśli chodzi o USBasp (jak podłączam ATTiny85, którego akurat mam pod ręką, wszystko jest OK). Natomiast, jak wkładam kość do Arduino, jak chcę ustawić fusy mam:

Kod: Zaznacz cały

avrdude: stk500_getsync(): not in sync: resp=0x00
stiven
Złota rączka
Posty: 1596
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: stiven » 3 lip 2015, 15:55

Ze zworką na JP3 to samo jest?
pablo7890
Młodszy majsterkowicz
Posty: 12
Rejestracja: 5 cze 2014, 20:02

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: pablo7890 » 3 lip 2015, 16:25

Taa :( właśnie ją podlutowałem i te same błędy na wszystkich prędkościach. Z ciekawości odpiąłem uC i podłączyłem sam programator - błędy są te same, znaczy, że wgle nie ma połączenia z uC :/ Macie jeszcze jakieś pomysły?
stiven
Złota rączka
Posty: 1596
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: stiven » 3 lip 2015, 16:50

Pisałeś, że na początku mkavrcalculator wykrywał atmegi, teraz już nie, więc wygląda na to, że są zablokowane. Błędu jakiegoś specjalnego by nie było, właśnie taki, że nie ma odpowiedzi od mikrokontrolera.

Na przyszłość jak byś kupił nową atmegę328, to wystarczy, że włożysz do arduino i wgrasz bootloader arduino uno przy zwartej zworce JP3.
pablo7890
Młodszy majsterkowicz
Posty: 12
Rejestracja: 5 cze 2014, 20:02

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: pablo7890 » 3 lip 2015, 16:56

Właśnie myślę, że mogły się zablokować w momencie, gdy próbowałem wgrać bootloader na atmedze w arduino - ale bez zwartej zworki.
Następnym razem, to lepiej dopłacić 2 zł do kości z wgranym już bootloaderem :)

Czy są jeszcze jakieś szanse na odblokowanie obu kontrolerów? Czy tylko ewentualny FusebitDoctor, (którego i tak nie mam :P)? Trochę mi ich szkoda.
stiven
Złota rączka
Posty: 1596
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: stiven » 3 lip 2015, 17:10

To się raczej nie stało przy wgrywaniu bootloadera bez zworki, to musiało byś przy czymś inny. Ja jak pierwszy raz wgrywałem bootloader to też bez zworki, potem gdzieś w internecie znalazłem, że trzeba ze zworką i mi poszło wtedy normalnie, trwa to wgrywanie wtedy około 5-10 minut.
Doświadczenia z ratowaniem zablokowanych atmeg nie mam, więc nic więcej nie dopowiem.
Uszkodziłeś atmegę w arduino, że potrzebujesz wymienić na nową?
pablo7890
Młodszy majsterkowicz
Posty: 12
Rejestracja: 5 cze 2014, 20:02

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: pablo7890 » 3 lip 2015, 23:39

Nie, Atmegę z arduino około pół roku temu przeznaczyłem do projektu przeniesionego na polutowaną płytkę i tam on działa wyśmienicie, a teraz potrzebuję znów popracować z Arduino, więc zamówiłem ATmegi, z czego jedna miała być na zapas. Jak widać, niezbyt efektywnie to wyszło.
Czytałem wiele postów na innych forach, gdzie rzekomo znaleziono rozwiązanie, jak odblokować mikrokontrolery ze źle ustawionymi fusebitami. Kluczową rolę odgrywa podanie zewnętrznego zegara na nóżkę X1, lecz nie mam pojęcia, co to znaczy. Prosiłbym o wyjaśnienie lub wskazówki, w którym kierunku iść dalej. Być może dojdziemy do jakiegoś rozwiązania problemu.
Arturr300
Starszy majsterkowicz
Posty: 307
Rejestracja: 16 paź 2013, 17:24

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: Arturr300 » 4 lip 2015, 07:35

To jest dziwne, ja wiele razy wgrywałem bootloader na czyste atmegi i żadnej nie zepsułem całkowicie.
Przy rc = -1 zawsze pomagało danie/wyjęcie kwarcu 8 lub 16MHz (12 pewnie też zadziała) lub naprawienie połączeń (ale to już sprawdzałeś). Nie masz nic podłączonego do linii programatora (jakieś lcd itd)? Może coś żre dużo prądu i dlatego takie kwiatki się dzieją

Czy próba zmiany fusebitów była udana? Bo nie widzę informacji o tym
pablo7890
Młodszy majsterkowicz
Posty: 12
Rejestracja: 5 cze 2014, 20:02

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: pablo7890 » 5 lip 2015, 12:56

Próbowałem z kwarcem 16 Mhz, bez skutku. W przyszłym tygodniu w sklepie kupię 8 i 12, może w ten sposób się uda. Nic nie podłączam przy programowaniu, tylko uC i ewentualnie kwarc. Fusebitów nie mogę zmienić, bo jak wspominałem, atmegi są nie wykrywane przez avrdude całkowicie.
stiven
Złota rączka
Posty: 1596
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: stiven » 5 lip 2015, 13:13

Kwarc 16MHz jest na płytce arduino.
Zamiast kwarcu, można też podłączyć generator RC.
Obrazek
Wzór na obliczenie wartości f = 1 / 3*R*C

Wszystko zależy od tego, jakie fuse bity są ustawione, a ja i tak nie umiem ich interpretować. Napisałeś wcześniej, że takie chciałeś ustawić, nieprawidłowe, chociaż potem napisałeś, że wcale takich nie ustawiałeś:

avrdude -p atmega328p -c usbasp -P usb -B 8 -u -U lfuse:w:0xE1:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m
pablo7890
Młodszy majsterkowicz
Posty: 12
Rejestracja: 5 cze 2014, 20:02

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: pablo7890 » 6 lip 2015, 00:18

Dzieki za schemat. Spróbuję z tym generatorem. Faktycznie, tam się pomyliłem, za pierwszym razem źle wkleiłem komendę do posta. Prawidłowa się nie skopiowala z konsoli i wkleila się stara, także tych błędnych fusebitow nie ustawiłem. W zasadzie, to żadnych nie ustawiłem. Ciężko mi powiedzieć, jakie są aktualnie wgrane.
pablo7890
Młodszy majsterkowicz
Posty: 12
Rejestracja: 5 cze 2014, 20:02

Re: Nowe atmegi328p - problem z wgraniem bootloadera.

Post autor: pablo7890 » 13 lip 2015, 10:23

Jak na razie nic nie wskórałem z tamtymi Atmegami, ale zamówiłem nowe z bootloaderem Arduino.
Pomyślałem, że ta informacja może się komuś przydać:
ATmega328P pracująca w Arduino Uno R3 ma następujące fusebity:

Low: 0x00; High: 0x80; Ext: 0xF8.
Informacje pobrane przez mkavrcalc.
ODPOWIEDZ

Strony partnerskie: