Можно ли оживить плату Arduino Leonardo (mini beetle)?
У меня есть эта плата:
У него чип atmega32u4
.
Я несколько раз обновлял его код и без проблем использовал его несколько месяцев. Сегодня при обновлении (используя Arduino IDE) он начал выдавать некоторые ошибки. В конце он сказал, что контрольная сумма не совпадает, поэтому я повторил еще несколько раз с тем же поведением, пока он не сообщил «Загружено» без ошибок. Я использовал в течение нескольких минут, и он работал, как ожидалось. Затем мне пришлось сделать еще одно обновление, и произошло то же самое (контрольная сумма не совпала). Однако на этот раз я дошел до того, что ОС (Ubuntu) перестала его обнаруживать, и светодиод не загорается.
Всякий раз, когда я подключаю его к USB-порту, я вижу в журналах только следующее:
usb 1–9.4: новое полноскоростное USB-устройство номер 9 с использованием xhci_hcd
Однако /dev/ttyACM0
больше не создается.
Я пытаюсь сбросить его с помощью avrdude
, но он сообщает:
avrdude: ser_open(): невозможно открыть устройство "/dev/ttyACM0": нет такого файла или каталога
что имеет смысл, так как /dev/ttyACM0
не существует. Итак, каковы мои варианты? Могу ли я что-нибудь сделать, чтобы он снова заработал?
ОБНОВЛЕНИЕ
Я не знал, что на этой плате сброс помечен как "RES". Следуя рекомендации Juraj
, я соединил RES
и GND
. Светодиод, помеченный как «SDA», включается после того, как я отпускаю контакт, и я могу читать журналы:
[1212051.679205] usb 1-9.4: USB disconnect, device number 22
[1212058.532030] usb 1-9.4: new full-speed USB device number 23 using xhci_hcd
[1212058.621972] usb 1-9.4: New USB device found, idVendor=2341, idProduct=0036
[1212058.621982] usb 1-9.4: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[1212058.621988] usb 1-9.4: Product: Arduino Leonardo
[1212058.621994] usb 1-9.4: Manufacturer: Arduino LLC
[1212058.622933] cdc_acm 1-9.4:1.0: ttyACM0: USB ACM device
Что я считаю хорошей новостью. Однако кажется, что ttyACM0 становится доступным на несколько секунд. Мне удалось загрузить пример Blink в чип, и я могу подтвердить, что он работает, потому что он мигает. Тем не менее ttyACM0 исчезает через несколько секунд.
Вывод avrdude -c avr109 -p atmega32u4 -P /dev/ttyACM0
:
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
Programmer supports the following devices:
Device code: 0x44
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: safemode: Fuses OK (E:FB, H:D8, L:FF)
avrdude done. Thank you.
@lepe, 👍4
Обсуждение1 ответ
Возможно, вы перезаписали загрузчик.
Подключите MOSI, MISO, SCK и RESET к ISP-программатору и прошейте файл Caterina-LilyPadUSB.hex к нему.
В сети есть много руководств по использованию запасной Arduino в качестве ISP-программатора.
- Загрузить код на Arduino Leonardo с помощью командной строки
- Arduino перестал работать: avrdude: ser_open(): не удается установить com-состояние
- Проблема с загрузкой скетча в Леонардо
- Keyboard.print() пропускает клавиши
- Проблема с кристаллом на пользовательской плате atmega32u4
- Как Arduino IDE сбрасывает плату перед прошивкой? Почему avrdude этого не делает?
- Прерывание переполнения Timer0 не работает
- Подключение нескольких MPU 6050 к Micro/Lenardo
Вы пробовали двойной сброс, чтобы активировать загрузчик? вы пробовали другой порт USB? попробуй почистить контакты USB., @Juraj
Я также пробовал другие USB-порты и другие компьютеры. Как сделать двойной сброс?, @lepe
подключите кнопку между контактом сброса и землей и нажмите ее дважды. загрузчик некоторое время будет обрабатывать USB. затем попробуйте загрузить небольшой рабочий скетч (например, Blink), @Juraj
хорошо, я сделаю это. Я обновил свой вопрос, и, как видите, он работает., @lepe
Добавлен блинк, работает. Спасибо, но ttyACM0 удаляется через несколько секунд... это нормально?, @lepe
Теперь он работает, следуя рекомендациям chris101 в: https://discuss.littlebits.cc/t/solved-thanks-everyone-did-i-brick-my-arduino/22581/13. Хитрость заключается в использовании модуля «littleBits Arduino». @Juraj: Спасибо. Вы указываете мне правильное направление., @lepe