Arduino IDE не может запрограммировать мой Arduino Pro Micro
У меня много Arduino Pro Micros, которые я не могу запрограммировать через Arduino IDE.
У меня Windows.
Я использую информацию о плате SparkFun Pro Micro, загруженную с веб-сайта SparkFun.
Я попытался вручную переназначить COM-порт Pro Micro в диспетчере устройств. Кажется, нет никакой разницы, нахожусь ли я на COM1 или COM255.
Если я использую Arduino ISP или USBASP для записи загрузчика на проблемный Pro Micro, обычно требуется еще одно или два программирования USB, но это все.
Когда они попадают в это проблемное состояние, они все еще выполняют свой код (например, я вижу, как на скетче Blink мигает мой светодиод), их просто нельзя перепрограммировать. Я даже могу открыть их последовательную связь.
Подробный вывод в процессе загрузки с первой попытки дает следующее:
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
PORTS {COM1, COM2, } / {COM1, COM2, } => {}
Uploading using selected port: COM2
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM2 -b57600 -D -Uflash:w:C:\Users\Thompson\AppData\Local\Temp\arduino_build_668056/BareMinimum.ino.hex:i
avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"
Using Port : COM2
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
Последняя строка зависает на неопределенный срок. Я закрываю и снова открываю Arduino IDE и пытаюсь повторно загрузить, и вот мой результат:
processing.app.debug.RunnerException
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:160)
at cc.arduino.UploaderUtils.upload(UploaderUtils.java:82)
at processing.app.SketchController.upload(SketchController.java:736)
at processing.app.SketchController.exportApplet(SketchController.java:703)
at processing.app.Editor$DefaultExportHandler.run(Editor.java:2039)
at java.lang.Thread.run(Thread.java:748)
Caused by: processing.app.SerialException: Error touching serial port 'COM2'.
at processing.app.Serial.touchForCDCReset(Serial.java:107)
at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences(SerialUploader.java:144)
... 5 more
Caused by: jssc.SerialPortException: Port name - COM2; Method name - openPort(); Exception type - Port not found.
at jssc.SerialPort.openPort(SerialPort.java:167)
at processing.app.Serial.touchForCDCReset(Serial.java:101)
... 6 more
Это точно такое же сообщение (конечно, с другим номером COM) воспроизводится на любой машине Windows, с которой я пытаюсь это сделать.
В приведенном выше примере я пытался загрузить минимальный пример.
Все ли мои Pro Micro мертвы? Что-то не так с IDE? Есть ли альтернативная IDE, от которой я могу получить второе мнение?
EDIT: обновление; Я установил Atom с PlatformIO и смог написать несколько скетчей для Arduino Pro Mini. Я попытался выполнить те же скетчи на Arduino Pro Micro и получил ту же ошибку и зависание: программист не отвечает
@Bo Thompson, 👍0
Обсуждение1 ответ
Лучший ответ:
После еще нескольких экспериментов оказалось, что эта проблема связана с односекундным сторожевым таймером, который я включил в своем скетче. После удаления сторожевого таймера у меня не было проблем (пока) с загрузкой кода.
Можно принять свой собственный ответ как решение проблемы., @VE7JRO
- Не могу загрузить скетч в Arduino Nano
- ESP32-CAM первый: 0x8 TG1WDT_SYS_RESET загрузочный цикл
- Можно ли обновить загрузчик Arduino (Nano) через себя и Arduino IDE или требуется ISP?
- avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied Upload error:
- Atmega328p — переход на низкое энергопотребление 1,8 В с использованием генератора 4 МГц — прошивка загрузчика
- Установка битов предохранителей из Arduino IDE?
- Ардуино микро не распознается
- Автономный ATMega328 — нужно ли прожигать загрузчик?
у Micro есть MCU с собственным USB-портом, управляемым скетчем (часть ядра Arduino). если скетч завис, USB не обрабатывается. затем вы должны активировать загрузчик путем сброса или двойного сброса, @Juraj
Это действительно полезная информация. Значит, вы имеете в виду, что если у меня есть десятисекундная задержка в моей основной функции, последовательный порт будет обрабатываться только один раз каждые десять секунд?, @Bo Thompson
нет. он работает с прерыванием, @Juraj