Магазин у відпустці 23.05 - 28.05. Всі замовлення будуть оброблені в понеділок

На этот раз мы поговорим о том, как программировать 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 разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Преобразователь уровней 5В на 3В двунаправленный 4-канальный

Преобразователь уровней 5В на 3В двунаправленный 4-канальный

Преобразователь логических уровней с 5 В на 3,3В и обратно.Позволяет преобразовать 4 линии коммуника..

20.46грн.

Диод 10A10

Диод 10A10

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

5.01грн.

Набор перемычек (мама-мама) 40шт 20см

Набор перемычек (мама-мама) 40шт 20см

Набор соединительных проводов для соединения плат контроллера с периферией без пайки. Подходят под с..

39.48грн.

Терминальный модуль для Arduino Nano

Терминальный модуль для Arduino Nano

Модуль c винтовыми клеммниками для монтажа платы контроллера Arduino NanoПозволяет напрямую подключа..

59.61грн.

Подшипник для зубчатого ремня GT2 20 зубьев

Подшипник для зубчатого ремня GT2 20 зубьев

Подшипник для натяжения зубчатого ремня GT2 6мм на ось 5 мм20 зубьевШирина 10 мм..

46.38грн.

Новое

Модуль твердотельного реле 4-канальный

Модуль твердотельного реле 4-канальный

Модуль предназначен для коммутации нагрузок с переменным напряжением питания 75 ... 264 ВМаксимальны..

Оптопара EL817 SMD

Оптопара EL817 SMD

Оптопара с транзистором на выходеПрименяется для гальванической развязки дискретного сигнала, а так ..

Стабилизатор напряжения 5В 2А микросхема L78S05CV

Стабилизатор напряжения 5В 2А микросхема L78S05CV

Микросхема стабилизатор напряжения L78S05CVПрименяется для стабилизации пульсирующего напряжени..

Программатор AVR-контроллеров USBASP

Программатор AVR-контроллеров USBASP

Программатор для загрузки и отладки программ в микроконтроллеры компании ATMEL.Интерфейс програ..

Сдвиговый регистр 74HC595N

Сдвиговый регистр 74HC595N

Эту микросхему используют для управления светодиодными гирляндами и символьными индикаторами.Она поз..

Светодиод ультраяркий 3мм

Светодиод ультраяркий 3мм

Сверхяркий светодиод диаметром 3 ммКорпус прозрачный у светодиодов разного цвета свечения. То есть р..

Вентилятор для Orange PI толщиной 10мм

Вентилятор для Orange PI толщиной 10мм

Вентилятор для охлаждения процессора мини-компьютера Orange PI или Raspberry PIРаботает безшумноПита..

Терминальный разъемный коннектор угловой 4п

Терминальный разъемный коннектор угловой 4п

Разъемный 4-проводной коннектор для пайки на печатную платуПровода подводятся параллельно плате и со..

Шестерня для зубчатого ремня на 20 зубьев под ось 5 мм

Шестерня для зубчатого ремня на 20 зубьев под ось 5 мм

Используется для передачи и редукции крутящего момента от двигателяКоличество зубьев 20 шт.Диаметр о..

Терминальный разъемный коннектор угловой 3п

Терминальный разъемный коннектор угловой 3п

Разъемный трёхпроводной коннектор для пайки на печатную платуПровода подводятся параллельно плате и ..

Терминальный разъемный коннектор угловой 2п

Терминальный разъемный коннектор угловой 2п

Разъемный двухпроводной коннектор для пайки на печатную платуПровода подводятся параллельно плате и ..

Микроконтроллер ATTINY13A

Микроконтроллер ATTINY13A

Миниатюрный экономичный AVR 8-битный микроконтроллер, который можно программировать как программатор..

Логический анализатор 8 каналов

Логический анализатор 8 каналов

Надписи на корпусе могут отличаться от указанных на картинке, но суть остается неизменной.Цифровой л..

Линейный подшипник 8мм

Линейный подшипник 8мм

Подшипник для линейного скольжения рабочего органа 3D-принтера или CNC по своим осям.Одевается на ци..

Подшипник для зубчатого ремня GT2 без зубьев

Подшипник для зубчатого ремня GT2 без зубьев

Подшипник для натяжения зубчатого ремня GT2 6мм на ось 5 ммПрименяется в 3D-принтерах и CNCШирина 10..

Подшипник для зубчатого ремня GT2 20 зубьев

Подшипник для зубчатого ремня GT2 20 зубьев

Подшипник для натяжения зубчатого ремня GT2 6мм на ось 5 мм20 зубьевШирина 10 мм..