Arduino Uno R1 Я припаял резистор, но не могу запрограммировать DFU atmega8u2
У меня есть плата Arduino R1 (самая первая), и мне удалось впаять резистор в микроконтроллер Arduino Atmega8u2 (я обращался к специалисту). Затем я сбросил atmega8u2 и подключил пины, как указано в статье: https://www.arduino.cc/en/Hacking/DFUProgramming8U2
Я могу подтвердить это с помощью этого сообщения на моей машине GNU/Linux, запустив dmesg:
[ 1544.679504] usb 1-6: new full-speed USB device number 42 using xhci_hcd
[ 1544.808341] usb 1-6: New USB device found, idVendor=03eb, idProduct=2ff7
[ 1544.808350] usb 1-6: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 1544.808356] usb 1-6: Product: Arduino Uno DFU
Я также подтверждаю, что запустил lsusb и получил следующий результат:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 248a:8367
Bus 001 Device 058: ID 03eb:2ff7 Atmel Corp.
Bus 001 Device 003: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Это ещё раз указывает на то, что Arduino находится в режиме DFU на моём компьютере с Ubuntu 16.04. Также я проверяю это командой dfu-util -l:
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org
Found DFU: [03eb:2ff7] ver=0000, devnum=63, cfg=1, intf=0, alt=0, name="UNKNOWN", serial="UNKNOWN"
Я пытаюсь бежать:
sudo dfu-programmer atmega8u2 erasure
Но по какой-то причине я получаю следующую ошибку:
dfu-programmer: устройство отсутствует.
Знаете ли вы, почему возникает эта ошибка и как ее исправить?
Редактировать 1
Я установил последнюю версию dfu-programmer и скомпилировал из исходников через https://sourceforge.net/projects/dfu-programmer/files/dfu-programmer/0.7.2/, но ошибка всё равно возникает. Я также пробовал компилировать с помощью libusb-1.0.0
Редактировать2
Я также попробовал эту версию с libusb-1.0.0, но ошибка всё равно возникает.
Редактировать 3
Как и многие советуют, я пробовал сделать это несколько раз, но все равно получаю эту ошибку.
Редактировать 4
Я также использовал dfu-util и пытаюсь вставить данные в atmega8u2 через:
sudo dfu-util -d 03eb:2ff7 -D ./Arduino-usbserial-uno.hex -R
Но я получаю ошибку:
dfu-util 0.8
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org
dfu-util: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 03eb:2ff7
Run-time device DFU version 0100
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0100
Device returned transfer size 3072
Copying data from PC to DFU device
Download [ ] 0% 0 bytesdfu-util: Error during download
dfu-util: can't detach
Resetting USB to switch back to runtime mode
1 ответ
Лучший ответ:
Согласно https://gebloggendings.wordpress.com/category/elektronik/arduino/ иногда не следует предполагать, что atmega8u2 всегда является правильным значением. В моем случае это было at90usb82, что привело к использованию следующей последовательности команд:
sudo dfu-programmer at90usb82 erase
# Flashing the arduino provided .hex
sudo dfu-programmer at90usb82 /usr/share/arduino/hardware/arduino/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-uno.hex
# reset the board
sudo dfu-programmer at90usb82 reset
Дополнительную информацию вы можете найти здесь:
- https://forum.arduino.cc/index.php?topic=53443.0
- https://forum.arduino.cc/index.php?topic=542854.0
- Прошивка ATmega8U2 с помощью другого Arduino
- Mac OSX Yosemite не отображает последовательные порты для Uno R3
- Защита вашего компьютера от глупых (arduino) ошибок
- Установите Arduino IDE в Raspberry Pi 3 модели B.
- Arduino Uno R3 (с Atmega 16u2) и MAC OSX 10.11 (El Capitan) не работают
- подключить usb к контактам, а не к встроенному usb-разъему
- Arduino Uno не загружает код и перегревается
- Как записать данные на флешку?