Ada beberapa voodoo-talk dalam jawaban di sekitar sini di antara ide-ide bagus. Mari kita mencoba untuk menjadi sedikit lebih nyata tentang apa yang terjadi dan meringkas hal-hal baik untuk diperiksa:
Pada dasarnya, ketika itu terjadi, itu adalah ide yang baik untuk mengaktifkan mode verbose untuk AVRDUDE , untuk mendapatkan ide yang lebih baik tentang apa yang terjadi. Untuk melakukannya, Anda hanya perlu masuk di preferensi dan centang kotak mode verbose. Ini juga merupakan ide yang baik untuk menjauh dari Arduino IDE, dan meluncurkan konsol agar lebih nyaman membaca output AVRDUDE, yang akan Anda klik pada upload
tombol.
Yang penting di sini adalah memasukkan 3 atau 4 -v
ke panggilan perintah. Begini caranya seperti perintah AVRDUDE seperti itu, dengan parameter yang dibuat karena mereka sepenuhnya bergantung pada bagaimana Arduino telah diinstal:
avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex
Cara yang baik untuk mendapatkan baris perintah yang benar untuk digunakan adalah dengan menyalinnya dari output verbose dari log output Arduino IDE ketika verbosity telah diaktifkan.
Ketika Anda mendapatkan avrdude: stk500_recv(): programmer is not responding
, itu pada dasarnya berarti ada sesuatu yang salah terjadi, sebelum flashing sebenarnya dimulai.
Pada dasarnya Anda harus memeriksa (dari perangkat keras ke perangkat lunak, level rendah ke level tinggi):
- jika kabel dan / atau konektor tidak memiliki microcuts;
- jika tidak ada titik solder yang mengalami hubungan pendek (yaitu menyentuh sesuatu yang logam di sekitar), itu berarti
- jika tidak ada hubungan pendek pada PCB antara
Rx
dan Tx
(biasanya pin 1
dan 0
);
- jika tidak ada kontak dengan elemen logam di bawah papan, atau potongan kecil di antara kaki-kaki komponen (seperti FTDI, chip ATmega atau lainnya);
- jika chip ATmega tidak kehabisan daya ( pintasan GND / V CC atau input cut atau V CC mati ...);
- jika pin
1
dan 0
pin Arduino tidak digunakan oleh beberapa perisai atau desain khusus ( /!\
tidak berlaku untuk Leonardo karena memiliki penanganan USB independen);
- jika konverter USB ke UART tidak memiliki masalah (
FTDI
pada Duemilanove atau ATmega16U2 yang lebih lama pada Arduino Unos yang lebih baru);
- jika chip ATmega328 digoreng atau salah pasang;
- jika bootloader telah ditimpa atau gagal;
- jika baudrate yang tepat diterapkan untuk memasuki bootloader;
- jika pengaturan yang tepat ditetapkan untuk mikrokontroler dan Papan target;
Biasanya avrdude -v -v -v -v
dapat banyak membantu menemukan pada tahap mana ia gagal. Apakah itu tidak dapat membuat koneksi USB sama sekali (kabel gagal, USB / UART, PCB ...), atau itu adalah masalah bootloader.
Pembaruan : Saya mencoba memutar ATmega onboard dan memasangnya ke arah lain. Sekarang, saya tidak menemukan masalah dalam mengunggah, tetapi tidak ada yang terjadi setelahnya. LED onboard juga sepertinya tidak berkedip.
Saya khawatir jika Anda membalikkan posisi ATmega, dan kemudian itu tidak berfungsi, fakta bahwa Anda meletakkan sumber daya pada pin digital mungkin telah membakar chip Anda.