Arduino:Хакинг/Обновление прошивки ATmega8U2 и ATmega16U2: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
Нет описания правки
 
(не показаны 2 промежуточные версии 2 участников)
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


=Обновление прошивки ATmega8U2 и ATmega16U2<ref>[https://www.arduino.cc/en/Hacking/DFUProgramming8U2 www.arduino.cc - Updating the Atmega8U2 and 16U2 on an Uno or Mega2560 using DFU]</ref>=
=Обновление прошивки ATmega8U2 и ATmega16U2<ref>[https://www.arduino.cc/en/Hacking/DFUProgramming8U2 www.arduino.cc - Updating the Atmega8U2 and 16U2 on an Uno or Mega2560 using DFU]</ref>=
Строка 29: Строка 29:
Следуя [http://www.macports.org/install.php#pkg этим инструкциям], установливаем '''MacPorts'''. Установив, открываем окно терминала и вписываем туда  
Следуя [http://www.macports.org/install.php#pkg этим инструкциям], установливаем '''MacPorts'''. Установив, открываем окно терминала и вписываем туда  


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo port install dfu-programmer.  
sudo port install dfu-programmer.  
</syntaxhighlight>
</syntaxhighlight>
Строка 39: Строка 39:
В командной строке впишите  
В командной строке впишите  


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo apt-get install dfu-programmer
sudo apt-get install dfu-programmer
</syntaxhighlight>
</syntaxhighlight>
Строка 45: Строка 45:
или  
или  


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo aptitude install dfu-programmer
sudo aptitude install dfu-programmer
</syntaxhighlight>
</syntaxhighlight>
Строка 91: Строка 91:
Попав в нужную папку, пишем:
Попав в нужную папку, пишем:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo dfu-programmer atmega16u2 erase
sudo dfu-programmer atmega16u2 erase
</syntaxhighlight>
</syntaxhighlight>
Строка 97: Строка 97:
Когда эта команда выполнится, и перед вами снова будет командная строка, пишем:
Когда эта команда выполнится, и перед вами снова будет командная строка, пишем:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo dfu-programmer atmega16u2 flash Arduino-usbserial-uno.hex
sudo dfu-programmer atmega16u2 flash Arduino-usbserial-uno.hex
</syntaxhighlight>
</syntaxhighlight>
Строка 103: Строка 103:
И, наконец, пишем:
И, наконец, пишем:


<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash">
sudo dfu-programmer atmega16u2 reset
sudo dfu-programmer atmega16u2 reset
</syntaxhighlight>
</syntaxhighlight>
Строка 124: Строка 124:


<references />
<references />
{{Навигационная таблица/Портал/Arduino}}


[[Категория:Хакинг]]
[[Категория:Хакинг]]
[[Категория:Хакинг Arduino]]
[[Категория:Хакинг Arduino]]

Текущая версия от 11:29, 8 июля 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



Обновление прошивки ATmega8U2 и ATmega16U2[1]

Чип ATmega16u2 на плате Arduino служит мостом между USB-портом компьютера и последовательным портом главного процессора. Предыдущие версии Uno и Mega оснащались чипом ATmega8u2. Эти чипы работают при помощи ПО, которое называется «прошивкой» или «зашитой программой» – это ПО, которое программируется в чип «намертво» и поменять его нельзя. Поменять нельзя, но зато можно обновить! Это можно сделать при помощи специального USB-протокола под названием DFU (расшифровывается как «device firmware update», т.е. «обновление прошивки на устройстве»).

Ниже – шаги, описывающие обновление прошивки на Atmega16u2.

Проверяем, нужна ли прошивка

Платы Arduino Uno и Mega 2560 поставляются с обновленной версией прошивки ATmega16u2. Чтобы проверить версию прошивки на плате, подключите ее к компьютеру и следуйте следующим инструкциям (они разнятся в зависимости от ОС):

  • На Windows (до «семерки»): Открываем «Диспетчер устройств» и ищем пункт «Порты» – плата должна быть именно там. Кликаем на нее правой кнопкой и выбираем пункт «Свойства». Открываем вкладку «Драйвер», а затем кликаем по кнопке «Сведения». В одном из свойств вы увидите VID, PID и номер версии.
  • На Mac OS X: Запустите программу «Информация о системе» (например, выбрав пункт «Об этом Mac» в меню Apple, а затем кликнув на кнопку «Подробнее»), перейдите к пункту «USB» и кликните на пункте для платы Arduino. Версия прошивки будет указана в пункте «версия» (например, «0.01» или «0001»).

Загружаем DFU-программатор

Это ПО для обновления прошивки.

Windows

Загрузить утилиту FLIP от Atmel можно здесь.

Mac

Следуя этим инструкциям, установливаем 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».

Прошивку также можно найти в IDE Arduino, в папке «/hardware/arduino/firmwares/arduino-usbserial». На OSX, чтобы найти эту папку, нужно правой кнопкой мыши кликнуть (либо зажать клавишу Command и кликнуть левой кнопкой мыши) по иконке IDE Arduino, а затем выбрать «Показать содержимое пакета».

Если ваша плата – это Arduino Uno R1

В этом случае нужно припаять резистор на 10 кОм (коричневый-черный-оранжевый) к задней части платы в том месте, которое показано на картинке.

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

Так же, как и при программировании.

Сбросьте 8u2 или 16u2

Чтобы сделать это, просто соедините контакт для сброса (Reset) с «землей» (Gnd). Эти контакты находятся рядом с USB-коннектором, как показано на картинке ниже. Просто соедините их ненадолго при помощи куска провода.

Чтобы проверить, сбросился ли чип, зайдите в IDE Arduino и посмотрите список последовательных портов. Если сброс прошел успешно, последовательного порта для вашей платы там быть не должно.

Программируем чип

Windows

Используем FLIP, чтоб загрузить файл с расширением «*.hex» на плату.

Mac и Linux

Будучи в окне терминала, переходим в директорию, где находится новая прошивка. Если вы сохранили ее в папке с загрузками, то нужно написать следующее:

cd Downloads/

Попав в нужную папку, пишем:

sudo dfu-programmer atmega16u2 erase

Когда эта команда выполнится, и перед вами снова будет командная строка, пишем:

sudo dfu-programmer atmega16u2 flash Arduino-usbserial-uno.hex

И, наконец, пишем:

sudo dfu-programmer atmega16u2 reset

Примечание: Если ваша плата оснащена ATmega8u2, то в строке выше вместо atmega16u2 нужно вписать atmega8u2.

Отключите плату и снова подключите

По сути, все. Теперь на вашей плате новая прошивка. Зайдите в IDE Arduino и проверьте список последовательных портов. Ваш порт должен снова появиться.

Использование других прошивок

Чипы 8u2 и 16u2 достаточно гибки, поэтому позволяют использовать и другие прошивки, благодаря которым ваша плата может появиться на ПО компьютера как другой девайс (контроллер MIDI, HID и т.д.). Руководства смотрите в ссылках ниже:

См.также

Внешние ссылки