Arduino:Хакинг/Обновление прошивки ATmega16u2 на Arduino Due
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Обновление прошивки ATmega16u2 на Arduino Due[1]
На Arduino Due есть порт для программирования, к которому подключен AVR-микроконтроллер ATmega16u2, который конвертирует USB-сигналы, идущие от компьютера на первый последовательный порт SAM3X. В этом руководстве рассказывается, как обновлять прошивку ATmega16u2 при помощи платы Arduino Uno или Mega, используемой в качестве AVR-ISP (внутрисхемного программатора).
Инструкции
Чтобы использовать плату Arduino для записи загрузчика на AVR, вам нужно проделать несколько простых шагов:
- Открываем скетч «ArduinoISP» (в Файл > Примеры) в IDE Arduino
- Выбираем пункты в меню Инструменты > Плата и Инструменты > Порт, соответствующие тому, какую плату вы собираетесь использовать в качестве программатора (т.е. не ту, которую вы собираетесь программировать)
- Загружаем скетч «ArduinoISP»
- Подключаем 100-микрофарадный конденсатор между контактами GND и RESET
- Подключаем несколько контактов Arduino Uno (Mega) к ICSP-коннектору ATmega16u2:
Uno | Mega | 16u2 ICSP | |
---|---|---|---|
SCK | 13 | 52 | 3 |
MISO | 12 | 50 | 1 |
MOSI | 11 | 51 | 4 |
Reset | 10 | 10 | 5 |
GND | GND | GND | 6 |
+5V | 5V | 5V | 2 |
![](/ruwiki/images/8/87/Due16U2UpgradeSPI.jpg)
Arduino Due будет брать питание от Arduino Uno, настроенной как AVR-программатор. Более подробно о соединении между Uno/Mega и ICSP-коннектором, к которому подключен программируемый чип, смотрите в этом руководстве.
Обновление прошивки при помощи avrdude
Для апдейта прошивки нужно воспользоваться инструментом командной строки под названием «avrdude», который уже имеется в папке, куда установлена IDE Arduino. Если точнее, то по маршруту
«/path_to_arduino/arduino.1.5.x/hardware/tools».
Прошивка, загружаемая на 16u2, имеет бинарный формат с расширением «*.hex».
Linux и Mac
Самым первым делом нужно пройти к папке, содержащей avrdude, который идет в комплекте с IDE Arduino. Для этого открываем окно терминала и пишем следующее:
cd /home/USER/arduino-1.5.2/hardware/tools
Путь к папке с IDE Arduino зависит от того, куда вы ее установили. Затем запускаем avrdude, попутно указывая все параметры, необходимые для записи прошивки. Вот так эта строчка выглядит в полном виде:
/home/USER/arduino-1.5.2/hardware/tools$ ./avrdude -C avrdude.conf -c arduino -P /dev/ttyACM0 -b 19200 -p m16u2 -vvv -U flash:w:/home/USER/newFirmware/16u2.hex:i
Windows
Самым первым делом нужно пройти к папке, содержащей avrdude, который идет в комплекте с IDE Arduino. Для этого открываем окно с командной строкой – кликаем на «Выполнить», в появившемся окне пишем «cmd» и нажимаем ↵ Enter .
Когда окно с командной строкой откроется, в нем должна быть запись, похожая на...
C:\Users\USER
Чтобы переместиться в папку с IDE Arduino, пишем следующее (зависит от того, куда вы ее установили):
cd arduino-1.5.2\hardware\tools
Затем запускаем avrdude, указывая все параметры, необходимые для записи прошивки. Вот так эта строчка будет выглядеть в полном виде:
arduino-1.5.2/hardware/tool> avrdude.exe -C avrdude.conf -c arduino -P /dev/ttyACM0 -b 19200 -p m16u2 -vvv -U flash:w:/home/USER/newFirmware/16u2.hex:i
Подробнее о параметрах
-C avrdude.conf – загружает конфигурационный файл для использования Arduino Uno в качестве программатора
-c arduino – указывает программатор, который вы хотите использовать
-P /dev/ttyACM0 – USB-порт, к которому подключен программатор
-b 19200 – скорость передачи данных в бодах
-p m16u2 – девайс, который вы собираетесь программировать
-vvv – включает выдачу более подробной отладочной информации
-U flash:w:/home/USER/newFirmware/16u2.hex:i – указывает, что вы хотите записать (w) файл формата «*.hex» на flash-память
См.также
Внешние ссылки
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.
|
Клавиатура |
|
Мышь |
|
Разное |