Обновление Atmega8U2 и 16U2 на Uno или Mega2560 с помощью DFU
Обновление прошивки чипа Atmega8U2 на Uno или Mega2560. Этот чип выполняет функцию преобразователя USB-Serial и может быть обновлён через USB.
Чип ATmega16U2 на вашей плате Arduino выступает мостом между USB-портом компьютера и последовательным портом основного процессора. Предыдущие версии Uno и Mega2560 имели чип Atmega8U2. На нём работает программное обеспечение, называемое прошивкой (firmware, так названное потому, что изначально его нельзя было изменить после записи в чип), которое можно обновить через специальный USB-протокол, называемый DFU (Device Firmware Update).
Вот как обновить прошивку вашего 16U2 за несколько шагов.
Проверьте, нужно ли обновлять прошивку
Arduino Uno и Mega 2560 поставляются с обновлённой версией прошивки ATmega16U2. Чтобы проверить, какая версия прошивки установлена на вашей плате, подключите её к компьютеру и следуйте инструкциям для вашей операционной системы:
Windows (до версии 7): найдите плату в Диспетчере устройств (она должна быть в разделе «Порты»), щёлкните правой кнопкой мыши и выберите «Свойства»; в открывшемся диалоге нажмите «Сведения о драйвере» на вкладке «Драйвер» («Сведения» в Windows 7). В одном из свойств вы увидите VID, PID и номер ревизии.
Mac OS X: запустите приложение «Сведения о системе» (например, выбрав «Об этом Mac» из меню Apple и нажав кнопку «Подробнее…»); перейдите на вкладку USB и нажмите на элемент вашей платы Arduino. Версия прошивки указана как «version» (например, 0.01 для ревизии 0001).
Скачайте DFU-программатор
Это программное обеспечение, которое обновит код:
Windows: Скачайте программу Atmel flip отсюда.
Mac: Установите MacPorts, следуя этим инструкциям. После установки MacPorts в окне Терминала введите:
sudo port install dfu-programmer
Примечание
Если вы никогда раньше не использовали sudo, система запросит ваш пароль. Используйте пароль, с которым вы входите в Mac. Sudo позволяет выполнять команды от имени администратора компьютера.
Linux: в командной строке введите:
sudo apt-get install dfu-programmer
или
sudo aptitude install dfu-programmer
в зависимости от вашего дистрибутива.
Скачайте обновлённую прошивку
Последняя версия доступна здесь.
Выберите версию, подходящую для вашей платы: arduino-usbserial/Arduino-usbserial-uno.hex или arduino-usbserial/Arduino-usbserial-mega.hex.
Прошивка также находится в папке программного обеспечения Arduino по пути /hardware/arduino/firmwares/arduino-usbserial. На macOS щёлкните правой кнопкой мыши (или щёлкните с зажатой клавишей Command) на приложении Arduino и выберите «Показать содержимое пакета», чтобы найти эту папку.
Если ваша плата Arduino UNO R1
Вам потребуется припаять резистор 10 кОм (Коричневый-Чёрный-Оранжевый) на задней стороне платы в том же месте, что показано на изображении.
Задняя сторона UNO R1
Подключите Arduino к компьютеру USB-кабелем
Точно так же, как при обычном программировании.
Сброс 8U2 или 16U2
Для этого кратковременно замкните вывод сброса с землёй. Выводы расположены рядом с USB-разъёмом, как показано на изображении. Соедините их кратковременно куском провода.
Передняя сторона UNO R1
Чтобы убедиться, что вы выполнили сброс чипа 8U2 или 16U2: в среде программирования Arduino проверьте список последовательных портов. Последовательный порт вашей платы больше не должен отображаться.
Программирование чипа
Windows: используйте flip для загрузки hex-файла на вашу плату.
Mac и Linux: в окне терминала перейдите в папку с прошивкой. Если вы сохранили прошивку в папку загрузок на macOS, введите:
cd Downloads/
Затем введите:
sudo dfu-programmer atmega16u2 erase
Когда эта команда завершится и вы снова увидите командную строку, введите:
sudo dfu-programmer atmega16u2 flash Arduino-usbserial-uno.hex
Наконец, введите:
sudo dfu-programmer atmega16u2 reset
Примечание
Если на вашей плате установлен atmega8u2, вводите atmega8u2 вместо atmega16u2 в приведённых выше командах.
Отключите и снова подключите плату
Ваша плата должна быть готова и обновлена. Вы можете проверить это, заглянув в меню последовательных портов программного обеспечения Arduino. Ваш порт должен снова появиться.
Использование другой прошивки
Гибкость 8U2 и 16U2 позволяет использовать другие прошивки, чтобы ваша плата отображалась как другое USB-устройство (MIDI-контроллер, HID и т.д.). Дополнительную информацию смотрите в руководствах ниже.
UnoJoy: превратите ваш Arduino Uno в PS3-совместимый USB-джойстик