Wśród dobrych pomysłów jest tu mowa o voodoo. Spróbujmy być bardziej realistyczni w kwestii tego, co się dzieje i podsumujmy dobre rzeczy do sprawdzenia:
Zasadniczo, gdy tak się stanie, dobrym pomysłem jest włączenie trybu pełnego dla AVRDUDE , aby uzyskać lepszy obraz tego, co się dzieje. Aby to zrobić, wystarczy przejść do preferencji i zaznaczyć pole trybu pełnego. Dobrym pomysłem jest również odejście od Arduino IDE i uruchomienie konsoli, aby wygodniej było odczytać wyjście AVRDUDE, które otrzymasz po kliknięciu upload
przycisku.
Ważne jest tutaj wstawienie 3 lub 4 -v
do wywołania polecenia. Oto jak wyglądają takie polecenia AVRDUDE, z utworzonymi parametrami, ponieważ są one całkowicie zależne od sposobu zainstalowania Arduino:
avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex
Dobrym sposobem na uzyskanie prawidłowego wiersza poleceń do użycia jest skopiowanie go z pełnego wyjścia dziennika wyjściowego Arduino IDE, gdy włączona jest szczegółowość.
Kiedy otrzymasz avrdude: stk500_recv(): programmer is not responding
, oznacza to w zasadzie, że dzieje się coś złego, zanim flashowanie się zacznie.
Zasadniczo musisz sprawdzić (od sprzętu po oprogramowanie, poziom niski do wysokiego):
- jeśli kabel i / lub złącza nie mają mikroszczelin;
- jeśli żadne punkty lutownicze nie są zwarte (tj. dotykają czegoś metalowego wokół), oznacza to:
- czy nie ma zwarcia na płytce drukowanej pomiędzy
Rx
i Tx
(zwykle piny 1
i 0
);
- jeśli nie ma kontaktu z metalowym elementem pod płytą lub drobnymi kawałkami między nogami elementu (jak FTDI, układ ATmega lub jakikolwiek inny);
- jeśli układ ATmega nie jest rozładowany ( skrót lub odcięcie GND / V CC lub wejście V CC jest martwe…);
- jeśli styki
1
i 0
Arduino nie są używane przez jakąś tarczę lub niestandardowy projekt ( /!\
nie dotyczy Leonardo, ponieważ ma niezależną obsługę USB);
- czy konwerter USB na UART nie ma problemu (
FTDI
na starszym Duemilanove lub ATmega16U2 na nowszym Arduino Unos);
- jeśli układ ATmega328 jest smażony lub nieprawidłowo zainstalowany;
- jeśli bootloader został nadpisany lub nie działa;
- czy przy wejściu do bootloadera zastosowano odpowiednią prędkość transmisji;
- czy są ustawione odpowiednie ustawienia dla docelowego mikrokontrolera i płytki;
Zwykle avrdude -v -v -v -v
może bardzo pomóc w ustaleniu, na jakim etapie zawodzi. Niezależnie od tego, czy w ogóle nie może nawiązać połączenia USB (awaria kabla, USB / UART, PCB…), czy jest to problem z bootloaderem.
Aktualizacja : Próbowałem przekręcić pokładową ATmegę i zamontować ją w innym kierunku. Teraz nie mam problemów z przesyłaniem, ale potem nic się nie dzieje. Wydaje się, że wbudowana dioda LED również nie miga.
Obawiam się, że jeśli odwrócisz położenie ATmega, a potem nie działa, to fakt, że umieściłeś źródło zasilania na pinach cyfrowych, mógł spalić twój chip.