Arduino:Хакинг/Обновление прошивки ATmega16u2 на Arduino Due

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Pixel Art Mini Meow Animated.gif Черновик


Обновление прошивки ATmega16u2 на Arduino Due[1]

На Arduino Due есть порт для программирования, к которому подключен AVR-микроконтроллер ATmega16u2, который конвертирует USB-сигналы, идущие от компьютера на первый последовательный порт SAM3X. В этом руководстве рассказывается, как обновлять прошивку ATmega16u2 при помощи платы Arduino Uno или Mega, используемой в качестве AVR-ISP (внутрисхемного программатора).

Инструкции

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

  1. Открываем скетч «ArduinoISP»Файл > Примеры) в IDE Arduino
  2. Выбираем пункты в меню Инструменты > Плата и Инструменты > Порт, соответствующие тому, какую плату вы собираетесь использовать в качестве программатора (т.е. не ту, которую вы собираетесь программировать)
  3. Загружаем скетч «ArduinoISP»
  4. Подключаем 100-микрофарадный конденсатор между контактами GND и RESET
  5. Подключаем несколько контактов 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
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-память

См.также

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