Niedawno stworzyłem niesamowity program i chciałem załadować go do mojego Arduino. Po kliknięciu przycisku przesyłania pojawił się jakiś wredny gość o imieniu avr i zatrzymał mnie, mówiąc:
avrdude: stk500_getsync (): not in sync: resp = 0x00
Chcę tylko przesłać swój program, ale avr mi na to nie pozwala. niezrozumiałe, więc czy ktoś może mi powiedzieć, co u licha próbuje powiedzieć i jak się go pozbyć?
czyli:
Ilekroć próbuję załadować program do mojego Arduino, otrzymuję ten komunikat o błędzie:
avrdude: stk500_getsync (): not in sync: resp = 0x00
Co to oznacza i jak mogę to naprawić?
Komentarze
- Dość częsty komunikat o błędzie , nie zawsze łatwe do rozwiązania: electronics.stackexchange.com/…
- Ładny tytuł ! ' sam miałem ten błąd …
- +1 dla tytułu: D … Naprawdę nienawidzę tego gościa tak samo jak zrobiłeś!
- Spróbuj zainstalować sterownik (cp2102) dla arduino. To mi pomogło. Dziękuję za poprzednie odpowiedzi ppl 🙂
- Ten post z czerwca 2018 roku rozwiązał to za mnie (pierwsza odpowiedź): arduino.stackexchange.com/questions/51729 / …
Odpowiedź
To jest spowodowane ogólnym błędem połączenia między komputerem a Arduino i może wynikać z wielu różnych konkretnych problemów.
Oto kilka prostych rzeczy, które często mogą naprawić ten błąd:
- Odłącz i ponownie podłącz kabel USB.
- Naciśnij przycisk resetowania na płycie.
- Zrestartuj Arduino IDE.
- Upewnij się, że wybrałeś właściwą kartę w
Tools ► Board ►
, np Jeśli używasz Duemilanove 328, wybierz to zamiast Duemilanove 128. Płytka powinna powiedzieć, jaka jest wersja na mikroczipie. - Upewnij się, że wybrałeś właściwy port w
Tools ► Serial Port ►
. Jednym ze sposobów sprawdzenia, który port jest włączony, jest wykonanie następujących czynności:- Odłącz kabel USB.
- Przejdź do
Tools ► Serial Port ►
i zobacz które porty są wymienione (np. COM4 COM5 COM14). - Podłącz ponownie kabel USB.
- Wróć do
Tools ► Serial Port ►
i zobacz, który port wyglądało na to, że wcześniej go tam nie było.
- Upewnij się, że styki cyfrowe 0 i 1 nie mają podłączonych żadnych części, w tym żadnych osłon.
Jeśli żadna z tych opcji nie zadziała, spróbuj wyodrębnić problem, zastępując rzeczy: wypróbuj inny komputer na tym samym arduino, wypróbuj inne arduino na tym samym komputerze i spróbuj użyć innego kabla USB.
Jeśli problem dotyczy komputera:
- Sprawdź dokładnie wszystkie problemy związane z komputerem na powyższej liście „łatwych poprawek”.
- Zainstaluj ponownie środowisko IDE.
- Zainstaluj ponownie sterowniki.
Jeśli problem dotyczy Arduino:
- Sprawdź dokładnie wszystkie problemy związane z płytą w listę „łatwych rozwiązań” powyżej.
- Upewnij się, że mikrokontroler jest prawidłowo osadzony.
- Może być konieczne wypalenie bootloadera .
- Wymień mikrokontroler, jeśli masz inny pod ręką.
- Możliwe, że Twoje Arduino zostało uszkodzone. Przepraszamy 🙁
Komentarze
- Istnieją inne możliwe przyczyny. Mogłeś uszkodzić ATmega, mogłeś uszkodzić bootloader ATmega, możesz mieć problemy z zasilaniem lub mnóstwo innych możliwości.
not in sync: resp=0x00
to tak naprawdę typowy ” ATmega nie odpowiada ” wiadomość. Wszystko, co mogłoby spowodować brak odpowiedzi ATmega, może to spowodować. - Czy nie mogę mieć niczego w 0 lub 1 kiedykolwiek?
- @Tim Możesz podłączyć rzeczy do tych pinów, ale musisz je odłączyć, jeśli chcesz komunikować się z Arduino za pomocą kabla USB.
- Otrzymałem ten błąd na moim pierwszym Duemillanove lata temu. był martwy układ UART (lub połączenie z USB do układu UART). Bardzo frustrujące. Kupiłem programator AVR i spaliłem bootloader. Kupiłem inny procesor z wstępnie załadowanym bootloaderem. Nie ' t sprzedawca wysłał zamiennik, że mogłem dołączyć do wor ld miłośników Arduino (mam teraz dwa zapasowe procesory).
- ” Odłącz i ponownie podłącz kabel USB ” mi pasuje
Odpowiedź
Kolejna poprawka:
Zmień do Atmega 328P (Old Bootloader)
. Przypomnij, że opcja Processor
jest dostępna tylko po wybraniu określonych tablic w Tools>Board
.
To zadziałało 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żywasz IDE 1.8.9 lub nowszego i otrzymasz stare lub sklonowane Nano.
Komentarze
- To była rozwiązanie! Nowy program ładujący używa dwukrotnie większej szybkości transmisji (115200 zamiast 57600).
Odpowiedź
Niestety może oznacza również, że spaliłeś mikrokontroler. Czy robiłeś coś niebezpiecznego tuż przed przesłaniem nowego szkicu? Czy mikrokontroler nadal działa z wcześniej załadowanym szkicem?
Odpowiedź
Jeśli żaden z powyższych kroków nie działa, spróbuj ponownie zainstalować Avrdude i kompilator avr-gcc. Musiałem to zrobić po tym, jak mój Mega zaczął cierpieć z tego powodu.
Jeśli zainstalowałeś Avrdude i avr-gcc osobno, po prostu je odinstaluj. jeśli nie, może być konieczna ponowna instalacja Arduino IDE. Te kroki będą zależeć od systemu operacyjnego.
Komentarze
- Jest bardzo mało prawdopodobne, że problem może być spowodowany użyciem łańcucha narzędzi. To zbyt ekstremalne, IMO.
- Na czym polega ten proces instalacji, o którym mówisz? Narzędzie edytora arduino zostało właśnie rozpakowane. Nie ma procesu instalacji.
Odpowiedź
Otrzymałem tę samą wiadomość. Za każdym razem rozwiązany przez wybranie odpowiedniego portu, np. 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 komputera, aby załadować nowy program i uzyskać błąd, panika, przekleństwo i dopiero wtedy pamiętaj.
Odpowiedź
W moim przypadku nie podłączyłem RTS pin układu FTDI do kondensatora, który trafił do pinu RST Arduino Pro Mini. Po zainstalowaniu tego połączenia nie dostałem już błędu i udało mi się załadować kod.
Nick Gammon wyjaśnia to na jego forum . Dodałem obrazek, gdzie / jak należy umieścić kondensator.
Komentarze
- +1 za ładne zdjęcie podłączania programatora USB bezpośrednio do układu atmega.
- Miałem też złe połączenia na płycie, odłączyłem wszystko i wgrałem podstawowy szkic i zadziałało . Teraz pomyśl, który kabel nie jest we właściwym miejscu
Odpowiedź
Miałem dokładnie ten sam problem. Próbowałem zainstalować IDE na innym laptopie i wgrałem program z tego laptopa. Problem rozwiązany. Potem wróciłem do laptopa, odinstalowałem IDE i przeinstalowałem… zaczęło działać.
Jednak nie byłem usatysfakcjonowany, ponieważ nie mogłem znaleźć źródła problemu … więc spróbowałem uruchomić wszystko ponownie dokładnie w ten sam sposób … Znalazłem problem, ale nie jestem pewien, czy to może być rzeczywistą tego przyczyną.
W moim projekcie potrzebowałem przeprowadzić komunikację szeregową między arduino a MATLABEM (GUI). Aby zobaczyć / zweryfikować wyjście (typ) danych szeregowych MATLAB (GUI), użyłem HIPERTERMINAL a także VIRTUAL SERIAL PORT EMULATOR. Zauważyłem, że za każdym razem, gdy działa hyperterminal lub VSPE, podczas gdy mój monitor szeregowy jest włączony, psuje funkcję ładowania programu. Nie jestem pewien, czy to z powodu VSPE czy HYPERTERMINAL, ale ponowna instalacja IDE zadziałała.
Komentarze
- Jeden z Linie sterowania szeregowego, myślę, że to DTR, służą do resetowania Arduino. Kiedy próbujesz zaprogramować Arduino, twój program terminala może przeszkadzać.
- To zadziałało tylko wtedy, gdy usunąłem również mój folder Arduino Library, który zawiera wszystkie ustawienia i dodatkowe biblioteki.
Odpowiedź
Dla osób używających Linux Mint stwierdziłem, że wybierając port „TTY SO” zamiast portu oznaczonego „Arduino” zadziała (nie mogę powiedzieć dokładnie, ponieważ nie mam teraz komputera przede mną).
Potem następnym razem, gdy użyłem Arduino, ponownie otrzymałem tę samą wiadomość, więc przełączyłem się z powrotem na port „Arduino” i od tamtej pory działa w ten sposób.
Nie mam takiej wiedzy technicznej jak reszta z was, więc nie mam pojęcia, dlaczego to działa ani w czym był problem, ale zadziałało, na czym mi zależy. Może to się komuś przyda.
Odpowiedź
Odinstalowałem IDE i sterowniki itp., Zainstalowałem wszystko ponownie, a potem uruchomiłem Arduino IDE jako administrator i ustawiłem na kompatybilność z Windows 7 (obecnie używam 10).
Zmieniłem także programator na AVR ISP (nie sądzę, żeby to miało znaczenie, ale ja i tak to zmienił).
Wszystko znów działa … miejmy nadzieję, że może to pomóc komuś innemu.
Odpowiedź
Nietypowe, ale często wymieniałem mikrokontrolery i otrzymałem ten błąd, gdy go nie było ” t prawidłowo siedział … udało mi się kilka razy spalić, ale wydaje mi się, że wypadł z powrotem – małe naciśnięcie z tyłu ATMega328 naprawiło to!
Odpowiedź
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ć zablokowany), ale w moim przypadku spowodował tylko błąd braku synchronizacji, uniemożliwiając mi przesłanie kodu.
Więc po prostu sprawdź, czy wycięcie na IC jest we właściwym kierunku (możesz sprawdzić zdjęcia tablicy online). Wycięcie na kontrolerze Uno powinno wskazywać na krawędź płytki.
Odpowiedź
Również ten błąd wystąpił. Po raz pierwszy użyłem nowej płyty Arduino Nano po przylutowaniu na nagłówkach. Po zawiązaniu Blink Sketch nic nie było podłączone do płytki.
Znalazłem niewielki brak lutu między GROUND i RESET Piny. Wybrałem to, a następnie mogłem przesłać ok.
Przypuszczam, że mogłoby się to zdarzyć, gdybyś miał gdzieś takie samo zwarcie w obwodzie.
Odpowiedź
Po prostu wystąpił ten sam błąd z zupełnie nowym Mini Pro. Ponieważ domyślny program migania, który był fabrycznie załadowany z większością Arduino, działa, wiem, że urządzenie jest prawdopodobnie w porządku.
Więc sprawdziłem 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 wszystkich prac.
Odpowiedź
Po wielu odłączeniach, sprawdzaniu portów, ponownym uruchomieniu IDE itp. Czynnikiem, który wydawał się mieć znaczenie w naprawieniu tego błędu w Arduino Mega 2560, było odinstalowanie sterownika USB arduino dla systemu Windows, a następnie ponowne zainstalowanie go przy użyciu sterownika tutaj & wybierz 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łem przetestować to na moim uno, a potem wrócić do mega, więc jest mała szansa na rozmowę do uno sprawiło, że AVRDUDE była szczęśliwa, ale mało prawdopodobna.
Odpowiedź
Kiedy mam problem z przesyłaniem danych na moje tablice, przesyłam inny program, jak w przykładzie z miganiem. Wydaje się, że coś zresetowało i jestem w stanie załadować własny program (który jest dość duży).
Warto spróbować tego, aby sprawdzić, czy zadziała w Twoim przypadku, chociaż nie mam pojęcia, dlaczego to działa.
Komentarze
- jaka płyta i jaki program ładujący?
- Arduino Nano, ATMega328P (nie innej firmy). Wersja sprzętu: 2, Wersja oprogramowania układowego: 1.16, sygnatura urządzenia to 0x1e950f Nie sprawdzałem programu ładującego, ale są one reklamowane jako ” tradycyjny program ładujący ”
- więc twoja odpowiedź jest specyficzna dla starego bootloadera Nano
- Dzięki! Przyjrzę się bootloaderom i spróbuję je zaktualizować. Czy masz jakieś informacje na temat tego błędu?
Odpowiedź
Miałem podobny problem z moją tablicą Uno
avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x90
Wypróbowałem wiele metod
- Naciśnij reset przed wysłaniem pakietów
- różne wersje IDE
- Zmień kabel
- Zmień sam kontroler
- Test pętli zwrotnej
ale wszystkie powyższe zawiodły.
I użyj Ubuntu 16.04.4 LTS 4.15.0-33-generic
(podczas pisania tego komentarza). Moduł CDC ACM nie został załadowany, dlatego żadne urządzenie /dev/ttyACM0
nie zostało utworzone do wybrania w Arduino IDE -> Tools -> Port
W związku z tym Get nazwę modułu i załaduj go
$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 2341:0043 Arduino SA Uno R3 (CDC ACM) Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub $ sudo modprobe cdc-acm
Powyższe polecenie wstawi wymagany moduł. Teraz mogę wybrać właściwy port i przesłać kod.
Spośród różnych rozwiązań, które mi pomogły, mam nadzieję, że to też komuś pomoże.
Odpowiedź
Rozwiązałem to, aktualizując tablice (w sekcji „zarządca tablicy”)
Komentarze
- Czy masz Arduino Nano?
Odpowiedź
Napotkałem dziś ten sam problem dla jakiegoś kodu i rozwiązałem wygląda to następująco:
1- Najpierw uruchomiłem podstawowy kod migania diod LED. Dał ten sam błąd. Potwierdza, że błąd jest w przesyłaniu i nie ma nic wspólnego z kompilacją. Sprawdziłem również, że mój kod jest kompilacja dobrze.
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ę na inny komputer i, co zaskakujące, nie było takiego błędu podczas przesyłania, co dało mi wskazówkę co do problemów ze sterownikiem na pierwszym komputerze.
4- Dlatego odinstalowałem sterownik i ponownie zainstalowałem go na pierwszym komputerze, pobierając z tutaj
(upewnij się, że instalując sterownik z tego linku, Twoja płyta główna jest podłączona do komputera)
Teraz działało dobrze 🙂
Odpowiedź
Wystąpił ten błąd na moim laptopie Linux Mint 17.3 z Arduino Nano avrdude: stk500_getsync (): niezsynchronizowany: resp = 0x00
Rozwiązany:
- usunął wszystko, co miało w nazwie „arduino” lub „avr”
- usunął katalogi .arduino i .arduino15 (zwróć uwagę na kropkę w nazwie)
- usunięta wersja 1.8.7 z odinstalowaniem pakietu
- apt-get install arduino (wersja 1.1.0)
- przetestowana za pomocą prostego szkicu (wszystko w porządku)
- zainstalowana wersja 1.8.7 z instalacją pakietu
- skompilowana.
- wybrany ATmega328p (stary bootloader) dla procesora, Arduino Nano dla karty i / dev / ttyUSB0 dla portu => TO DZIAŁA!
Wygląda na to, że „Stary program ładujący” była sztuczka w tym przypadku. Mam teraz obie wersje 1.1.0 i 1.8.7, kogo to obchodzi.
Komentarze
- najpierw przeczytaj odpowiedź od aguadopd
Odpowiedź
Próbowałem nie łączyć uziemienia jednej płyty z uziemieniem drugiej płyty. To zatrzymało problem.