Давайте трохи відвернемося від створення нашого робота і поговоримо про те, як ми будемо записувати прошивку в Arduino.
Нас, перш за все, цікавлять три плати Arduino:
- Arduino Uno - як найпоширеніший варіант
- Arduino Nano - компактний варіант, зручний для застосування в невеликих конструкціях
- Arduino Pro Mini - дешевий компактний варіант без вбудованого USB-UART перетворювача (для роботи з ним знадобиться зовнішній USB-UART перетворювач), але зручний в разі застосування мережі пристроїв.
У всіх вищеописаних платах використовується мікроконтролер ATmega328 (в старіших версіях ATmega168).
ATmega48_88_168_328.pdf - даташіте на ATmega48A-48PA-88A-88PA-168A-168PA-328-328P
Однією з головних причин вибору плати Arduino для проекту робота була можливість записувати прошивку пристрою в МК не застосовуючи програматора і будь-яких додаткових пристроїв. Все що потрібно для прошивки мікроконтролера Arduino - це стандартний USB шнур (який входить в комплект Arduino).
Це означає, якщо Ви маєте Ардуіно - Ви маєте будь-який пристрій ZiChip!
Запис програми в МК через USB відбувається через спеціальний завантажувач (Bootloader), який записаний в МК при виготовленні плати. Взагалі, завантажувач призначений для роботи зі своїм спеціальним програмним забезпеченням Arduino IDE, але в разі, коли необхідно прошити в Ардуіно щось стороннє (свій Hex-файл), є програми дозволяє це реалізувати.
GC Uploader.zip - автоматичний завантажувач HEX-файлів для Arduino
Програма цікава тим, що обраний HEX-файл буде заливатися в Ардуіно автоматично після кожного його зміни. Це зручно, так як при розробці проекту кожна компіляція (оновлення Хекса) ініціюватиме прошивку Ардуіно - Вам нічого не доведеться робити самому! Крім того в програмі є і ручний режим прошивки.
XLoader.zip - Програма для запису Hex-файлу в Arduino
Програма має аскетичний інтерфейс і працювати з нею гранично просто:
- підключаємо Arduino в USB-порт (окремого харчування не потрібно)
- вибираємо Hex файл
- вибираємо тип Вашого Arduino
- вибираємо COM порт, який створився при підключенні Arduino до USB (швидкість порту автоматично підставить при виборі типу Arduino)
- тиснемо Upload
Це все! Нічого складного. Прошивка через кілька секунд буде записана в МК і автоматично запуститься. Один мінус - програма ніяк не повідомляє про те, що прошивка вже записана, але це можна побачити по припиненню мерехтіння світлодіодів RXD і TXD на Ардуіно.
XLoader використовує для запису прошивки AVR Dude і в якості протоколу програмування використовується STK500. Але, схоже, в настройках AVR Dude, проведена корекція, так як використання стандартного AVR Dude з такими ж налаштуваннями не дає результатів.
При розробці ПО для мікроконтролера проводиться дуже багато прошивок і завжди потрібно прагнути автоматизувати цей процес після складання проекту - це економить час і нерви. В даному випадку автоматизація ускладнена, так як програма не вказує командний рядок для AVR Dude (хіба що підбирати досвідченим шляхом), але деяке спрощення процесу можливо. Робиться це в такий спосіб - після першої прошивки не закриваємо вікно програми (COM порт після прошивки програма відпускає) і після наступної збірки проекту просто тиснемо кнопку «Upload». Звичайно, збірка повинна здійснюватися в один і той же Hex-файл.
ArduinoUploader.zip - Програма для запису Hex-файлу в Arduino
Як і попередня, програма має простий інтерфейс.
Процес прошивки той же:
- підключаємо Arduino в USB-порт (окремого харчування не потрібно)
- вибираємо Hex файл
- вибираємо тип Вашого Arduino
- вибираємо COM порт
- тиснемо Upload
Програма під час запису відкриває додаткові вікна і візуально відображає свої дії, що дозволяє стежити за процесом запису.
При спробі прошити Arduino Nano програма відмовлялася бачити МК. Причиною стала неправильна установка швидкості COM порту. За замовчуванням швидкість варто 19200, а потрібно 57600. Швидкість порту в програмі не задається явно, вона прописується в рядку «AVR Dude Params» - поміняйте в ній значення 19200 на 57600.
Автоматизація ARP Uploader.
ARP Uploader як і XLoader працює через AVR Dude, але, на відміну від XLoader, показує командний рядок. Це дає можливість використовувати AVR Dude безпосередньо в Make або Bat файлі.
Додаткові матеріали.
Драйвера Arduino.
Вважаю не зайвим нагадати, що для зв'язку Arduino з комп'ютером в останньому повинні бути присутніми драйвера. Залишаю тут архів з драйверами для Arduino (включаючи і старі драйвера в Old_Arduino_Drivers.zip і драйвера для FTDI-чіпа в папці «FTDI USB Drivers»
Arduino_drivers.zip - Драйвера для Arduino
Стали з'являтися недорогі китайські Ардуіно з драйвером CH340G
Driver CH340G.zip - Драйвер для перетворювача USB-UART
Якщо Ви вирішите зібрати свою плату Arduino (а складного там нічого немає, фактично, це голий ATmega328 або ATmega168), Вам знадобиться завантажувач Bootloader який повинен містити МК для роботи з середовищем (або програмами для заливки Hex-файлів). Звичайно, Вам для запису Hex-файлів в чистий МК знадобиться програматор і доведеться виставити фьюз.
ATmegaBOOT_168_atmega328.hex - Bootloader для ATmega328
Для правильної роботи потрібно встановити фьюз наступним чином Low: FF High: DA Ext: 05
ATmegaBOOT_168_diecimila.hex - Bootloader для ATmega168
Фьюз Low: FF High: DD Ext: 00
Схема вищеописаних Ардуіно.
Arduino_Uno_Rev3-schematic.pdf - Схема Arduino Uno
ArduinoNano30Schematic.pdf - Схема Arduino Nano
Arduino-Pro-Mini-schematic.pdf - Схема Arduino Pro Mini
Фьюз встановлені за замовчуванням в Arduino (тільки з ATmega328)
Arduino Uno
Low Fuse 0xFF
High Fuse 0xDE
Extended Fuse 0x05
Arduino Duemilanove or Nano w / ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05
Arduino BT w / ATmega328
Low Fuse 0xFF
High Fuse 0xD8
Extended Fuse 0x05
LilyPad Arduino w / ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05
Arduino Pro or Pro Mini (5V, 16 MHz) w / ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05
(Visited 63 937 times, 13 visits today)
Навігація по публікаціям
Спасибі, корисна інформація. Я тут тримаю при собі жменьку Nano і Pro Mini, на різні випадки життя 🙂
Трохи про інше, питання до шановного Aвтор, може є до свят яка допрацьована версія керуючої програми до пристрою «Еффектор-12»? Пристроєм і попередньою версією програми користуюся регулярно (режим світломузики), раніше тут і на форумі накопичувалися ідеї і зауваження для доопрацювання програми, ось я подумав, може до цього Нового Року назріває який подаруночок всім? 😉 Дякую!
З ефектором до Нового року навряд-чи чого вийде зробити, але в планах є його доопрацювання (і схоже новий ефектор можна буде заливати в Ардуіно).
Є бажання трохи оновити ефекти в супергірлянде - сподіваюся хоч це встигну.
За ЕФФЄКТОР я мав на увазі на даний момент тільки програму, там раніше у нас був невеликий список побажань і поправок, таких як запам'ятовування повзунків до режимам світломузики «повний» і «дзеркало», додавання режиму "не-дзеркало» (канали 1-6, 1-6), може регулювання швидкості загасання, може запуск ефектів в паузах без музики і.т.п. А залізо непогане і таке як є. Без наворотів, але своє робить.
У будь-якому випадку - спасибі за зроблене і успіхів вперед!
Еффектор на Ардуіно це здорово, буду чекати.
Підкажіть плиз, де знайти рядок «AVR Dude Params»