На цей раз ми поговоримо про те, як програмувати 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 з Каліфорнійського університету
Переклад Гресько Євген
Цифровий вольтметр + амперметр 100В 10А
Цифровий вольтметр та амперметр постійного струмуДіапазон вимірювання напруги 0 ...100 ВДіапазон вим..
122.27грн.
Підсилювач PAM8610 10x2Вт з регулюванням гучності та роз'ємами
Стерео підсилювач звукової частоти класу D зі змінним резистором регулювання гучності, роз'ємами та ..
126.61грн.
Фольгований текстоліт двохсторонній 70х100мм
Двохсторонній фольгований міддю текстоліт для виготовлення друкованих платТовщина 1,5 ммРозміри 75 х..
64.88грн.
Цифровий датчик температури DS18B20
Напруга живлення 3 ... 5,5 ВРобоча температура -55 ... +125 °CТочність ±0,5 °C забезп..
24.79грн.
Гвинт нейлоновий М3 6мм
Гвинт нейлоновий для кріплення усіляких електронних платЙого переваги над металевими болтами - хіміч..
2.62грн.