Błąd programowania Arduino

Jeśli nie mogłeś zaprogramować swojego Arduino, a program wyświetlił taki błąd:

avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, exprct=0x14, resp=0x51

To istnieje spora szansa na naprawę urządzenia.

Autor bloga redhotEngineer’s Blog miał podobny problem i postanowił podzielić się nie tylko rozwiązaniem, ale też sposobem jak do tego doszedł.

Najpierw trzeba sprawdzić, czy do kontrolera Arduino dochodzą sygnały z interfejsu szeregowego.
W tym celu trzeba przed podłączeniem do komputera:

  1. połączyć piny cyfrowe 0 (RX) i 1 (TX) ze sobą;
  2. połączyć pin RESET z GND w sekcji POWER.

Po podłączeniu Arduino do komputera płytka odeśle wszystko co do niej wyślesz w niezmienionej formie. Żeby to sprawdzić wystarczy włączyć Arduino IDE, potem Monitor portu szeregowego i coś wysłać. Jeśli to co było wysłane pojawi się w polu odebranych danych, to znaczy, że ustawiłeś dobry port, przewód USB oraz układy komunikacji są dobre.

Cała wina spada teraz na kontroler. Mógł zostać uszkodzony, jego program rozruchowy odpowiedzialny za programowanie może nie działać.
Jeśli program, który wgrałeś do Arduino wcześniej działa – miga diodami, steruje tym czym miał sterować to znaczy, że kontroler działa.

Autor odkrył, że w tych przypadkach kontroler z komputerem nie mogą się dogadać, bo port szeregowy nadaje z inną prędkością niż komputer chce odbierać. Uszkodzony okazał się rezonator kwarcowy, który ustala częstotliwość kontrolera.

Wystarczyło wymienić go na inny o częstotliwości 16 MHz i płytka wróciła do dawnej świetności.

sprae

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.