Працюємо з 09:00 до 19: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 ONE

Міні комп'ютер Orange PI ONE

Міні комп'ютер Orange PIOrange Pi PC - це одноплатний комп'ютер на процесорі AllWinner H3 SoC,&..

447.91грн.

ATtiny85 mini

ATtiny85 mini

Мініатюрна плата контролера на основі мікроконтролера ATtiny85Напруга сигналів 5В4 10-бітних аналого..

50.24грн.

Світлодіод ультраяскравий 5мм

Світлодіод ультраяскравий 5мм

Над-яскравий світлодіод діаметром 5 ммКорпус прозорий в світлодіодів різного кольору світіння. Тобто..

0.90грн.

Реле 12В 2А з двома групами перемикаючих контактів

Реле 12В 2А з двома групами перемикаючих контактів

Електромагнітне реле з двома групами перемикаючих контактів. Робоча напруга на котушці: 12ВНава..

22.00грн.

Вимикач круглий 16мм

Вимикач круглий 16мм

Круглий вимикач живленняКолір чорнийЗовнішній діаметр 16 ммУстановочний діаметр 15 ммРозміри вказані..

10.95грн.