Саме наявність прошитого завантажувача, є головною перевагою в роботі з цією платформою. Відпадає необхідність в спеціальний программаторах, простих - з п'яти дротів, але не надійних, які загрожують спалити і так, на сьогоднішній момент, стрімко зникає LTP порт (у мене він тільки на компі дівчата залишився, єдиний! :)). Або складних і дорогих, які навряд чи потрібні новачкові.
Загалом, мені bootloader, дозволив би прошивати МК взагалі без «мотузки» дротового зв'язку з компом, через bluetooth sereal adapter, і ця фіча здавалася дуже привабливою. Тим більше я придбав Atmega32, з достатньою кількістю flesh пам'яті, щоб пожертвувати 512 або навіть 1024байта на завантажувач.
Треба сказати, що нічого самому розробляти не доведеться, благо загрузчиков для AVR контролерів досить багато. Потрібно тільки вибрати відповідний своїм вимогам і налаштувати його під свої потреби.
Мені сподобався наступний завантажувач AVRPROG compatible bootloader for ATMEL ATmega Controllers Про нього досить багато інформації російською, та й у використанні він простий. Написаний Сі, що радує, і звільняє мозок від подорожі по лабіринтах assembler'а в процесі настройки, практично звільняє ... Про це засобі завантаження досить добре і детально написано в цій статті.
Я ж зупинюся на особливостях його використання за допомогою Bluetooth емулятора COM порту і ATmega32. Для настройки bootloader'а, нам буде потрібно AVR Studio. Качаємо исходник з сайту проекту, або з вищенаведеної статті, відкриваємо в студії, переходимо до вкладки файлу main.c, і приступаємо до його зміни.
1 Виставляємо частоту кварцу, з яким буде працювати наш МК (у мене 16МГц), вибираємо або вписуємо потрібну, інші комент двома Слеш //:
Все.) Натискаємо F7, стежимо, щоб не було помилок і отримуємо .hex файл з прошивкою бутлоадер. До речі, якщо є жовті warning'і - це не критично.
Після настройки bootloader'а як зазначено вище (в статті), необхідно прошити його в мікроконтролер (один раз, але програматор все ж знадобитися). Я використовував найпростіший LTP програматор і PoniProg. Як правило, із заливкою прошивки проблем не виникає. Але на виставленні відповідних фьюз, зупинимося докладніше. Для Atmega32, кварцу 16МГц і завантажувача на 1024б в зазначеній програмі fuse біти повинні бути виставлені таким чином:
Після заливки boot'а в подачі напруги на МК горить світлодіод, підключений до відповідного порту. Це означає, що виконується програма завантажувача. Так як більше в МК нічого не зашито, то індикатор буде горіти постійно. Перевіримо, чи готовий bootloader до прошивці мікроконтролера. Я для цього підключаю до МК свій BT-модуль, що емулює COM порт, встановлюю з ним з'єднання, і за допомогою будь-якої термінальної програми посилаємо символ «S», не забуваючи встановити потрібну швидкість роботи. Якщо у відповідь приходить «AVRBOOT» - все ок, радіємо!)
Тепер про те як прошивати МК з boot'ом. За ідеєю, цей завантажувач повинен без проблем працювати з AVRProg. Однак мені, як я не старався, так і не вдалося подружити з нею мій девайс. Вилазила помилка, що пристрій не визначено, хоча все терміналкі, як одна, у відповідь на «S» посилали мені магічне слово. Намучавшись в студії, я забив на цю справу і закачав собі AVRDude. утиліту для прошивки МК в графічній оболонці GUI, чому був невимовно радий.)
Алгоритм роботи з прогой, при прошивці через bluetooth емулятор COM порту, наступний:
- Подаємо харчування на МК, з підключеним до нього BT-модулем;
- Єднаймося з модулем, вибравши в bluetooth оточенні наш девайс. Для індикації з'єднання я передбачив світлодіод, коли він горить - коннект є. Описано мій модуль BTM-112 в статті про Bluetooth вертоліт;
- Відриваємо AVRDude і вибираємо * .hex нашої прошивки;
- У командному рядку прописуємо наступний рядок, замінюючи номер COM порту, тип МК (у мене ATmega32, тому m32) і шлях до файлу прошивці на свої: "Розташування avrdude.exe" -p m32 -c avr910 -P com4 -U flash: w : "Розташування .hex": a -U signature: r: con: r -F -v;
- Залежно від способу входу в завантажувач МК, або натискаємо відповідну кнопку, або тиснемо rezet, якщо завантажувач стартує відразу і знаходиться в очікуванні, загоряється світлодіод - індикатор завантажувача. Потім, натискаємо «Execute», при цьому з'єднання по BT має бути встановлено.
- AVRDude також посилає в прот символ «S»? і отримавши відповідь bootloeder'а починає заливати в МК програми. А мене при цьому горить світлодіод - індикатор передачі даних по
UART інтерфейсу від модуля до МК. - Після завершення заливки програми, AVRDude звільняє порт, при цьому у мене відбувається ра'едінене BT-модуля і компа.
- Далі віджимаємо кнопку завантажувача, або чекаємо деякий час, поки він активний і після цього відбувається передача управління основній програмі МК. Перший раз я прошив класичне миготіння світлодіодом.), Що і видно на зображенні.
Досить просто.) Завдяки прошитому завантажувачу, я отримав МК, має основна перевага Arduino - відсутність необхідності спеціальних програматорів, і в той же час, позбавлений головних недоліків, таких як обмеженість середовища розробки програм. Ви можете використовувати будь-яку, зручну для вас середу, AVR Studio, CodeVision, будь язак програмування Assembler, Сі, Pascal. і багато інших. Отримати повний доступ до всіх налаштувань МК, оптимізуючи його під конкретну задачу. Дуже зручно, при розробці, коли потрібно багаторазово тестувати напісанмую прогу і коригувати її, а так само в процесі освоєння МК, завантажуючи все нові і нові прошивки.
Далі я зроблю кілька тестових завдань, які дозволять в майбутньому перейти до створення універсального пристрою, для управління вертольотами по BT-каналу.)