Працюємо з 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

Перехідник живлення з крони на Arduino

Перехідник живлення з батарейки крона на роз'єм  5,5х2,1ммПідходить для живлення плат конт..

12.25грн.

Вольтметр аналоговий 0 ... 20В 0,25

Вольтметр аналоговий 0 ... 20В 0,25

Аналоговий стрілочний вольтметр з класом точності 0,25Діапазон вимірюваної напруги 0 ... 20 ВПередба..

93.31грн.

Оптопара EL817 SMD

Оптопара EL817 SMD

Оптопара з транзистором на виходіЗастосовується для гальванічної розв'язки дискретного сигналу, а та..

2.57грн.

Прото модуль для WeMos D1 mini

Прото модуль для WeMos D1 mini

Монтажний шилд під плату контролера WeMos D1 miniВ комплекті традиційно зібрані усілякі гребінк..

27.49грн.

Озвучка тира Arduino Nano и MP3-проигрыватель

Озвучка тира Arduino Nano и MP3-проигрыватель

Постановка задачіЗадачею проекту являється виготовлення пристрою озвучення пострілів 6-ти одиниць зб..