Któregoś dnia stworzyłem niesamowity program i chciałem go załadować na moje Arduino. Po kliknięciu przycisku przesyłania pojawił się wredny koleś o imieniu avr i zatrzymał mnie, mówiąc:
avrdude: stk500_getsync (): not in sync: resp = 0x00
Wszystko chcę zrobić, to przesłać mój program, ale AVR nie pozwoli mi. Jest nawet niezrozumiały, więc czy ktoś może mi powiedzieć, co do cholery próbuje powiedzieć i jak się go pozbyć?
to znaczy:
Ilekroć próbuję załadować program do mojego Arduino, pojawia się następujący komunikat o błędzie:
avrdude: stk500_getsync (): not in sync: resp = 0x00
Co to znaczy i jak mogę to naprawić?
Odpowiedzi:
Jest to spowodowane ogólnym błędem połączenia między komputerem a Arduino i może wynikać z wielu różnych problemów.
Oto kilka prostych rzeczy, które często mogą naprawić ten błąd:
Tools ► Board ►
, np. Jeśli używasz Duemilanove 328, wybierz ją zamiast Duemilanove 128. Tablica powinna powiedzieć, jaką wersję ma na mikroczipie.Tools ► Serial Port ►
. Jednym ze sposobów ustalenia, który port jest włączony, jest wykonanie następujących kroków:Tools ► Serial Port ►
i sprawdź, które porty są na liście (np. COM4 COM5 COM14).Tools ► Serial Port ►
i zobacz, który port się pojawił, którego wcześniej tam nie było.Jeśli żadna z tych czynności nie zadziała, spróbuj wyodrębnić problem poprzez zamianę: wypróbuj inny komputer na tym samym arduino, wypróbuj inny arduino na tym samym komputerze i spróbuj użyć innego kabla USB.
Jeśli problem dotyczy komputera:
Jeśli problem dotyczy Arduino:
źródło
not in sync: resp=0x00
naprawdę ogólny komunikat „ATmega nie odpowiada”. Może to spowodować wszystko, co może spowodować, że ATmega nie zareaguje.Kolejna poprawka:
Zmień
Tools->Processor->Atmega 328P
naAtmega 328P (Old Bootloader)
. Przypomnij, żeProcessor
opcja jest dostępna tylko wtedy, gdy wybierzesz określone tablice naTools>Board
.Działa to dla mojego Arduino Nano z CH340, używając Arduino IDE 1.8.5 pod Linux Ubuntu 17.10. Poza tym prawdopodobnie tak się stanie, jeśli użyjesz IDE 1.8.9 lub nowszego i otrzymasz starego lub sklonowanego Nano.
źródło
Niestety może to również oznaczać spalenie mikrokontrolera. Czy robiłeś coś niebezpiecznego tuż przed próbą przesłania nowego szkicu? Czy mikrokontroler nadal działa z wcześniej załadowanym szkicem?
źródło
Jeśli żaden z powyższych kroków nie działa, spróbuj ponownie zainstalować Avrdude i kompilator avr-gcc. Musiałem to zrobić, gdy moja Mega zaczęła cierpieć z tego powodu.
Jeśli osobno zainstalowałeś Avrdude i avr-gcc, po prostu je odinstaluj. jeśli nie, może być konieczna ponowna instalacja Arduino IDE. Te kroki będą zależeć od systemu operacyjnego.
źródło
Mam tę samą wiadomość. Za każdym razem, gdy został rozwiązany, wybierając odpowiedni port, tj. USB w menu Narzędzia, a następnie Porty. To prosty krok, ale zawsze zapominam. Odłączę Arduino, aby zatrzymać bieżący program, podłączę go ponownie do mojego komputera, aby załadować nowy program i uzyskać błąd, panikę, przekleństwo i tylko wtedy pamiętaj.
źródło
W moim przypadku nie podłączyłem styku RTS układu FTDI do kondensatora, który trafił do styku RST Arduino Pro Mini. Po zainstalowaniu tego połączenia nie otrzymałem już błędu i mogłem przesłać kod.
Nick Gammon wyjaśnia to na swoim forum . Dodałem zdjęcie, gdzie / jak należy umieścić kondensator.
źródło
Miałem dokładnie ten sam problem. Próbowałem zainstalować IDE na innym laptopie i załadowałem program z tego laptopa. Problem rozwiązany. Potem wróciłem do mojego laptopa, odinstalowałem IDE i ponownie go zainstalowałem .. zaczął działać.
Jednak nie byłem usatysfakcjonowany, ponieważ nie mogłem znaleźć źródła problemu ... więc próbowałem uruchomić wszystko ponownie dokładnie w ten sam sposób ... Znalazłem problem, ale nie jestem pewien, czy to może być jego faktyczna przyczyna .
W moim projekcie musiałem przeprowadzić szeregową komunikację między arduino i MATLAB (GUI). Aby zobaczyć / zweryfikować dane wyjściowe (typ) danych szeregowych MATLAB (GUI), użyłem HYPERTERMINALU, a także WIRTUALNEGO EMULATORA PORTU SZEREGOWEGO. Zauważyłem, że za każdym razem, gdy działa hiperterminal lub działa VSPE, gdy jest na nim mój monitor szeregowy, psuje to funkcję przesyłania programu. Nie jestem pewien, czy to z powodu VSPE czy HYPERTERMINAL, ale przeinstalowanie IDE działało dla mnie.
źródło
Dla osób używających Linux Mint odkryłem, że wybierając port „TTY SO” zamiast portu z etykietą „Arduino” zadziałałoby (nie mogę powiedzieć dokładnie, ponieważ nie mam tego komputera przed sobą) .
Następnym razem, gdy użyłem Arduino, znowu otrzymałem ten sam komunikat, więc wróciłem do portu „Arduino” i od tego czasu działa tak.
Nie jestem tak kompetentny technicznie jak reszta z was, więc nie mam pojęcia, dlaczego to działa ani na czym polega problem, ale działało, na czym mi zależy. Może to komuś się przyda.
źródło
Odinstalowałem IDE i sterowniki itp., Zainstalowałem wszystko ponownie, a następnie uruchomiłem Arduino IDE jako administrator i ustawiłem na kompatybilność z Windows 7 (obecnie używam 10).
Zmieniłem też programator na AVR ISP (nie sądzę, żeby to miało znaczenie, ale i tak to zmieniłem).
Wszystko znów działa ... mam nadzieję, że może to pomóc komuś innemu.
źródło
Niezwykły, ale często wymieniałem mikrokontrolery i dostałem ten błąd, gdy jeden nie był prawidłowo osadzony .. byłem w stanie spalić się kilka razy, ale myślę, że wyślizgnął się z powrotem - małe pchnięcie w tył ATMega328 naprawił to!
źródło
Istnieje również możliwość niewłaściwego umieszczenia samego kontrolera w gnieździe Arduino. Może to być niebezpieczne dla kontrolera (który może zostać zapchany), ale w moim przypadku dał tylko błąd braku synchronizacji, uniemożliwiając mi przesłanie kodu.
Więc po prostu sprawdź, czy wycięcie na układzie scalonym jest we właściwym kierunku (możesz sprawdzić krzyżowo z obrazkami tablicy online). Wycięcie na kontrolerze Uno powinno wskazywać na krawędź płytki.
źródło
Ten błąd też się pojawił. Po raz pierwszy użyłem nowej płyty Arduino Nano po tym, jak lutowałem na nagłówkach. Po prostu przywiązując szkic mrugnięcia, nic nie było podłączone do planszy.
Znalazłem niewielki brak lutu między pinami GROUND i RESET. Wybrałem go i mogłem przesłać ok.
Przypuszczam, że może się tak zdarzyć, gdybyś miał takie samo zwarcie w obwodzie.
źródło
Właśnie miałem ten sam błąd z zupełnie nowym Mini Pro. Ponieważ jest uruchomiony domyślny program migający, który został fabrycznie załadowany z większością Arduino, wiem, że urządzenie prawdopodobnie działa poprawnie.
Sprawdziłem więc nagłówki, które właśnie przylutowałem jeszcze raz, i stwierdziłem, że na pinach TX0 nie ma wystarczającej ilości lutu. Po ponownym lutowaniu wszystkie prace.
źródło
Po wielu odłączeniach, sprawdzeniu portów, ponownym uruchomieniu IDE itp. Tingiem, który wydawał się mieć wpływ na naprawienie tego błędu w Arduino Mega 2560, było odinstalowanie sterownika Windows USB arduino, a następnie jego ponowna instalacja, użycie sterownika tutaj i wybranie go ręcznie z listy> porty com> arduino http://drivers.softpedia.com/get/Other-DRIVERS-TOOLS/Others/Arduino-Mega-2560-USB-Driver-1110-for-Windows-7-64-bit.shtml Mogę mieć przetestowałem to na moim urządzeniu uno, a następnie z powrotem do mega, więc istnieje niewielka szansa, że rozmowa z urządzeniem uno sprawi, że AVRDUDE będzie szczęśliwy, ale mało prawdopodobny.
źródło
Kiedy pojawia się problem z przesyłaniem na moje tablice, przesyłam inny program, taki jak przykład mrugnięcia. Wydaje się, że coś to zresetowało, a następnie mogę przesłać własny program (który jest dość duży).
Warto spróbować tego, aby sprawdzić, czy to działa w twoim przypadku, chociaż nie mam pojęcia, dlaczego to działa.
źródło
Miałem podobny problem z moją tablicą Uno
Wypróbowałem wiele metod
ale wszystkie powyższe zawiodły.
Używam Ubuntu 16.04.4 LTS
4.15.0-33-generic
(podczas pisania tego komentarza). Moduł CDC ACM nie został załadowany, dlatego nie/dev/ttyACM0
utworzono żadnego urządzenia do wyboruArduino IDE -> Tools -> Port
Dlatego pobierz nazwę modułu i załaduj go
Powyższe polecenie wstawi wymagany moduł. Teraz mogę wybrać odpowiedni port i załadować kod
Mam nadzieję, że spośród różnych rozwiązań to zadziałało.
źródło
Rozwiązałem go, aktualizując tablice (w „menedżerze tablic”)
źródło
W przypadku niektórych kodów napotkałem dzisiaj ten sam problem i rozwiązałem go w następujący sposób:
1- Najpierw uruchomiłem podstawowy migający kod LED. Dał ten sam błąd. Potwierdza, że błąd występuje podczas przesyłania i nie ma nic wspólnego z kompilacją. Sprawdziłem również, czy mój kod się kompiluje.
2- Wziąłem inną płytę, ale działała dobrze na tym komputerze. Oznacza to, że komputer i przewód USB są w porządku.
3- Podłączyłem wadliwą płytę do innego komputera i, co zaskakujące, nie wystąpił taki błąd podczas przesyłania. To dało mi wskazówkę na temat problemów ze sterownikiem w pierwszym komputerze.
4 - Więc odinstalowałem sterownik i ponownie zainstalowałem go na pierwszym komputerze, pobierając stąd
(upewnij się, że podczas instalowania sterownika z tego łącza utrzymujesz swoją płytę podłączoną do komputera)
Teraz działało dobrze :-)
źródło
Miałem ten błąd w moim laptopie Linux Mint 17.3 z Arduino Nano avrdude: stk500_getsync (): not in sync: resp = 0x00
Rozwiązany:
Wygląda na to, że w tym przypadku podstępem był „stary program ładujący”. Mam teraz oba wersje 1.1.0 i 1.8.7, kogo to obchodzi.
źródło