"avrdude: stk500_getsync(): not in sync: resp=0x00", или некто по имени Avr не позволяет мне загрузить мою программу
На днях я сделал потрясающую программу и хотел загрузить ее на ардуино. После нажатия кнопки загрузить появился какой-то злобный чувак по имени авр и остановил меня, сказав:
avrdude: stk500_getsync(): не синхронизировано: resp=0x00
Все, что я хочу сделать, это просто загрузить свою программу, но avr мне не позволяет. Он даже неразборчив, так что может ли кто-нибудь сказать мне, что, черт возьми, он пытается сказать и как от него избавиться?
т. е.:
Всякий раз, когда я пытаюсь загрузить программу на ардуино, я получаю следующее сообщение об ошибке:
avrdude: stk500_getsync(): не синхронизировано: resp=0x00
Что это значит и как я могу это исправить?
@The Guy with The Hat, 👍183
Обсуждение21 ответ
Лучший ответ:
Это вызвано общей ошибкой соединения между вашим компьютером и Arduino и может быть вызвано множеством различных конкретных проблем.
Вот несколько простых вещей, которые часто могут исправить эту ошибку:
- Отсоедините и снова подсоедините USB-кабель.
- Нажмите кнопку сброса на плате.
- Перезагрузите Arduino IDE.
- Убедитесь, что вы выбрали правильную плату в
Tools ► Board►
, например Если вы используете Duemilanove 328, выберите его вместо Duemilanove 128. Плата должна сказать, какая версия находится на микрочипе. - Убедитесь, что вы выбрали правильный порт в
разделе Инструменты ► Последовательный порт ►
. Один из способов выяснить, на каком порту он находится, - это выполнить следующие действия:- Отсоедините USB - кабель.
- Перейдите в
раздел Инструменты ► Последовательный порт ►
и посмотрите, какие порты перечислены (например, COM4 COM5 COM14). - Снова подключите USB-кабель.
- Вернитесь в
меню Инструменты ► Последовательный порт ►
и посмотрите, какой порт появился раньше.
- Убедитесь, что цифровые контакты 0 и 1 не имеют подключенных деталей, включая экраны.
Если ни один из них не работает, вы захотите попытаться изолировать проблему, заменив вещи: попробуйте другой компьютер на том же arduino, попробуйте другой arduino на том же компьютере и попробуйте использовать другой USB-кабель.
Если проблема связана с компьютером:
- Дважды проверьте все проблемы,связанные с компьютером, в списке "легкие исправления" выше.
- Переустановите IDE.
- Переустановите драйверы.
Если проблема в Arduino:
- Дважды проверьте все проблемы, связанные с платой, в списке "легкие исправления" выше.
- Убедитесь, что микроконтроллер установлен правильно.
- Возможно, вам придется сжечь загрузчик.
- Замените микроконтроллер, если у вас есть другой под рукой.
- Возможно, вы замуровали свой Arduino. Извините :(
Есть и другие возможные причины. Вы могли повредить ATmega, вы могли повредить загрузчик ATmega, у вас могли быть проблемы с питанием или множество других возможностей. Сообщение "not in sync: resp=0x00" на самом деле является общим сообщением "ATmega не отвечает". Все, что может привести к тому, что ATmega не ответит, может привести к этому., @Connor Wolf
Так могу ли я вообще ничего не иметь в 0 или 1?, @Tim
@Tim Вы можете подключить материал к этим контактам, но вы должны отключить их, если хотите общаться с Arduino через USB-кабель., @The Guy with The Hat
Я получил эту ошибку на своем самом первом Duemillanove много лет назад. Это был мертвый чип UART (или подключение от USB к чипу UART). Очень неприятно. Я купил программатор AVR и сжег загрузчик. Купил еще один процессор с предустановленным загрузчиком. Только когда поставщик прислал замену, я смог присоединиться к миру поклонников Arduino (и теперь у меня есть два запасных процессора)., @linhartr22
"Отсоедините и снова подключите USB-кабель" работает для меня, @Grace Shao
Часть о контактах 0 и 1. Своего рода отстой, когда весь смысл вашего проекта - это порт 232 на контактах 0 и 1. ТЬФУ, @YetAnotherRandomUser
"Нажмите кнопку сброса на плате" помогло., @user6039980
Большое вам спасибо. Эта ошибка исчезла, когда я снял экран Ethernet и попытался загрузить файл. Вы только что помогли мне уложиться в серьезный срок., @byxor
Не могли бы вы добавить также Tools->Processor->Atmega 328P к Atmega 328P (Старый загрузчик) в список возможных решений., @Vladyslav Savchenko
Примечание о загрузчике: На Arduino Uno и Mega 2560 на самом деле есть два загрузчика! Один на микроконтроллере, на который записывается скетч, и один на 16u2, который обрабатывает стек USB и действует как фактический программатор для sketch-micro. В моем случае проблема была в 16u2., @iFreilicht
Я купил 3 упаковки дешевых rexqualis nanos на amazon. Первый, который я пробовал, продолжал давать мне эту ошибку, поэтому я попробовал другой, и он работал нормально...странно, @Kyle Pennell
Для меня это был компонент, подключенный к цифровому порту 0, @Peter Smit
@TheGuywithTheHat: вы были абсолютно правы. Я купил свою плату на Aliexpress https://www.aliexpress.us/item/2251832472713563.html?spm=a2g0o.order_detail.0.0.8149f19c0AgE4n&gatewayAdapt=glo2usa&_randl_shipto=US и пытался использовать «Arduino Pro или Pro Mini» в качестве платы. которые продолжают выдавать мне эту ошибку, после того, как я прочитал больше о плате, я понял, что она основана на ESP8266, поэтому я установил драйвер, а затем выбрал «Node MCU 1.0», который работал очень хорошо. Большое спасибо., @Shahin Shirazi
Если ни один из вышеперечисленных шагов не сработает, попробуйте переустановить Avrdude и компилятор avr-gcc. Мне пришлось сделать это после того, как мой Мега начал страдать от этого.
Если вы установили Avrdude и avr-gcc отдельно, просто удалите их. если нет, то вам, возможно, придется переустановить Arduino IDE. Эти шаги будут зависеть от вашей операционной системы.
Крайне маловероятно, что проблема будет вызвана используемой цепочкой инструментов. Это слишком экстремально, ИМО., @asheeshr
О каком процессе установки вы говорите? Инструмент arduino editor просто распакован. Процесс установки отсутствует., @Connor Wolf
К сожалению, это также может означать, что вы сожгли свой микроконтроллер. Вы делали что-нибудь опасное прямо перед тем, как попытались загрузить новый скетч? Работает ли микроконтроллер с ранее загруженным скетчем?
У меня была точно такая же проблема. Я попытался установить IDE на другой ноутбук и загрузил программу с этого ноутбука. Проблема решена. Затем я вернулся к своему ноутбуку, удалил IDE и переустановил его ... он начал работать.
Однако я не был удовлетворен, потому что не мог найти источник проблемы... поэтому я попытался запустить все снова точно так же... Я нашел проблему, но не уверен, что это может быть ее реальной причиной.
В моем проекте мне нужно было осуществить последовательную связь между arduino и MATLAB (GUI). Чтобы увидеть/проверить вывод(тип) последовательных данных MATLAB (GUI), я использовал HYPERTERMINAL, а также ЭМУЛЯТОР ВИРТУАЛЬНОГО ПОСЛЕДОВАТЕЛЬНОГО ПОРТА. Я заметил, что каждый раз, когда hyperterminal работает или VSPE работает, когда мой последовательный монитор включен, он портит функцию загрузки программы. Я не уверен, что это из-за VSPE или HYPERTERMINAL, но переустановка IDE сработала для меня.
Одна из последовательных линий управления, я думаю, это DTR, используется для сброса Arduino. Когда вы пытаетесь запрограммировать свой Arduino, ваша терминальная программа может вмешиваться., @linhartr22
Это сработало для меня только тогда, когда я также удалил папку библиотеки Arduino, которая содержит все настройки и дополнительные библиотеки., @Jethro
Я получил то же самое сообщение. Каждый раз это решалось путем выбора правильного порта, т. е. USB, в меню Tools, а затем Ports. Это простой шаг, но я всегда забываю. Я отключу Arduino, чтобы остановить текущую программу, снова подключу ее к компьютеру, чтобы загрузить новую программу, получу ошибку, панику, проклятие и только потом вспомню.
Для людей, использующих Linux Mint, я обнаружил, что, выбрав порт "TTY SO" вместо порта с надписью "Arduino", он будет работать (я не могу сказать вам точно, потому что сейчас у меня нет этого компьютера передо мной).
Затем, когда я использовал Arduino в следующий раз, я снова получил то же самое сообщение, поэтому я переключился обратно на порт "Arduino", и с тех пор он работал именно так.
Я не так технически осведомлен, как остальные из вас, ребята, поэтому понятия не имею, почему это работает и в чем проблема, но это сработало, и это все, что меня волнует. Может быть, это кому-то пригодится.
В моем случае я не подключал вывод RTS чипа FTDI к конденсатору, который шел к ПЕРВОМУ выводу Arduino Pro Mini. Как только я установил это соединение, у меня больше не было ошибки, и я смог загрузить код.
Ник Гэммон объясняет это на своем форуме. Я добавил изображение того, где/как должен быть размещен конденсатор.
+1 за приятную картинку подключения USB - программатора непосредственно к чипу atmega., @raddevus
У меня тоже были некоторые плохие соединения на плате, я отключил все и загрузил базовый скетч, и он сработал. Теперь поди разберись какой кабель не в том месте, @Seraf
Я использую ATMEGA8-16PC. Я записал загрузчик на микроконтроллер с помощью контактов SCK, MISO и MOSI на моем Arduino Uno. Нужно ли мне тогда менять соединения на TxD и RxD, чтобы загрузить скетчи в микроконтроллер? Например, заставить мигать светодиод на выводе 1 микроконтроллера., @most venerable sir
Я удалил IDE и драйверы и т. Д., Установил все это снова, затем запустил Arduino IDE как администратор и установил совместимость с Windows 7 (в настоящее время я использую 10).
Я также сменил программатор на AVR ISP (я не думаю, что это имеет значение, но я все равно изменил его).
Все снова работает... надеюсь, это поможет и кому-то еще.
Необычно, но я много менял микроконтроллеры и получил эту ошибку, когда один из них сидел неправильно.. мне удалось сжечь несколько раз, но я думаю, что он выскользнул обратно - небольшой толчок на задней панели ATmega328 исправил это!
Существует также вероятность того, что сам контроллер будет неправильно помещен в гнездо на Arduino. Это может быть опасно для контроллера (который может быть заблокирован), но в моем случае он только выдал ошибку несинхронизации, не позволив мне загрузить код.
Поэтому просто проверьте, находится ли выемка на микросхеме в правильном направлении (вы можете свериться с изображениями платы онлайн). Выемка на контроллере Uno должна быть направлена к краю платы.
У меня тоже была эта ошибка. Это был первый раз, когда я использовал новую плату Arduino Nano после того, как я припаял заголовки. Просто за исключением Моргающего Скетча, с платой ничего не было связано.
Я обнаружил недостаток припоя между контактами ЗАЗЕМЛЕНИЯ и СБРОСА. Я снял его, а затем смог загрузить ok.
Я полагаю, это могло бы произойти, если бы у вас было такое же короткое замыкание где-нибудь в цепи.
Только что произошла та же ошибка с совершенно новым Mini Pro. Поскольку программа blink по умолчанию, которая была предварительно загружена с большинством Arduino, запущена, я знаю, что устройство, вероятно, в порядке.
Поэтому я еще раз осмотрел заголовки, которые только что припаял, и обнаружил, что на контактах TX0 недостаточно припоя. После повторной пайки все работает.
Еще одно исправление:
Измените Инструменты->Процессор->Atmega 328P
на Atmega 328P (Старый загрузчик)
. Напомним, что опция Процессор
доступна только при выборе некоторых конкретных плат в меню Инструменты>Плата
.
Это сработало для моего Arduino Nano с CH340, используя Arduino IDE 1.8.5 под Linux Ubuntu 17.10. Кроме того, это, вероятно, произойдет, если вы используете IDE 1.8.9 или новее и получите старый или клонированный Nano.
Это было решение! Новый загрузчик использует вдвое большую скорость передачи данных (115200 вместо 57600)., @Suuuehgi
Ты настоящий MVP., @Chris_abc
Для действительно старого клона Arduino Nano (дешевого) это было то, что меня исправило., @Derek
После большого количества отключений, проверки портов, перезапуска IDE и т. Д. Тинг, который, казалось, имел значение для исправления этой ошибки с помощью Arduino Mega 2560, состоял в том, чтобы удалить драйвер Windows USB arduino, а затем переустановить его usig драйвер здесь и выбрать вручную из списка>com-порты>arduino http://drivers.softpedia.com/get/Other-DRIVERS-TOOLS/Others/Arduino-Mega-2560-USB-Driver-1110-for-Windows-7-64-bit.shtml Возможно, я проверил это на своем uno, а затем вернулся в mega, так что есть небольшой шанс, что разговор с uno сделал AVRDUDE счастливым, но маловероятным.
Я решил эту проблему, обновив платы (в разделе "менеджер платы").
У вас есть Arduino Nano?, @per1234
Когда у меня возникают проблемы с загрузкой на платы, я загружаю другую программу, как в примере blink. Это, кажется, что-то сбрасывает, и тогда я могу загрузить свою собственную программу (которая довольно большая).
Возможно, стоит попробовать это, чтобы посмотреть, работает ли это в вашем случае, хотя я понятия не имею, почему это работает.
какая плата и загрузчик?, @Juraj
Arduino Nano, ATmega328P (не 3rd party). Версия оборудования: 2, версия прошивки: 1.16, сигнатура устройства - 0x1e950f Я не проверял загрузчик, но они рекламируются как "традиционный загрузчик"., @Jethro
итак, ваш ответ специфичен для старого загрузчика Nano, @Juraj
Спасибо! Я посмотрю на загрузчики и попытаюсь их обновить. У вас есть какая-нибудь информация об этой ошибке?, @Jethro
Сегодня я столкнулся с той же проблемой для некоторого кода и решил ее следующим образом:
1 - Сначала я запустил базовый светодиодный мигающий код. Это давало ту же ошибку. Он подтверждает, что ошибка заключается в загрузке и не имеет никакого отношения к компиляции. Я также проверил, что мой код компилируется нормально.
2 - Я взял другую плату, но на этом КОМПЬЮТЕРЕ она работала нормально. Это означает, что компьютер и USB-провод в порядке.
3 - Я подключил неисправную плату к другому компьютеру, и, что удивительно, такой ошибки при загрузке не было. Это дало мне подсказку о проблемах в драйвере на первом ПК.
4 - Поэтому я удалил драйвер и заново установил его на первый компьютер, загрузив отсюда
( убедитесь, что при установке драйвера по этой ссылке вы держите плату подключенной к ПК)
Теперь все работало нормально :-)
У меня была похожая проблема с платой Uno
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x90
Перепробовал много методов
- Нажмите кнопку reset перед отправкой пакетов
- различные версии IDE
- Сменный кабель
- Изменить сам контроллер
- Тест с обратной связью
но все вышеперечисленное не удалось.
Я использую Ubuntu 16.04.4 LTS 4.15.0-33-generic
(при написании этого комментария). Модуль CDC ACM не был загружен, поэтому не было создано устройство /dev/ttyACM0 для выбора в
Arduino IDE -> Инструменты -> Порт
Поэтому, Получите имя модуля и загрузите его
$ 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
Приведенная выше команда вставит необходимый модуль. Теперь я могу выбрать правильный порт и загрузить код
Из различных решений это сработало для меня, надеюсь, это тоже кому-то поможет.
У меня была эта ошибка в ноутбуке Linux Mint 17.3 с Arduino Nano avrdude: stk500_getsync(): not in sync: 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
Я старался не соединять одно заземление одной платы с другим заземлением на другой плате. Это прекратило проблему для меня.
Если вы используете arduino-cli
и клон Arduino Nano, вы можете изменить загрузчик на старый, как сказано в других ответах, используя следующую команду для загрузки в Arduino:
arduino-cli upload -v -p /dev/ttyUSB0 --fqbn arduino:avr:nano:cpu=atmega328old program_name
Пояснение:
командование | объяснение |
---|---|
arduino-cli |
вызов arduino-cli |
-в |
Используйте подробный вывод |
-p /dev/ttyUSB0 |
Порт, используйте список arduino-cli board , чтобы найти нужный порт |
--fqbn arduino:avr:nano:cpu=atmega328old |
Используйте библиотеку avr board, nano board и процессор Atmega328 со старым загрузчиком |
имя_программы |
Замените это на имя программы, которую вы хотите загрузить |
- avrdude: ошибка проверки, первое несоответствие в байте 0x0000 : 0x00 != 0x16 с использованием USBasp
- Загрузить код на Arduino Leonardo с помощью командной строки
- Где параметры avrdude определяются в Arduino IDE?
- Проблема с загрузкой скетча в Леонардо
- Не могу загружать шестнадцатеричные файлы вне Arduino IDE на Pro Micro
- Могу ли я повредить Arduino, если отключить от сети во время загрузки?
- avrdude: Ошибка: butterfly programmer uses avr_write_page() but does not provide a cmd() method
- Невозможно загрузить скетчс помощью Platformio (но Arduino IDE работает)
Довольно распространенное сообщение об ошибке, не всегда тривиальное для решения: http://electronics.stackexchange.com/search?q=avrdude%3A+stk500_getsync%28%29%3A+not+in+sync%3A+resp%3D0x00, @jippie
Хорошее название! У меня самого была такая ошибка..., @TheDoctor
+1 за титул :D... Я действительно ненавижу этого чувака так же сильно, как и ты!, @David Refoua
Этот пост в июне 2018 года решил эту проблему для меня (1-й ответ): https://arduinoprosto.ru/q/51729/ch340-nano-avrdude-stk500-getsync-not-in-sync-resp-0xa4, @Michael Sims
У меня была такая же проблема, и я попробовал общие предложения безрезультатно. Я мог видеть вывод старого кода на последовательном мониторе. Я переключился на UECIDE, и он был построен и загружен без каких-либо проблем или изменений. Не знаю, что происходит, но это было легко исправить., @kdahlhaus
Я работал с НАНО. И я обнаружил, что эту проблему можно решить, выбрав старый загрузчик 328 p, @Sohan Arafat
Для меня это было так же просто, как испорченный USB-кабель. Это был тот же самый кабель, которым я пользовался в прошлом, но, думаю, он в конце концов сдох. Важно отметить, что если вы получаете сообщение об ошибке синхронизации, и вы также не видите, что ваш Arduino отображается на вашем компьютере как подключенный USB-накопитель, то это определенно плохой USB-кабель., @Simon K