Не удается загрузить скетч - avrdude: butterfly_recv(): programmer is not responding

Я пытаюсь загрузить пример Blink для запуска на pro-micro (leonardo), но он больше не работает (он работал только вчера).

Шаги по воспроизведению:

  • Подключите устройство к USB-порту
  • Пример открытия Blink в Arduino IDE (версия 1.8.8)
  • Выберите порт и плату в соответствии с Arduino Leonardo
  • Скомпилируйте и попробуйте загрузить его.

Код успешно компилируется, но при загрузке он просто останавливается. Консоль ide отображает:

avrdude: ошибка: программатор не ответил на команду: выйти из загрузчика

Принудительный сброс с использованием открытия / закрытия 1200 бит / с на ПОРТАХ port / dev / ttyACM0 {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} ПОРТЫ {/dev/ttyACM0, } / {/dev/ttyACM0, } => {} Загрузка с использованием выбранного порта: /dev/ttyACM0 /главная/fabio/Загрузки/pacotes/arduino-1.8.8/оборудование /инструменты/avr/bin/avrdude -C/главная страница/fabio/Загрузки/pacotes/arduino-1.8.8/оборудование/инструменты/avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -P/dev/ttyACM0 -b57600 -D -Uflash:w:/tmp/arduino_build_350609/Blink.ino.hex:я

avrdude: Версия 6.3-20171130 Авторское право (c) 2000-2005 Брайан Дин, http://www.bdmicro.com / Авторское право (c) 2007-2014 Йорг Вунш

     System wide configuration file is "/home/fabio/Downloads/pacotes/arduino-1.8.8/hardware/tools/avr/etc/avrdude.conf"
     User configuration file is "/home/fabio/.avrduderc"
     User configuration file does not exist or is not a regular file, skipping

     Using Port                    : /dev/ttyACM0
     Using Programmer              : avr109
     Overriding Baud Rate          : 57600
     AVR Part                      : ATmega32U4
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PA0
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : butterfly
     Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

avrdude: butterfly_recv(): programmer is not responding

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

Что здесь может происходить? Может ли это быть проблемой с оборудованием?

, 👍5


2 ответа


3

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

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

Вот как мне удалось установить драйвер для моего pro-micro, он не установился бы, если бы вы не сделали это, когда Arduino находился в режиме загрузчика. Но эта стратегия по какой-то причине не работает для загрузки кода, хотя многие люди утверждают, что это было единственное, что помогло.

Еще одна вещь, которая, возможно, могла бы помочь, - это очистка кэша Arduino. Когда я пытался скомпилировать год назад, после многих попыток мне приходилось время от времени очищать pro-micro с помощью другого Arduino (это может понадобиться вам позже). [примечание thebusybee: я никогда не слышал о кеше в AVR micros. Если скетч будет загружен, он будет перенесен в энергонезависимую память, перезаписав все, что было на его месте раньше.]

Что-то еще, что я вспомнил (если это так, то для меня это было бы очень проблематично), - это USB-кабель. Опять же, перед моим годичным перерывом я вспомнил, что загрузка скетча для меня работала только с 1 из примерно 15 кабелей micro-USB, которые у меня были (тот, который самый короткий и толстый). Сейчас этот кабель оборван, так что я не смогу по-настоящему проверить это, если не начну исследовать кабели microUSB прямо сейчас.

Наконец, это может быть система. Если ничего не работает, попробуйте загрузить скетч из другой, желательно чистой системы.

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

Удачи вам

,

5

Я испытывал одну и ту же неприятную проблему в течение нескольких дней. Это была Убунту.

Исправить это тоже было так просто: sudo apt purge modemmanager

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

Автоматическое обновление может вызвать проблемы с этой командой. Это можно решить с помощью следующей команды:

sudo dpkg-перенастройка -плуг без присмотра-обновления

При первом появлении запроса выберите не загружать и не устанавливать обновления. Затем перезагрузитесь.

,

Святое дерьмо, это действительно сработало для меня. Я не смог запрограммировать клон Leonardo "SMAKN Beetle USB ATMEGA32U4 board", и это исправило ситуацию. Большое вам спасибо., @Cerin

На fedora и используя Pro Micro, я выполнил systemctl restart ModemManager и загрузил с помощью micro board на Arduino IDE., @programandoconro

Очистка модема у меня тоже сработала! После удаления пакета важно перезагрузиться. Большое спасибо!, @Jesse Hallett