"Avrdude: stk500_getsync (): не синхронізується: resp = 0x00", якийсь іменний чувак Avr не дозволить мені завантажувати свою програму


98

Днями я зробив дивовижну програму, і хотів завантажити її в свій Arduino. Натиснувши кнопку завантаження, підійшов якийсь середній чувак на ім’я avr і зупинив мене, кажучи:

avrdude: stk500_getsync (): не синхронізовано: resp = 0x00

Все, що я хочу зробити, це просто завантажити свою програму, але avr не дозволить мені. Він навіть незрозумілий, тож хтось може сказати мені, що чорт намагається сказати, і як від нього позбутися?


тобто:

Щоразу, коли я намагаюся завантажити програму на мій Arduino, я отримую це повідомлення про помилку:

avrdude: stk500_getsync (): не синхронізовано: resp = 0x00

Що це означає, і як я можу це виправити?


4
Досить поширене повідомлення про помилку, не завжди тривіальне для вирішення: electronics.stackexchange.com/…
jippie

12
Гарний титул! У мене була сама помилка ...
TheDoctor

6
+1 за заголовок: D ... Я дуже ненавиджу цього чувака так само, як і ти!
David Refoua

Спробуйте встановити драйвер (cp2102) для ардуїно. Це мені допомогло. Дякую за попередні відповіді ppl :-)

Цей червень 2018 року вирішив це для мене (перша відповідь): arduino.stackexchange.com/questions/51729/…
Майкл Сімс

Відповіді:


62

Це викликано загальною помилкою підключення між вашим комп’ютером та Arduino і може виникнути внаслідок багатьох різних конкретних проблем.

Ось кілька простих речей, які часто можуть виправити цю помилку:

  • Від'єднайте та підключіть USB-кабель.
  • Натисніть кнопку скидання на дошці.
  • Перезапустіть Arduino IDE.
  • Переконайтесь, що ви обрали потрібну дошку Tools ► Board ►, наприклад, якщо ви використовуєте Duemilanove 328, виберіть її замість Duemilanove 128. Дошка повинна сказати, у якій версії вона є на мікрочіпі.
  • Переконайтесь, що ви обрали потрібний порт Tools ► Serial Port ►. Один із способів визначити, на якому порту він знаходиться, виконавши наступні кроки:
    1. Від'єднайте кабель USB.
    2. Перейдіть до Tools ► Serial Port ►списку портів (наприклад, COM4 COM5 COM14).
    3. Підключіть USB-кабель.
    4. Поверніться до Tools ► Serial Port ►та подивіться, який порт з'явився, якого раніше не було.
  • Переконайтесь, що цифрові штифти 0 і 1 не мають з'єднаних деталей, включаючи екрани.

Якщо нічого з цього не виходить, вам потрібно спробувати вирішити проблему, замінивши речі: спробуйте інший комп’ютер на одному ардуїно, спробуйте інший ардуїно на тому ж комп’ютері та спробуйте використовувати інший кабель USB.

Якщо проблема пов’язана з комп’ютером:

  • Двічі перевірте всі проблеми, пов'язані з комп’ютером, у списку "легких виправлень" вище.
  • Перевстановіть IDE.
  • Перевстановіть драйвери.

Якщо проблема стосується Arduino:

  • Двічі перевірте всі проблеми, пов’язані з дошкою, у списку "легких виправлень" вище.
  • Переконайтесь, що мікроконтролер встановлений правильно.
  • Можливо, вам потрібно буде записати завантажувач .
  • Замініть мікроконтролер, якщо поблизу є ще один.
  • Можливо, ви завели цеглину свого Arduino. Вибачте :(

3
Є й інші можливі причини. Ви могли пошкодити ATmega, ви могли пошкодити завантажувач ATmega, у вас могли виникнути проблеми з живленням або безліч інших можливостей. Це not in sync: resp=0x00справді загальне повідомлення "ATmega не відповідає". Все, що може змусити ATmega не реагувати, може спричинити це.
Вонор Коннор

Тож чи можу я нічого не мати в 0 або 1 ніколи?
Тім

2
@Tim Ви можете підключити речі до цих штифтів, але вам потрібно від'єднати їх, якщо ви хочете спілкуватися зі своїм Arduino через USB-кабель.
Хлопець з капелюхом

Я отримав цю помилку в самому своєму першому Duemillanove років тому. Це був мертвий чіп UART (або з'єднання від USB до мікросхеми UART). Дуже засмучує. Купив програміст AVR і спалив завантажувач. Придбав інший процесор із попередньо завантаженим завантажувачем. Поки постачальник не надіслав заміну, що я зміг приєднатися до світу прихильників Arduino (і в мене зараз є два запасні процесори).
linhartr22

"Від'єднайте та підключіть USB-кабель" працює для мене
Грейс Шао,

20

Ще одне виправлення:

Змінити Tools->Processor->Atmega 328Pна Atmega 328P (Old Bootloader). Нагадайте, що ця Processorопція доступна лише тоді, коли ви обрали певні дошки на Tools>Board.

Це працювало для мого Arduino Nano з CH340, використовуючи Arduino IDE 1.8.5 під Linux Ubuntu 17.10. Крім того, це, мабуть, станеться, якщо ви використовуєте IDE 1.8.9 або новішу версію і отримаєте старий або клонований Nano.


3
Це було рішення! Новий завантажувач використовує вдвічі швидкість передачі даних (115200 замість 57600).
Suuuehgi

1
Ваша відповідь виправляє мою проблему. Дякую!
Владислав Савченко

12

На жаль, це також може означати, що ви записали мікроконтролер. Ви робили щось небезпечне прямо перед тим, як спробувати завантажити новий ескіз? Чи працює мікроконтролер із завантаженим раніше ескізом?


10

Якщо жоден з перерахованих вище кроків не працює, спробуйте перевстановити Avrdude та компілятор avr-gcc. Мені довелося це зробити після того, як моя Мега почала страждати від цього.

Якщо ви встановили Avrdude та avr-gcc окремо, просто видаліть їх. якщо ні, можливо, доведеться перевстановити ID Arduino IDE. Ці кроки залежать від вашої операційної системи.


Це малоймовірно, що проблема буде викликана через використовуваний ланцюжок інструментів. Це занадто екстремально, ІМО.
asheeshr

3
Це єдиний спосіб, коли я міг би вирішити свою проблему
TheDoctor

Про який процес установки ви говорите? Інструмент редактора arduino просто розпаковується. Немає процесу встановлення.
Коннор Вольф

9

У мене було те саме повідомлення. Кожен раз, коли це було вирішено, вибираючи потрібний порт, тобто USB, під меню Інструменти, а потім - Порти. Це простий крок, але я завжди забуваю. Я відключу Arduino, щоб зупинити поточну програму, знову підключу її до мого комп'ютера, щоб завантажити нову програму, і отримаю помилку, паніку, прокляття, і лише тоді пам’ятайте.


1
Я думаю, що це найпоширеніше рішення.
пташенята

9

У моєму випадку я не підключив штифт RTS мікросхеми FTDI до конденсатора, який перейшов до штифта RST Arduino Pro Mini. Після встановлення цього з'єднання я більше не отримав помилку, і мені вдалося завантажити код.

Нік Гаммон пояснює це на своєму форумі . Я додав картину, де / як повинен бути розміщений конденсатор. введіть тут опис зображення


+1 за гарну картинку підключення програміста usb безпосередньо до мікросхеми atmega.
raddevus

У мене також були погані зв’язки на моїй дошці, я відключив все від мережі та завантажив основний ескіз, і він спрацював. А тепер зрозумійте, який кабель не в потрібному місці
Сераф

5

У мене була точно така ж проблема. Я спробував встановити IDE на інший ноутбук і завантажив програму з цього ноутбука. Проблема вирішена. Потім я повернувся до свого ноутбука, видалив IDE і знову встановив його. Він почав працювати.

Однак я не був задоволений, тому що я не міг знайти джерело проблеми ... тому я спробував запустити все знову точно так само ... Я знайшов проблему, але не впевнений, чи може це бути фактичною причиною її .

У своєму проекті мені потрібно було здійснити послідовний зв’язок між ардуїно та MATLAB (GUI). Для того, щоб побачити / перевірити вихідні дані (тип) серійних даних MATLAB (GUI), я використав HYPERTERMINAL, а також ВІРТУАЛЬНИЙ СЕРІЙНИЙ ПОРТ-ЕМУЛЯТОР. Я помітив, що кожного разу, коли гіпертермінал працює або VSPE працює, поки мій серійний монітор на ньому, вкручується функція завантаження програми. Я не впевнений, що це через VSPE або HYPERTERMINAL, але перевстановлення IDE працювало на мене.


2
Одна з ліній послідовного управління, я думаю, це DTR, використовується для скидання Arduino. Коли ви намагаєтесь запрограмувати свій Arduino, ваша термінальна програма може заважати.
linhartr22

Це працювало для мене лише тоді, коли я також видалив свою папку «Бібліотека Arduino», яка містить усі налаштування та додаткові вкладки.
Jethro

3

Для людей, які використовують Linux Mint, я виявив, що вибравши порт "TTY SO" замість того, щоб позначати "Arduino", він би спрацював (я не можу вам точно сказати, тому що у мене немає цього комп'ютера перед собою) .

Потім наступного разу, коли я застосував Arduino, я знову отримав те саме повідомлення, тому я повернувся назад до порту "Arduino", і з тих пір він працював так.

Я не такий технічно обізнаний, як решта з вас, хлопці, тому я не маю уявлення, чому це працює чи в чому проблема, але це спрацювало, і це все, що мені важливо. Можливо, це комусь стане в нагоді.


3

Я видалив IDE і драйвери і т. Д., Встановив все це знову, а потім запустив Arduino IDE як адміністратор і встановив запуск сумісності як Windows 7 (я зараз використовую 10).

Я також змінив програміста на AVR ISP (я не думаю, що це має значення, але я все-таки змінив його).

Все знову працює ... сподіваємось, це теж може допомогти комусь.


2

Незвичайний, але я багато міняв мікроконтролери, і я отримав цю помилку, коли один не сидів правильно .. Я зміг записати кілька разів, але, мабуть, він вислизнув назад - трохи натисніть на спину ATMega328 виправив це!


1

Існує також можливість встановлення самого контролера неправильно в розетку на Arduino. Це може бути небезпечно для контролера (який може зациклюватися), але, в моєму випадку, він видав лише помилку синхронізації, не даючи мені завантажувати код.

Тому просто перевірте, чи виїмка на ІМС у правильному напрямку (ви можете перехрестити перевірку із зображеннями дошки в Інтернеті). Насічка на контролері Uno повинна вказувати на край плати.


1

У мене з’явилася і ця помилка. Це було вперше використання нової дошки Arduino Nano після того, як я припаяв заголовки. Тільки набравши ескіз Blink, до плати нічого не було пов’язано.

Я виявив крихітку припою між штифтами "ЗЕМЛЯ" та "RESET". Я вибрав його, і тоді я міг завантажити нормально.

Я гадаю, це може статися, якби у вас десь був такий самий короткий ланцюг.


1

Якраз була така сама помилка з абсолютно новим Mini Pro. Оскільки програма замикання за замовчуванням, яка була встановлена ​​з більшою частиною Arduino, працює, я знаю, що пристрій, ймовірно, добре.

Тож я оглянув заголовки, які я просто припаяв ще один раз, і виявив, що на штифтах TX0 не вистачає припою. Після повторної пайки кожен твір.


1

Після безлічі відключення, перевірки портів, перезавантаження IDE і т. Д. Тин, який, здавалося, змінив виправлення цієї помилки з Arduino Mega 2560, полягає в тому, щоб видалити Windows Arduino драйвер Windows, а потім перевстановити його usig драйвер і вибрати вручну зі списку> com ports> arduino http://drivers.softpedia.com/get/Other-DRIVERS-TOOLS/Others/Arduino-Mega-2560-USB-Driver-1110-for-Windows-7-64-bit.shtml Можливо, у мене є перевірив його на моїм уно, потім повернувся до мега, тому є невеликий шанс поговорити з Uno зробив AVRDUDE щасливим, але малоймовірним.


1

Коли у мене виникає проблема з завантаженням на мої дошки, я завантажую іншу програму, наприклад приклад моргання. Здається, це щось скидає, і тоді я можу завантажити власну програму (яка досить велика).

Можливо, варто спробувати це перевірити, чи працює він у вашому випадку, хоча я поняття не знаю, чому це працює.


яка дошка та завантажувач?
Юрай

Arduino Nano, ATMega328P (не третя сторона). Версія апаратного забезпечення: 2, версія прошивки: 1.16, підпис пристрою 0x1e950f Я не перевіряв завантажувач, але вони рекламуються як "традиційний завантажувач"
Jethro

тож ваша відповідь специфічна для старого завантажувача Nano
Юрая

Дякую! Я перегляну завантажувачі та спробую оновити її. Чи є у вас інформація про цю помилку?
Jethro

1

У мене була подібна проблема з моєю дошкою Uno

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x90

Перепробував багато методів

  • Натисніть скинути, перш ніж надсилати пакети
  • різні версії IDE
  • Заміна кабелю
  • Зміна самого контролера
  • Тест на зворотний зв'язок

але все вищесказане не вдалося.

Я використовую Ubuntu 16.04.4 LTS 4.15.0-33-generic(під час написання цього коментаря). Модуль CDC ACM не завантажувався, тому не /dev/ttyACM0було створено жодного пристрою для виборуArduino IDE -> Tools -> Port

Тому знайдіть назву модуля та завантажте його

$ lsusb 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


$ sudo modprobe cdc-acm

Вищевказана команда вставить необхідний модуль. Тепер я можу вибрати потрібний порт і завантажити код

З різних рішень це працювало для мене, сподіваюся, що це теж допомагає комусь.



0

Я зіткнувся з тією ж проблемою для деяких кодів сьогодні, і я вирішив її так:

1- Спочатку я запустив базовий індикатор, що миготить. Це дало таку ж помилку. Це підтверджує, що помилка в завантаженні і не має нічого спільного з компілюванням. Я також перевірив, чи добре складається мій код.

2- Я взяв іншу дошку, але на цьому ПК вона добре працювала. Це означає, що комп'ютер і USB-провід у порядку.

3- Я підключив несправну плату до іншого ПК, і дивно, що не було такої помилки при завантаженні. Це дало мені підказку щодо проблем із драйвером у першому ПК.

4- Так я видалив драйвер і знову встановив його на перший ПК, завантаживши звідси

(переконайтесь, що під час встановлення драйвера за цим посиланням ви залишатимете вашу плату підключеною до ПК)

Зараз добре працювало :-)


0

Ця помилка була в моєму ноутбуці Linux Mint 17.3 з Arduino Nano avrdude: stk500_getsync (): не синхронізовано: resp = 0x00

Вирішено:

  • вилучив усе, що було в назві "arduino" або "avr"
  • видалено каталоги .arduino та .arduino15 (відзначте крапку у назві)
  • видалено версію 1.8.7 з видаленням пакету
  • apt-get install arduino (версія 1.1.0)
  • перевірено простим ескізом (все нормально)
  • встановлена ​​версія 1.8.7 з встановленням пакету
  • складено.
  • вибрано ATmega328p (старий завантажувач) для процесора, Arduino Nano для картки та / dev / ttyUSB0 для порту => ІТ РОБОТИ!

Здається, у цьому випадку виправданим був "Старий завантажувач". У мене зараз обидві версії 1.1.0 та 1.8.7, кого це хвилює.


спершу слід прочитати відповідь з aguadopd
Juraj
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.