Можно ли оживить плату Arduino Leonardo (mini beetle)?

У меня есть эта плата:

Мини-плата Arduino Leonardo 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.

, 👍4

Обсуждение

Вы пробовали двойной сброс, чтобы активировать загрузчик? вы пробовали другой порт 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


1 ответ


2

Возможно, вы перезаписали загрузчик.

Подключите MOSI, MISO, SCK и RESET к ISP-программатору и прошейте файл Caterina-LilyPadUSB.hex к нему.

В сети есть много руководств по использованию запасной Arduino в качестве ISP-программатора.

,