Працюємо з 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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Потенціометр Robotale

Потенціометр Robotale

Двохканальний змінний резистор прямолінійної конструкціїОпір 10 кОмРозміри 90 х 20 мм..

65.50грн.

Блок живлення 9 В 2 А з роз'ємом 5,5мм x 2,1мм

Блок живлення 9 В 2 А з роз'ємом 5,5мм x 2,1мм

Вхідна напруга змінного струму 100...240 В 50/60 ГцВихідна стабілізована напруга 9 ВМаксимальний стр..

159.71грн.

EEPROM модуль постійної пам'яті

EEPROM модуль постійної пам'яті

Модуль енергонезалежної пам'яті з комунікацією I2C на основі мікросхеми AT24C256 (256 kbit = 32 kbyt..

32.94грн.

Радіатор для транзистора 21х15х10мм

Радіатор для транзистора 21х15х10мм

Радіатор алюмінієвий для пасивного охолодження різноманітних напівпровідникових силових компонентів:..

8.99грн.

Увімкнення тиристорів змінним струмом. Фазове управління

Увімкнення тиристорів змінним струмом. Фазове управління

Особенности работы с тирист-ми на переменном токеУправление тиристорами в цепях переменного тока име..