У відповідях тут є кілька вуду-розмов серед хороших ідей. Давайте спробуємо бути більш реальними щодо того, що відбувається, і підсумуємо хороші речі, щоб перевірити:
В основному, коли це відбувається, добре б включити багатомовний режим для AVRDUDE , щоб краще зрозуміти, що відбувається. Для цього вам потрібно лише перейти до налаштувань і встановити прапорець у режимі багатослівної роботи. Це також хороша ідея відійти від Arduino IDE і запустити консоль, щоб було зручніше читати вихід AVRDUDE, який ви отримаєте, натиснувши upload
кнопку.
Тут важливо поставити 3 або 4 -v
для виклику команд. Ось як виглядають такі команди AVRDUDE зі складеними параметрами, оскільки вони повністю залежать від того, як встановлено Arduino:
avrdude -v -v -v -v -C /path/to/avrdude.conf -patmega328 -P/dev/usbport -U flash:w:/path/to/firmware.hex
Хороший спосіб отримати правильний командний рядок - скопіювати його з багатослівного виходу журналу виводу Arduino IDE, коли активовано багатослів’я.
Коли ви отримуєте avrdude: stk500_recv(): programmer is not responding
, це в основному означає, що відбувається щось не так, перш ніж миготіння насправді почнеться.
В основному вам потрібно перевірити (від апаратного до програмного забезпечення, від низького до високого рівня):
- якщо кабель та / або роз'єми не мають мікророзрізів;
- якщо точки пайки не мають короткого замикання (тобто дотику до чогось металевого навколо), це означає:
- якщо на друкованій платі немає короткого замикання між
Rx
та Tx
(зазвичай штифтами 1
та 0
);
- якщо немає контакту з металевим елементом під платою, або крихітні шматочки між ніжками компонента (наприклад, FTDI, мікросхемою ATmega або будь-яким іншим);
- якщо мікросхема ATmega не втратила живлення ( ярлик або відсікання GND / V CC або вхід V CC мертвий…);
- якщо
1
і 0
шпильки Arduino не використовуються якимось щитом чи спеціальним дизайном ( /!\
не застосовується до Леонардо, оскільки він має незалежну обробку USB);
- якщо перетворювач USB в UART не має проблем (
FTDI
на старих Duemilanove або ATmega16U2 на новіших Arduino Unos);
- якщо чіп ATmega328 смажений або неправильно встановлений;
- якщо завантажувач завантажений або не працює;
- якщо для введення завантажувача застосовано правий бодрат;
- якщо встановлені правильні налаштування для цільового мікроконтролера та плати;
Зазвичай це avrdude -v -v -v -v
може допомогти багато в чому знайти, на якому етапі він не працює. Чи не може він взагалі встановити з'єднання USB (збій кабелю, USB / UART, PCB…), або це проблема завантажувача.
Оновлення : я спробував повернути бортову ATmega і встановити її в іншому напрямку. Зараз у мене не виникає проблем із завантаженням, але після цього нічого не відбувається. Бортовий світлодіод також не здається блимає.
Я боюся, що якщо ви змінили положення ATmega, а потім це не спрацювало, той факт, що ви розмістили джерело живлення на цифрових штифтах, може спалити вашу мікросхему.