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 |
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-память