Працюємо з 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 разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Кабель питания Orange PI

Кабель питания Orange PI

USB кабель питания для мини-компьютера Orange PIДлина кабеля 92 см...

41.70грн.

Набор соединительных кабелей 70см для 3D-принтера, CNC RAMPS 1.4

Набор соединительных кабелей 70см для 3D-принтера, CNC RAMPS 1.4

Набор проводов с разъемами для системы RAMPS 1.4 , тоесть для шилдов управления 3D-принтером ил..

169.62грн.

ATtiny85 mini

ATtiny85 mini

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

51.60грн.

Держатель для батареек 3хAA

Держатель для батареек 3хAA

Бокс для трёх пальчиковых батареек типа ААОбщее напряжение на проводах бокса получится 4,5 В..

20.63грн.

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

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

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