Arduino:Хакинг/Обновление прошивки ATmega8U2 и ATmega16U2
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Обновление прошивки 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 и т.д.). Руководства смотрите в ссылках ниже:
- Проигрыватель нот MIDI при помощи прошивки MIDI
- [1] – прошивка, превращающая Arduino Uno в USB-джойстик, совместимый с PS3
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |