Обновление 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

Задняя сторона UNO R1

Подключите Arduino к компьютеру USB-кабелем

Точно так же, как при обычном программировании.

Сброс 8U2 или 16U2

Для этого кратковременно замкните вывод сброса с землёй. Выводы расположены рядом с USB-разъёмом, как показано на изображении. Соедините их кратковременно куском провода.

Передняя сторона UNO R1

Передняя сторона 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 и т.д.). Дополнительную информацию смотрите в руководствах ниже.