Використання завантажувача bascom-avr - корисна інформація - avr - проекти на мікроконтролерах avr

Використання завантажувача Bascom-AVR

У мікроконтролерів AVR є така корисна фішка як вміння працювати з Bootloader'ом, завдяки якому перепрошити мікроконтролер можна за стандартним UART інтерфейсу, без використання програм (але щоб прошити bootloader програматор все ж буде потрібно). Bootloader завантажується в спеціальну область флеш пам'яті і спрацьовує тоді коли мікроконтролер тільки починає працювати (при подачі живлення або після скидання). Якщо, якщо активні bootloader, в буфер UART потрапить байт ініціалізації, завантажувач активізується і починає записувати ці дані в пам'ять мікроконтролера, а по завершенню запису запустить щойно записали програму.

Існує велика кількість готових загрузчиков, та ж популярна зараз Arduino має вбудований Bootloader, завдяки якому відбувається швидке завантаження скетчів в пам'ять МК.

Bascom-AVR, теж не відстає від конкурентів :) і для цього є вже готові Bootloader'и для більшості мікроконтролерів серії Mega.

Зараз як раз і розглянемо bootloader для Bascom-AVR і спробуємо за допомогою нього прошити мікроконтролер. А в якості узгоджувального ланки використовується перетворювач USB-UART на мікросхемі FT232RL.

Насамперед вибираємо мікроконтролер, в якому хочемо використовувати завантажувач. У мене це нафарширована ATMega64a. Пам'яті в ній багато і тому вирішив завантажити туди бутлоадер, з неї не убуде :)

Тестова схема нижче, крім мікроконтролера і перетворювача в схемі присутні світлодіод, кварц на 16 МГц і кнопка скидання

Використання завантажувача bascom-avr - корисна інформація - avr - проекти на мікроконтролерах avr

Зібрана схема у мене виглядає так (про цю хустці я напишу трохи пізніше)

Використання завантажувача bascom-avr - корисна інформація - avr - проекти на мікроконтролерах avr

Отже, отримавши прошивку буту з потрібними настройками, залишається тільки завантажити його в мікроконтролер. Це робиться стандартним способом - за допомогою програматора :)

По-друге, необхідно правильно налаштувати фьюз - виставити розмір завантажувача "Boot Flash section Size" (для ATMega64 розмір становить 1024 слів) і запрограмувати фьюз "Boot Reset Vector". Тільки після цього наш завантажений бутлоадер Будера стартувати першим при запуску мікроконтролера.

Розмір завантажувача прописаний у файлі бутлоадер, тому вибирайте в залежності від використовуваного типу мікроконтролера.

Скрін з налаштованими фьюз для ATMega64 привів нижче (в Khazama AVR Programmer). Тут до того ж вибрано тактирование від зовнішнього кварцового резонатора.

Використання завантажувача bascom-avr - корисна інформація - avr - проекти на мікроконтролерах avr

Після всього цього наш bootloader готовий до роботи!

Тепер потрібно налаштувати ПО на боці комп'ютера. Відкриваємо Bascom-AVR і заходимо в налаштування у вкладку Programmer. У списку вибираємо потрібний нам тип програматора - MCS Bootloader.

У цій же вкладці вибираємо номер COM порту (у мене він під номером 15) і швидкість з'єднання. Тут я залишив все по умолчаніяю - 38400 бод.

Використання завантажувача bascom-avr - корисна інформація - avr - проекти на мікроконтролерах avr

Тепер необхідно відкрити вкладку MCS Loader і поставити величину завантажувального сектора, що відповідає тому значенню, яке виставили в прошивці бутлоадер (в моєму випадку +1024 слів)

Використання завантажувача bascom-avr - корисна інформація - avr - проекти на мікроконтролерах avr

Інші налаштування мало цікаві, за винятком пункту "Reset via DTR". Ця галочка дозволяє автоматично смикати ногу Reset на мікроконтролері, якщо підключити її до висновку DTR на перетворювачі. У мене це не реалізовано тому при прошивці кожен раз буду натискати на кнопку Reset вручну :) Але для повного щастя можна застосувати цю фічу.

Ви зберегли, можна приступати до завантаження програми через бутлоадер. Для прикладу, завантажимо в контролер просту програмку миготіння світлодіода на нозі PortD.7

$ Regfile = "m64def.dat"
$ Crystal = 16000000

Config Portd. 7 = Output
Led Alias ​​Portd. 7

компілюємо (F7) і натискаємо F4 і тут же з'явиться вікно завантажувача

Використання завантажувача bascom-avr - корисна інформація - avr - проекти на мікроконтролерах avr

Як я вже писав, він очікує коли стартує завантажувач в мікроконтролері, тому для початку заливки файлу, необхідно скинути мікроконтролер, натисканням на кнопку Reset. Після натискання відбудеться завантаження нової програми. І тут, треба зізнатися, був приємно здивований, тим з якою швидкістю відбувається завантаження програми - "літає" навіть швидше ніж на юсбаспе і всяких STK200.