Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?

Всякий раз, когда я пытаюсь запрограммировать Arduino UNO Rev.3, я вижу следующую ошибку

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00

Когда я подключаю его, я вижу индикатор питания. Никаких кабелей, кроме USB, не подключено. У меня есть другой Arduino UNO, который отлично работает, когда я загружаю скетч (я использую базовый скетч Blink). Как решить эту проблему? Что это может быть за проблема?

, 👍16

Обсуждение

Убедитесь, что к последовательному интерфейсу не подключены провода (контакты 0 и 1)., @Ikbel

@KiraSan обновил вопрос, добавив дополнительную информацию (ничего не подключено к 1 или 0)., @user157251

Я думаю, вам следует рассмотреть возможность использования этого Arduino Duo для перезапуска загрузчика вашего Arduino UNO., @Ikbel

Также перед этим убедитесь, что вы выбрали AVR ISP в качестве программатора и выбрали правильную плату., @Ikbel

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

Какую ОС вы используете?, @VE7JRO

Решение D_Graeme - это то, что сработало для меня (Nano, OSX). Вот вопрос о переполнении стека со многими ответами/решениями: [Проблема загрузки Arduino Sketch - avrdude: stk500_recv(): программист не отвечает] (https://stackoverflow.com/q/19765037/1287812), @brasofilo


6 ответов


1

Вы уже пробовали это? https://stackoverflow.com/a/20735393/5507619

У меня была эта проблема с Crowduino, работающим с Arduino IDE на OSX. Решение для меня состояло в том, чтобы включить подробный вывод во время загрузки (в панель настроек Arduino IDE).

Затем при загрузке вы увидите, что avrdude отправляет три пакета avrdude: Отправить: 0 [30] [20] (с соответствующими миганиями RX на board) прямо перед avrdude: ser_recv(): программист не ошибка ответа.

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

,

1

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

,

1

У меня была та же проблема, однако я смог решить ее следующим образом:

  • перезагружаю компьютер
  • или, заменив кабель, в основном переключаясь между двумя USB-кабелями (может быть, нужно было просто отключить USB и снова подключить).

  • или сброс COM-порта

    1. закрытие Arduino IDE
    2. отключение COM-порта
    3. включение COM-порта
    4. открытие Arduino IDE
,

26

Попробовав многочисленные предложения, 2 разные платы, 3 разных кабеля на машине с WinXP и Win7, я, наконец, заработал, выбрав «Инструменты -> Процессоры -> Старый загрузчик ATmega 328P»

,

Хотя этот ответ был бы правильным для Nano, этот вопрос касается Uno, поэтому ваш ответ не по теме. У нас уже есть вопрос по этой проблеме Nano: https://arduinoprosto.ru/q/51771, @per1234

У меня было наоборот: пришлось выбирать nanoatmega328new на PlatformIO. Спасибо приятель, @refex

Я использую код VS. К сожалению, нет меню «Инструменты», которое я могу найти., @lurker


4

У меня была эта проблема при работе с Arduino IDE и XOD, запущенным поверх нее. Что я нашел; похоже, что скорости передачи устанавливались по-разному на разных этапах настройки. Я сравнил «настройки устройства» Windows, настройки Arduino IDE и настройки XOD… и они не совпадают и, кажется, меняются? ...отсюда и ошибки 'avrdude:stk500_****!

Для демонстрации

Подключите плату Arduino к USB-разъему ПК.

  1. В Windows 7; Панель управления\Система и безопасность\Система\Диспетчер устройств... затем дважды щелкните "Порты (COM и LPT)"

    Вы должны увидеть FTDI

    или

    USB-SERIAL CH340(COM7) ... для китайского последовательного коммуникационного чипа на плате arduino. Щелкните правой кнопкой мыши и проверьте "Свойства\Настройки порта" и обратите внимание на значение "Бит в секунду": например, 57600... (запишите!)

  2. Откройте интегрированную среду разработки arduino, нажмите «Файл\Настройки» и установите флажок «Показать подробный вывод во время загрузки». Затем закройте экран «Настройки».

  3. Загрузите небольшую работающую программу. например Файл\Примеры\01.Blink

  4. В настройках платы Arduino в Arduino IDE;

    Инструменты\Плата... например, Arduino Nano

    Инструменты\Процессор... например, ATmega328P

    Например, Tools\Port:COM7... убедитесь, что установлен флажок.

    Инструменты\Получить информацию о плате... покажет информацию от серийного чипа Arduino (хороший признак того, что ваш usb-кабель работает!)

  5. На панели инструментов IDE выберите;

    • "Подтвердить" и вскоре должно появиться сообщение "Компиляция завершена"

    • Нажмите «Загрузить», и программа Blink должна загрузиться в микросхему Arduino.

  6. А теперь интересное наблюдение; Подробное сообщение в нижней части экрана IDE укажет, какая используется «Переопределяющая скорость передачи: XXXXX»! Запишите это число рядом со значением, найденным в настройках устройств Windows.

  7. Теперь, если вы любитель XOD, оставьте интегрированную среду разработки Arduino запущенной и запустите XOD.

  8. Откройте XOD IDE и откройте (Развернуть), скажите программу 01-hello и загрузите ее в плату Arduino.

  9. Выберите «welcome-xod» и выберите программу 01-hello в меню слева.

  10. Выберите «Развернуть\Загрузить в Arduino...»

  11. выберите "Модель платы:" и "Последовательный порт:"... например, COM7

  12. Прокрутите вверх окно "Развертывание", и вы увидите еще одно значение с пометкой "Переопределение скорости передачи: например, 115200"

Я ОБНАРУЖИЛ, ЧТО ЭТИ НАСТРОЙКИ СКОРОСТИ ПЕРЕДАЧИ ИЗМЕНЯЮТСЯ НЕОБЪЯСНИМЫМ ОБРАЗОМ!

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

,

Спасибо Лионельб! Что мне нужно было сделать, так это перейти в «Инструменты» и изменить порт на COM3 вместо COM1, который использовался для последовательного порта в моей системе. Это было после прочтения вашего решения и проверки Панели управления\Система и безопасность\Система\Диспетчер устройств. У меня не было проблем с битами в секунду, но это тоже полезно., @DeepDive49

Спасибо сработало для меня. После File\Preferences и отметив опцию «Показать подробный вывод во время: 'upload'. Мне нужно было только установить биты в секунду в диспетчере устройств для используемого com.port., @stacker

Чтобы снова загрузить программу, мне нужно было изменить скорость передачи данных на 9600 (после первоначальной 57600)., @stacker


0

Для меня это был вопрос -B 10 вместо -b xxxx. Итак:

sudo ~/arduino-1.8.12/hardware/tools/avr/bin/avrdude -P /dev/ttyACM0 -B 10 -c arduino -p m328p -C ~/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf -U eeprom:r:eeprom.hex:r
,