Có một số voodoo-talk trong các câu trả lời quanh đây trong số những ý tưởng tốt. Hãy cố gắng thực tế hơn một chút về những gì đang xảy ra và tổng hợp những thứ hay ho để kiểm tra:
Về cơ bản, khi điều đó xảy ra, một ý tưởng tốt là kích hoạt chế độ dài dòng cho AVRDUDE , để có ý tưởng tốt hơn về những gì đang xảy ra. Để làm như vậy, bạn chỉ cần đi vào các tùy chọn và kiểm tra hộp chế độ dài. Đó cũng là một ý tưởng tốt để di chuyển khỏi Arduino IDE và khởi chạy một bàn điều khiển để thoải mái hơn khi đọc đầu ra của AVRDUDE, mà bạn sẽ nhận được khi nhấp vào upload
nút.
Điều quan trọng ở đây là đặt 3 hoặc 4 -v
vào lệnh gọi. Đây là cách các lệnh AVRDUDE như vậy, với các tham số được tạo thành vì chúng hoàn toàn phụ thuộc vào cách Arduino được cài đặt:
avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex
Một cách tốt để có được dòng lệnh chính xác để sử dụng là sao chép nó từ đầu ra dài dòng của nhật ký đầu ra Arduino IDE khi tính dài dòng được kích hoạt.
Khi bạn nhận được avrdude: stk500_recv(): programmer is not responding
, về cơ bản có nghĩa là một cái gì đó sai đang xảy ra, trước khi đèn flash thực sự bắt đầu.
Về cơ bản bạn phải kiểm tra (từ phần cứng đến phần mềm, từ cấp thấp đến cấp cao):
- nếu cáp và / hoặc đầu nối không có vi cắt;
- nếu không có điểm hàn nào bị đoản mạch (tức là chạm vào thứ gì đó bằng kim loại xung quanh), điều đó có nghĩa là:
- nếu không có ngắn mạch trên PCB giữa
Rx
và Tx
(thường là chân 1
và 0
);
- nếu không có tiếp xúc với phần tử kim loại bên dưới bảng hoặc các bit nhỏ giữa hai chân của thành phần (như FTDI, chip ATmega hoặc bất kỳ phần tử nào khác);
- nếu chip ATmega không hết điện ( phím tắt GND / V CC hoặc cắt hoặc đầu vào V CC bị chết);
- nếu chân
1
và 0
chân của Arduino không được sử dụng bởi một số lá chắn hoặc thiết kế tùy chỉnh ( /!\
không áp dụng cho Leonardo vì nó có xử lý USB độc lập);
- nếu bộ chuyển đổi USB sang UART không gặp sự cố (
FTDI
trên Duemilanove hoặc ATmega16U2 cũ hơn trên Arduino Unos mới hơn);
- nếu chip ATmega328 bị chiên hoặc cài đặt sai;
- nếu bộ nạp khởi động đã bị ghi đè hoặc bị lỗi;
- nếu baudrate phải được áp dụng để vào bộ nạp khởi động;
- nếu cài đặt đúng được đặt cho vi điều khiển và bảng đích;
Thông thường avrdude -v -v -v -v
có thể giúp rất nhiều tìm thấy ở giai đoạn mà nó đang thất bại. Cho dù nó không thể tạo kết nối USB (lỗi cáp, USB / UART, PCB,) hoặc đó là sự cố bộ tải khởi động.
Cập nhật : Tôi đã thử xoay ATmega trên bo mạch và lắp nó theo hướng khác. Bây giờ, tôi không gặp vấn đề gì khi tải lên, nhưng không có gì xảy ra sau đó. Đèn LED trên tàu dường như không nhấp nháy.
Tôi sợ rằng nếu bạn đảo ngược vị trí của ATmega, và sau đó nó không hoạt động, thực tế là bạn đặt nguồn điện trên các chân kỹ thuật số có thể đã làm cháy chip của bạn.