Працюємо з 09:00 до 20:00 без вихідних.
Київ лівий берег біля ТЦ Квадрат

На этот раз мы поговорим о том, как программировать Arduino, не обычным способом, не через привычное USB подключение, а через прямое прошивание процессора.

Вам возможно не прийдется прибегать к этому постоянно, но мы поговорим об этом всё равно потому, что когда-нибудь вы всё же захотите установить загрузчик  поменять, обновить его, и вам будет полезно знать каким образом это делается.

Это не обычное прикладное программирование которым мы обычно занимаемся. Загрузчиком называется заводская прошивка микроконтроллера. И загрузчик это всего лиш общее наименование программного обеспечения. И он относится не только к Arduino, а к любым видам интегрированных систем.

Микроконтроллер обычно содержит в себе код загрузчика, записанный в флеш-память. Он позволяет записывать пользовательскую программу в  флеш и EEPROM-память. Именно поэтому у вас есть возможность загружать скетчи. Вы загружаете свой код, который должен скопироваться или запрограммироваться в флеш-память или в постоянную память EEPROM, но обычно в flash, и дальше должно начаться выполнение программы внутри atmega 328, который и предназначен для этого. Он общается и с USB-интерфейсом и выполняет свою задачу. Вот это и есть основная работа загрузчика.

У загрузчика есть и ряд других функций, но это его основная задача, позволять флеш-памяти быть перезаписываемой, а так же постоянной памяти EEPROM. Так же он заботится такими задачами как перезагрузка и другими, но это его основная задача.

Загрузчик управляет USB-коммуникацией, и позволяет программировать. Загрузчик конечно не может перепрограммировать себя. Поэтому, если вам нужно обновить загрузчик, вы не можете просить загрузчик перепрограммировать себя. И поэтому, если вы хотите обновить загрузчик вы не можете сделать это через обычный USB-интерфейс используя загрузчик. Вместо этого вам потребуется использовать другой интерфейс.

Для этой цели используют интерфейс , который называется ICSP. Это интерфейс к плате, к специальным контактам на плате, через которые можно заливать загрузчик. Теперь вы можете запрограммировать что-угодно, но это всего лиш такой себе более прямой маршрут. Маршрут в обход USB. Для программирования микроконтроллеров на плате и единственный случай, когда вам возможно понадобится прибегнуть к интерфейсу ICSP, если вы захотите обновить свой загрузчик. Потому-что иначе если вы захотите обновить код аутентификации, вы будете использовать обычный маршрут USB, а ICSP порты разработаны для того, что-бы вы могли напрямую обновить загрузчик, а так же прошивку.

По существу прошивка производится напрямую. Поэтому если вы взглянете на плату, то увидите два ICSP-порта потому, как там два процессора.


Там стоит ATmega328 тот, который главный. А так же там стоит ATmega16U2, который используется для USB-коммуникаций. И в него тоже загружена прошивка.  У него есть выполняемая программа. И, если вы хотите запрограммировать один из них, вам нужно использовать их ICSP-порты, а значит их собственные ICSP-контакты.

Вот вы видете на картинке одну группу ICSP-контактов справа ATmega16U2. И другую группу ICSP-контактов микроконтроллера ATmega328. И что вам прийдется сделать, если вы захотите перепрограммировать эти контроллеры, так это использовать специальный программатор, который вам прийдется купить отдельно.

И вы подключите его к этим контактам. И тогда вы сможете использовать его, и различные программные приложения, для программирования прошивки на обоих чипах.

В общем эти контакты доступны вам для использования. Они вам могут понадобиться только для перезаписи загрузчика, и на этих уроках мы таким заниматься не будем. Если вам удастся обновить загрузчик, то вам уже эти занятия ни к чему. Если вы способны перезалить новый загрузчик, тогда вам эти уроки уже не понадобятся - вы уже не новичок. И вам уже нужно развиваться дальше. Но если нет, тогда эти уроки для вас. И вообще перезаливкой прошивки лучше не увлекаться, просто в будущем можно заливать обновления прошивки.


Автор профессор Ian Harris из Калифорнийского университета

Перевод Гресько Евгений


Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Arduino Pro Micro ATmega32U4

Arduino Pro Micro ATmega32U4

Миниатюрная плата разработчика из линейки Arduino на основе микропроцессора ATMega 32U4Тактовая част..

128.04грн.

GSM GPRS модуль A6C с фото-камерой

GSM GPRS модуль A6C с фото-камерой

Модуль GSM GPRS SMS связи на основе микросхемы A6CНапряжение питания 5В можно подавать на вход микро..

381.56грн.

ATtiny85 mini

ATtiny85 mini

Миниатюрная плата контроллера на основе микроконтроллера ATtiny85 Напряжение сигналов 5В 4..

51.60грн.

Диод 10A10

Диод 10A10

Мощный полупроводниковый кремниевый выпрямительный диод.Используется чаще всего в диодных мостах бло..

5.01грн.

Кодовый замок из набора резисторов

Кодовый замок из набора резисторов

Используя несколько сдвоенных компараторов можно сделать кодовый замок, ключ для которого будет сост..