«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
Хорошее название! Я сам
допустил

6
+1 за титул: D ... Я действительно ненавижу этого парня так же сильно, как и ты!
Дэвид Рефуа

Попробуйте установить драйвер (cp2102) для Arduino. Это помогло мне. Спасибо за предыдущие ответы ppl :-)

Это сообщение в июне 2018 года решило это для меня (1-й ответ): 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 не подключены никакие части, включая экраны.

Если ничего из этого не работает, вы можете попытаться изолировать проблему, заменив ее: попробуйте другой компьютер на том же Arduino, попробуйте другой Arduino на том же компьютере и попробуйте использовать другой 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 отдельно, просто удалите их. в противном случае вам, возможно, придется переустановить Arduino IDE. Эти шаги будут зависеть от вашей операционной системы.


Весьма маловероятно, что проблема будет вызвана из-за используемого набора инструментов. Это слишком экстремально, ИМО.
asheeshr

3
Это единственный способ решить мою проблему
TheDoctor

О каком процессе установки вы говорите? Инструмент редактора Arduino просто распакован. Там нет процесса установки.
Коннор Вольф

9

У меня было то же сообщение. Каждый раз это было решено путем выбора правильного порта, то есть USB, в меню Инструменты, затем Порты. Это простой шаг, но я всегда забываю. Я отключу Arduino, чтобы остановить текущую программу, подключить его снова к моему компьютеру, чтобы загрузить новую программу и получить сообщение об ошибке, панике, проклятии, и только потом, помните.


1
Я думаю, что это наиболее распространенное решение.
птенцы

9

В моем случае я не подключал вывод RTS чипа FTDI к конденсатору, который подключался к выводу RST Arduino Pro Mini. После того, как я установил это соединение, я больше не получал сообщение об ошибке и смог загрузить код.

Ник Гаммон объясняет это на своем форуме . Я добавил картинку, где / как должен быть установлен конденсатор. введите описание изображения здесь


+1 за красивую картину подключения USB-программиста непосредственно к чипу atmega.
Раддевус

У меня также были некоторые плохие связи на моей плате, я отключил все и загрузил простой эскиз, и это сработало. Теперь пойди разберись, какой кабель не в нужном месте
Сераф

5

У меня была точно такая же проблема. Я попытался установить IDE на другой ноутбук и загрузил программу с этого ноутбука. Задача решена. Затем я вернулся к своему ноутбуку, удалил IDE и переустановил его ... он начал работать.

Тем не менее, я не был удовлетворен, потому что я не мог найти источник проблемы ... поэтому я попытался запустить все снова точно таким же образом ... Я нашел проблему, но не уверен, может ли это быть реальной причиной ее ,

В моем проекте мне нужно было осуществлять последовательную связь между Arduino и MATLAB (GUI). Чтобы увидеть / проверить вывод (тип) последовательных данных MATLAB (GUI), я использовал HYPERTERMINAL, а также VIRTUAL SERIAL PORT EMULATOR. Я заметил, что каждый раз, когда работает гипертерминал или работает VSPE, когда мой последовательный монитор включен, отключает функцию загрузки программы. Я не уверен, что это из-за VSPE или HYPERTERMINAL, но переустановка IDE сработала для меня.


2
Одна из линий последовательного управления, я думаю, это DTR, используется для сброса Arduino. Когда вы пытаетесь запрограммировать Arduino, ваша терминальная программа может создавать помехи.
linhartr22

Это сработало для меня, только когда я также удалил свою папку библиотеки Arduino, которая содержит все настройки и дополнительные библиотеки.
Джетро

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 Sketch, ничего не было связано с платой.

Я нашел крошечный припой между контактами GROUND и RESET. Я снял его, а затем я мог загрузить нормально.

Я полагаю, это могло бы произойти, если бы у вас было то же самое короткое замыкание в цепи.


1

Просто была такая же ошибка с совершенно новым Mini Pro. Так как программа мигания по умолчанию, которая была загружена с большинством Arduino, работает, я знаю, что устройство, вероятно, в порядке.

Поэтому я проверил заголовки, которые я только что припаял еще раз, и обнаружил, что на выводах TX0 недостаточно припоя. После перепайки каждый работает.


1

После многих отключений, проверки портов, перезапуска IDE и т. Д., Казалось, что исправление этой ошибки с помощью Arduino Mega 2560 помогло удалить драйвер Windows Arduino для Windows, затем переустановить его с помощью драйвера и выбрать его вручную из списка> com порты> arduino http://drivers.softpedia.com/get/Other-DRIVERS-TOOLS/Others/Arduino-Mega-2560-USB-Driver-1110-for-Windows-7-64-bit.shtml У меня может быть проверил его на моем uno, затем вернулся к мега, так что есть небольшой шанс поговорить с uno, сделав AVRDUDE счастливым, но маловероятным.


1

Когда у меня возникают проблемы с загрузкой на свои форумы, я загружаю другую программу, например, пример мерцания. Кажется, это что-то сбрасывает, и я могу загрузить свою собственную программу (довольно большую).

Возможно, стоит попробовать это, чтобы увидеть, работает ли это в вашем случае, хотя я понятия не имею, почему это работает.


какая плата и загрузчик?
Юрай

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

так что ваш ответ специфичен для старого загрузчика Nano
Juraj

Спасибо! Я посмотрю на загрузчики и попробую обновить его. У вас есть информация об этой ошибке?
Джетро

1

У меня была похожая проблема с моей платой Uno

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

Перепробовал много методов

  • Нажмите сброс перед отправкой пакетов
  • разные версии IDE
  • Сменить кабель
  • Сменить сам контроллер
  • Loopback test

но все вышеперечисленное не удалось.

Я использую 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

Я решил это путем обновления досок (в разделе «менеджер досок»)


У тебя есть Arduino Nano?
per1234

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 установить 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.