Малаток-меню
Авторизация

Наш опрос
Как Вы попали на сайт?
Всего ответов: 81
Мини-чат
200
Статистика


Наш линк
Malatok.at.ua
Полезные ссылки
Это может быть интересно
[
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Stalker753, Викр, Дмытрохан 
Форум » РАДИОТЕХНИКА » Полезные устройства » Использование загрузчика Bascom-AVR
Использование загрузчика Bascom-AVR
incubus Дата: Суббота, 14.12.2013, 22:12 | Сообщение # 1
Почетный друг сайта
Группа: Модераторы
Сообщений: 190
Награды: 4
Репутация: 200
Замечания: 0%
Статус: Офлайн
У микроконтроллеров AVR есть такая полезная фишка как умение работать с
Bootloader'ом, благодаря которому перепрошить микроконтроллер можно по
стандартному UART интерфейсу, без использования программатора (но чтобы
прошить bootloader программатор все же потребуется). Bootloader
загружается в специальную область флэш памяти и срабатывает тогда когда
микроконтроллер только начинает работать (при подаче питания или после
сброса). Если, пока активен bootloader, в буфер UART попадет байт
инициализации, загрузчик активизируется и начинает записывать получаемые
данные в память микроконтроллера, а по завершению записи запустит
только что записанную программу.
  
Существует большое количество готовых загрузчиков, та же популярная сейчас Arduino
имеет встроенный Bootloader, благодаря которому происходит быстрая
загрузка скетчей в память МК. Bascom-AVR, тоже не отстает от конкурентов smile  и для этого имеется уже готовые
Bootloader'ы для большинства микроконтроллеров серии Mega.  Сейчас как раз и рассмотрим bootloader для Bascom-AVR и попробуем с помощью
него прошить микроконтроллер. А в качестве согласующего звена
используется преобразователь USB-UART на микросхеме FT232RL.
  Первым делом выбираем микроконтроллер, в котором хотим использовать загрузчик. У меня это нафаршированная ATMega64a. Памяти в ней много и поэтому решил загрузить туда бутлоадер, с нее не убудет smile
 Тестовая схема ниже, помимо микроконтроллера и преобразователя в схеме присутствуют светодиод, кварц на 16 МГц и кнопка сброса


 Собранная схема у меня выглядит так (об этой платке я напишу немного позже)


 Затем берем исходник бутлоадера, его можно найти в папке с установленным Bascom-AVR в разделе \SAMPLES\BOOT. Версий загрузчиков там много, я использовал BootLoader.bas  В нем уже содержатся настройки для всех микроконтроллеров, достаточно
открыть нужный от комментария и скомпилировать прошивку. Если необходимо
можно подправить частоту кварца (я изменил на 16 МГц) и изменить
скорость соединения с COM-портом. По умолчанию там стоит 38400 бод, и
нужно быть внимательным, так как изменив этот параметр, придется тоже
самое проделать в настройках программатора Bascom-AVR. Итак, получив прошивку бута с нужными настройками, остается только загрузить
его в микроконтроллер. Это делается стандартным способом - с помощью программатора smile  И тут есть свои нюансы. Во-первых, при компилировании прошивки,
компилятор скажет что файл будет занимать 99% памяти микроконтроллера
(даже ATMega64 с ее 64 кб флэша). На это не обращаем внимания. Это
объясняется тем, что загрузчик записывается в самый конец адресного
пространства. А так как запись данных при прошивке идет по порядку - с
начала в конец, то загрузка может занять достаточно длительное время,
особенно на медленных программаторах. Во-вторых,  необходимо правильно сконфигурировать фьюзы - выставить размер
загрузчика "Boot Flash section Size" (для ATMega64 размер составляет
1024 слов) и запрограммировать фьюз "Boot Reset Vector". Только после
этого наш загруженный бутлоадер будер стартовать первым при запуске
микроконтроллера. Размер загрузчика прописан в файле бутлоадера, поэтому выбирайте в зависимости от используемого типа микроконтроллера.  Скрин с настроенными фьюзами для ATMega64 привел ниже (в Khazama AVR
Programmer). Здесь вдобавок выбрано тактирование от внешнего кварцевого
резонатора. 
 После всего этого наш bootloader готов к работе! Теперь нужно настроить ПО на стороне компьютера. Открываем Bascom-AVR и
заходим в настройки во вкладку Programmer. Из выпадающего списка
выбираем нужный нам тип программатора - MCS Bootloader. В этой же вкладке выбираем номер COM порта (у меня он под номером 15) и
скорость соединения. Здесь я оставил все по умолчанияю - 38400 бод.
 Теперь необходимо открыть вкладку MCS Loader и поставить величину загрузочного
сектора, соответствующее тому значению, которое выставили в прошивке
бутлоадера (в моем случае 1024 слов)
 Остальные настройки мало интересны, за исключением пункта "Reset via DTR". Эта галочка позволяет автоматически дергать ногу Reset на микроконтроллере,
если подключить ее к выводу DTR на преобразователе. У меня это не
реализовано поэтому при прошивке каждый раз буду нажимать на кнопку
Reset вручную smile Но для полного счастья можно применить эту фичу.  После сохранения настроек, можно приступать к загрузке программы через
бутлоадер. Для примера, загрузим в контроллер простую программку мигания
светодиода на ноге PortD.7$regfile = "m64def.dat"
$crystal = 16000000

Config Portd.7 = Output
Led Alias Portd.7

Do
Led = 1
Waitms 100
Led = 0
Waitms 500
Loop

End
компилируем (F7) и нажимаем F4 и тут же появится окно загрузчика 
 Как я уже писал, он ожидает когда стартует загрузчик в микроконтроллере,
поэтому для начала заливки файла, необходимо сбросить микроконтроллер,
нажатием на кнопку Reset. После нажатия произойдет загрузка новой
программы. И тут, надо признаться, был приятно удивлен, тем с какой
скоростью происходит загрузка программы - "летает" даже быстрее чем на
юсбаспе и всяких STK200.  Ну и напоследок демонстрационное видео работы, тут я по очереди загружаю в
микроконтроллер программы с разной частотой мигания светодиодаСкачать MCS Bootloader для ATMega64


С дураком спорить бесполезно!
 
Форум » РАДИОТЕХНИКА » Полезные устройства » Использование загрузчика Bascom-AVR
Страница 1 из 11
Поиск:
Новый ответ
Имя:
Текст сообщения:
Опции сообщения:
Код безопасности:
Яндекс.Метрика
24 log 24 LOG statistick
счетчик посещений
Если вы видите это,
то ваш браузер устарел
и не поддерживает технологий
CSS 3.0