Arduino Micro использует AVRDUDE и Makefile, но загрузка застревает в цикле

Я использую http://ed.am/dev/make/arduino-mk для загружать код в мои продукты Arduino в Ubuntu без использования IDE.

При этом я подтвердил, что makefile и avrdude хорошо работают с моим Arduino Uno, так что все в порядке.

Однако мне нужно было, чтобы он работал с Arduino Micro. Поэтому перед настройкой файлов .hex и т. д. я ввел:

export BOARD = micro

Что позволило бы мне получить форматирование для микро, как описано в make-файле. Когда я попытался загрузить его, я получаю интересную ситуацию:

nancy@nancy-VirtualBox:~/Desktop/Arduino/sketchbook$ make upload

stty -F /dev/ttyACM0 speed 1200
57600
sleep 1
/usr/bin/avrdude -DV -p atmega32u4 -P /dev/ttyACM0 -c avr109 -b 57600 -U flash:w:blink.hex:i

В этот момент он остается на этой линии сколь угодно долго и ничего не делает. На самом Arduino светодиод 13 постоянно мигает, но Rx вообще не горит. Чтобы перепроверить, я проверил dmesg:

usb 1-2: new full-speed USB device number 32 using ohci-pci
usb 1-2: New USB device found, idVendor=2341, idProduct=8037
usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-2: Product: Arduino Micro
usb 1-2: Manufacturer: Arduino LLC
cdc_acm 1-2:1.0: This device cannot do calls on its own. It is not a modem.
cdc_acm 1-2:1.0: ttyACM0: USB ACM device
input: Arduino LLC Arduino Micro as /devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.2/input/input36
hid-generic 0003:2341:8037.001F: input,hidraw1: USB HID v1.01 Mouse [Arduino LLC Arduino Micro ] on usb-0000:00:06.0-2/input2

Так что я, по крайней мере, знаю, что это правильный порт (также дважды проверен с помощью ls -l /dev/serial/by-id ). На всякий случай я дважды проверил с обычными окнами, и Windows уведомляет меня о том, что драйвер не установлен должным образом. В программном обеспечении Arduino, когда я пытаюсь загрузить общий мигающий код в микроконтроллер, он делает то же самое, когда он тоже зависает в окне «Загрузить...».

Я обновил драйвер для микро, и программное обеспечение Arduino загружается в Arduino Micro без проблем. На всякий случай я подумал, что это реальное оборудование, так как я позаимствовал его у друга, я протестировал проблему на новом Arduino Micro, и проблема воспроизведена только в интерфейсе Linux. Я почти уверен, что это не Linux VirtualBox, потому что Arduino Uno отлично работала при загрузке.

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

Спасибо.

изменить: попробовал arduino Mega (экспорт BOARD = mega2560)

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

Так что я думаю, что это проблема с драйвером и файлом makefile...


person Nancy    schedule 19.02.2015    source источник


Ответы (2)


Возможно, это не тот ответ, которого вы ждете, но похоже, что make-файл, который вы используете, устарел.

Я бы порекомендовал вам переключить файл Sudar Arduino Makefile, который просто потрясающий.

Надеюсь это поможет :)

person ladislas    schedule 19.02.2015
comment
Так что я получил шанс попробовать его, и он отвечает определенно лучше, чем тот, который я использовал ранее (горит Rx), но я все еще получаю сообщение об ошибке: stk500_recv(): программатор не отвечает... (использовал пример кода, который был у sudar и модифицирован под нужды micro). - person Nancy; 26.02.2015

Для программирования Mega Board я использую следующую команду, которая у меня отлично работает:

avrdude -patmega2560 -cwiring -P/dev/ttyACM0 -b115200 -D -Uflash:w:blink.hex:i
person user2050516    schedule 23.10.2017