Невозможно загрузить скетчс помощью Platformio (но Arduino IDE работает)
Я использую Arduino Nano (клон), который я программировал с помощью Arduino IDE (версия 1.8.5 для Mac OS X 10.10.5).
Используя Arduino IDE, мне нужно повторно подключить Nano перед загрузкой, но после этого все работает должным образом, и скетч успешно загружается.
Затем я попытался использовать Platformio core (CLI) и получил хорошо известную ошибку not in sync
:
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
Как уже было сказано, эта ошибка хорошо известна, особенно. в отношении клонов Arduino и несколько раз сообщал об Интернете с различными решениями.
Мне просто интересно, как Arduino IDE может успешно загружать код, но Platformio - нет, поскольку и Arduino IDE, и Platformio CLI просто вызывают avrdude
для загрузки кода.
Примечание: Загрузка одного и того же кода в Arduino Uno работает как шарм как с использованием Arduino IDE, так и с Platformio.
Обновления в связи с дальнейшим расследованием:
Я включил подробный вывод как для Arduino IDE, так и для Platformio, показывающий точную команду avrdude, выполняемую для загрузки встроенного шестнадцатеричного файла. Я принял вызов
avrdude
из Arduino IDE с указанием пути к скомпилированному коду Platformio. Это работает так, как и ожидалось:
avrdude -v -p atmega328p -c arduino -b 57600 -D -P /dev/cu.usbserial-00000000 -U flash:w:.pioenvs/nano/firmware.hex:i
Затем я взглянул на команду, используемую Platformio, которая очень похожа, но предоставляет дополнительный -C
для конфигурационного файла:
avrdude -v -p atmega328p -C /Users/Albert/.platformio/packages/tool-avrdude/avrdude.conf -c arduino -b 57600 -D -P "/dev/cu.usbserial-00000000" -U flash:w:.pioenvs/nano/firmware.hex:i
К сожалению, я не могу запустить эту команду из терминала из-за ошибки:
avrdude: Version 6.0.1, compiled on Dec 16 2013 at 17:26:24
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "/Users/Albert/.platformio/packages/tool-avrdude/avrdude.conf"
avrdude: syntax error at /Users/Albert/.platformio/packages/tool-avrdude/avrdude.conf:1080
@albert, 👍4
Обсуждение1 ответ
- avrdude: ошибка проверки, первое несоответствие в байте 0x0000 : 0x00 != 0x16 с использованием USBasp
- Где параметры avrdude определяются в Arduino IDE?
- Избегать 10 попыток Avrdude, когда программатор не отвечает
- Проблема с загрузкой Arduino Mega
- "avrdude: stk500_getsync(): not in sync: resp=0x00", или некто по имени Avr не позволяет мне загрузить мою программу
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Нет заголовочных файлов (.h) в Documents\Arduino\libraries\arduino_144469 с демонстрационным кодом
попробуйте загрузить в Nano с выбранным Uno в качестве платы, @Juraj
@Juraj: Использование
Uno
вместоNano
также не работает., @albertесть ли у Platformio опция "старый загрузчик" для Nano?, @Juraj
Существует "обычный" и "новый" вариант. Оба не работают. Единственное отличие, на первый взгляд, заключается в скорости передачи данных в бодах. Я мог бы взглянуть на сценарии загрузки для получения дополнительных различий..., @albert
Я попытался воспроизвести эту проблему с помощью клона nano в mac os 10.12.6 с использованием platformio IDE, и никаких проблем не возникло. Я бы попробовал две вещи: загрузить простой скетч blink (или пустой цикл) с помощью arduino IDE, чтобы убедиться, что плата не пытается подключиться через UART, что мешает процессу загрузки в platformio; и если это не поможет, я бы повторно прошил загрузчик. Кроме того, если platformio не обновлен, безусловно, неплохо обновить его, чтобы убедиться, что он использует последний конфигурационный файл avrdude +., @ex-punctis
@Im_Int: Обновлен до Arduino 1.8.7 и попытался перепрошить загрузчик. Перепрошивка работала не с Arduino 1.8.7, а с 1.8.5. После этого все еще не удалось загрузить код с помощью Platformio. Попробовал другой клон Arduino Nano: смог загрузить код один раз с помощью Platformio, но больше никогда. Загрузка с помощью Arduino IDE 1.8.7 работает, невозможно повторно прошить загрузчик на эту плату. В Интернете есть несколько дискуссий о протоколе передачи, использовании сигнала сброса на выводе сброса (RST) и конденсаторе. Так что это может быть проблемой, связанной с оборудованием / платой, из-за дешевых клонов Arduino... :/, @albert
как вы перепрошиваете загрузчик?, @Juraj
Я использовал / пытался использовать Arduino Uno в качестве провайдера, поскольку в настоящее время у меня нет моего оригинального AVR ISP mkII, @albert
и почему ты это сделал? возможно ли, что вы перешли на другой загрузчик?, @Juraj
У меня точно такая же проблема. Из-за этого я отказываюсь от platform io. Это гораздо сложнее, чем arduino IDE., @Hein du Plessis