WWW.LIB.KNIGI-X.RU
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - Электронные матриалы
 


«15 February 2007 BNL (kushpil Применение BOOT LOADER в микроконтроллере Atmega128 Введение Многие микроконтроллеры компании ATMEL позволяют применять загрузчик для программирования ...»

15 February 2007 BNL (kushpil@ujf.cas.cz)

Применение BOOT LOADER в микроконтроллере Atmega128

Введение

Многие микроконтроллеры компании ATMEL позволяют применять

загрузчик для программирования FLASH/EEPROM памяти. Это полезное

свойство позволяет легко перепрограммировать контроллер Atmega128 без

использования специального программатора. Практически все выглядит

следующим образом. На печатной плате микроконтроллера размещается двухконтактная перемычка. Один из контактов присоединяется к одному из портов контроллера (в нашем случае это порт РЕ4), а другой контакт заземляется. Если перемычка замкнута (порт РЕ4 в состоянии “0”) тогда при включении питания или при получении сигнала RESET начинается выполнение программы загрузки данных принимаемых с последовательного UART порта в FLASH/EEPROM память микроконтроллера. В случае когда перемычка разомкнута (порт РЕ4 в состоянии “1”) выполняется программа пользователя.

Для микроконтроллера Atmega128 существует два распространённых загрузчика. Первый это фактически программный эмулятор работы известного программатора STK500. Он позволяет использовать для программирования последовательный коммуникационный порт компьютера (COM1,2...) и встроенный UART порт микроконтроллера. Второй загрузчик предназначен для загрузки памяти микроконтроллера посредством ETHERNET сети с использованием TFTP протокола. Оба загрузчика написаны для использования микроконтроллера Atmega128 с операционной системой NutOS. Это требует адаптации программного обеспечения при желании использовать загрузчик с другими типами микроконтроллеров.

Принципы записи загрузчика в память микроконтроллера не изменяются и поэтому это описание может служить руководством для желающих попробовать свои силы в использования загрузчика в вашем проекте. Загрузчик существенно облегчает работу с микроконтроллерами как на этапе отладки проекта так и при необходимости со временем изменить программное обеспечение микроконтроллера на новую версию.

Загрузчик является важным элементом распределённых систем управления и контроля поскольку позволяет легко автоматизировать процесс управления обновлением программного обеспечения связывая тип программного обеспечения с аппаратной реализацией. Например если в распределённой сети применяется несколько датчиков измерителей температуры и влажности воздуха при обновлении программного обеспечения загрузчик сам определяет соответствие нового программного обеспечения аппаратной реализации (т.е. какое программное обеспечение предназначено для измерителя температуры а какое для измерителя влажности воздуха).

Основные принципы применения загрузчика Для применения загрузчика необходимо чтобы FLASH память микроконтроллера была разделена на две программно недоступные части. Одна часть применяется для программы пользователя, а другая для загрузчика. В микроконтроллере Atmega128 размер двух этих частей может быть установлен при помощи конфигурационного бита BOOTSZ (Boot Size).

Для чтения и записи в памяти выделенной для загрузчика применяются специальные типы инструкций которые работают лишь в этой части памяти.

Таким способом реализуется программная независимость. Инструкция для чтения LPM (Load Program Memory) и для записи SPM (Store program Memory).

Обычно при включении питания или при сигнале RESET программный счётчик микроконтроллера устанавливается на адрес 0 (начинается выполнение первой команды записанной по этому адресу). Память выделенная для загрузчика обычно располагается ближе к верхним адресам (ближе к концу пространства памяти микроконтроллера). Поэтому важно установить конфигурационный бит BOOTRST (Boot Reset) который изменит положение стартового адреса с нулевого на адрес начала памяти загрузчика.





Дальнейшее поведение определяется программным обеспечением загрузчика. Как уже отмечалось выше, если состояние РЕ4=0 начинается выполнение программы эмулятора STK500 и при РЕ=1 выполняется программа пользователя.

Особо отметим, что загрузчик не может полностью заменить ISP программатор. Он может служить лишь для загрузки нового программного обеспечения пользователя. Ограничения являются следствием того, что загрузчик не позволяет получить полный доступ к конфигурационным битам и битам безопасности. Следствие этого то, что необходимо применять ISP программатор для загрузки самого загрузчика.

Загрузчик по протоколу STK500

Для микроконтроллера Atmega128 существует свободно распространяемый загрузчик который поддерживает протокол программатора AVR STK500 из системы разработки компании ATMEL.

Для компиляции используется AVR-GCC. Общий размер кода загрузчика составляет 1.5 КБ. Загрузчик позволяет перезаписывать память FLASH и EEPROM но не позволяет читать и записывать биты конфигурации и защиты.

Запись загрузчика в память микроконтроллера проверена при помощи среды разработки AVR Studio версий 3.XX, 4.XX и последней версии UISP.

Соединение компьютера с загрузчиком осуществляется при помощи порта UART0 микроконтроллера при скорости обмена данных 115 200 Bd. Версия на которую ссылается автор была приспособлена для работы с Платой Разработки CHARON II (ПР).

Инструкция по записи загрузчика в память микроконтроллера

В архивном файле находятся следующие компоненты:

- stk500boot.c … программа загрузчика оптимизированная для модуля CHARON II,

- makefile … файл для сборки загрузчика в среде AVR-GCC,

- fuses.mot … файл конфигурации загрузчика для модуля CHARON II.

После раскрытия архивного файла и записи его в директорию в которой он будет откомпилирован необходимо выполнить последовательность следующих операций (если используется UISP c программатором STK200, с программированием через параллельный порт и модуль CHARON II):

- make … компиляция для получения файла stk500boot.hex,

- make flash … запись загрузчика в память контроллера при помощи программатора STK200,

- make fuse … запись стандартной конфигурации для модуля CHARON II (с этого момента загрузчик начнёт работать),

- make clean … стирание временных файлов.

Если используется другой программатор (например STK500 необходимо установить конфигурационные биты и запись загрузчика в память микроконтроллера вручную. Пример установки конфигурации на примере STK500 показан на рисунке 1.

- BOOTZ = 00 … размер загрузчика 8 КБ, начальный адрес 0x1E000,

- BOOTRST.= 1 … при RESET перейти на адрес 0x1E000.

–  –  –

Как уже отмечалось ранее при замкнутой перемычке РЕ4 на землю (логический 0) в случае поступления сигнала RESET или включения питания модуля активизируется программа программатора STK500. После этого последовательный порт UART0 микроконтроллера работает как программатор STK500. После окончания процесса программирования необходимо разомкнуть перемычку и послать сигнал RESET для запуска программы пользователя. Ниже подробно описана процедура программирования микроконтроллера с помощью AVR Studio. Для программирования можно применять как графический интерфейс программы, что требует инсталляции всего пакета программного обеспечения AVR Studio, как и программирование при помощи командной строки в DOS консоли. Для программирования при помощи командной строки необходимо скопировать файлы (stk500.exe, stk500dll.dll, stk500.ini) в одну директорию из которой программа будет запускаться. Ниже приведён пример выполнения записи и чтения для программатора STK500.

а) запись и контроль файла (basemon.hex) в FLASH память микроконтроллера через последовательный порт компьютера COM1:

stk500.exe -dATMEGA128 -ms -e -pf -ifbasemon.hex

-cCOM1 -vf

б) запись (без процедуры контроля) файла (basemon.hex) в FLASH память микроконтроллера через последовательный порт компьютера COM1:

stk500.exe -dATMEGA128 -ms -e -pf -ifbasemon.hex -cCOM1 Для программирования при помощи программы UISP необходимо выполнение следующих команд:

а) запись и контроль файла (basemon.hex) в FLASH память микроконтроллера через последовательный порт компьютера COM1:

uisp -dprog=stk500 -dserial=/dev/ttyS0 -dspeed=115200

-dpart=ATmega128 --erase --segment=flash --upload -verify if=basemon.hex -v=3

б) запись (без процедуры контроля) файла (basemon.hex) в FLASH память микроконтроллера через последовательный порт компьютера COM1:

uisp -dprog=stk500 -dserial=/dev/ttyS0 -dspeed=115200

-dpart=ATmega128 --erase --segment=flash --upload if=basemon.hex -v=3 Загрузчик по протоколу TFTP Наиболее интересные возможности применения загрузчика реализуются в случае применения интерфейса ETHERNET. Всё изложенное далее относится к применению загрузчика в системах разработки EtherNut и CHARON II для NutOS. Поскольку микроконтроллер Atmega128 не располагает встроенными возможностями поддержки протокола ETHERNET загрузчик должен быть привязан к схемотехнической реализации интерфейса между Atmega128 и периферийным устройством обеспечивающем поддержку протокола ETHERNET. Для рассматриваемого проекта существует два вида загрузчика.

Первый называется ”eboot” загрузчик основаный на применении интерфейсной интегральной схемы RTL8019AS контроллера. Этот загрузчик работает с системами EtherNut 1.3 и CHARON II (нда... пока не переводил не видел двусмысленности данного сокращения...).

Второй тип загрузчика называется “appload” и предназначен для поддержки интегральной схемы LAN91C111 контроллера. Загрузчик может применяться для Ethernut 2.0 и в схемотехнических решениях где применяется вышеописанный контроллер.

Технически для загрузчика используется 4КБ верхней памяти микроконтроллера. Загрузчик поддерживает протоколы DHCP и TFPT для перезаписи FLASH памяти Atmega128 микроконтроллера. Процесс перезаписи всей памяти микроконтроллера длится около четырёх секунд.

Перед началом изложения процедуры работы по установке загрузчика в память микроконтроллера Atmega128 и дальнейшей работы с ним необходимо сделать важные замечания.

Важные замечания

1. Согласно технической спецификации микроконтроллер Atmega128 позволяет 1000 циклов записи-чтения FLASH памяти. Неосмотрительное применение этого типа загрузчика может привести к необратимому отказу памяти всего за несколько минут работы (1000:4 = 250 секунд).

2. Работа с битами установки (fuse bits) может привести к блокированию микроконтроллера Atmega128. Далее применяемое выражение запрограммированный (programmed) означает установку бита 0 и не запрограммированный (unprogrammed) соответственно бит устанавливается как 1. Внимательно разбирайтесь прежде чем выполнять операции перезаписи битов конфигурации и безопасности.

3. Для работы с загрузчиком применяется протокол TFTP, который является не защищённым. При подключении к общей сети не разрешайте TFTP серверу запись на Ваш компьютер без принятия дополнительных мер безопасности.

Для работы с загрузчиком достаточно разрешить доступ для чтения лишь в одну директорию.

Автор не несёт ответственность за любый проблемы возникшие в процессе работы с загрузчиком. Все Ваши действия должны выполнятся обдуманно.

Запись загрузчика в FLASH память микроконтроллера Atmega128 Как и в предыдущем случае применения загрузчика с поддержкой протокола программатора нам необходимо откомпилировать код загрузчика и полученный файл записать в соответствующую часть памяти.

Запись должна осуществляться с адреса 0x1F000 или его эквивалента 0xF800.

Процедура записи не отличается от описанной ранее, поэтому остановимся на том как установить конфигурационные биты микроконтроллера Atmega128.

Необходимо установить следующие значения конфигурации:

–  –  –

Применение загрузчика для программирования микроконтроллера Atmega128 обладает преимуществами и недостатками.

Кратко это можно суммировать в виде следующих пунктов:

Преимущества Свобода в выборе порта для программирования (UART0, UART1) и • протокола обмена, Отсутствие риска случайного изменения битов конфигурации и • безопасности, Отсутствуют проблемы возникающие если собственная тактовая частота • программатора выше тактовой частоты программируемого микроконтроллера, Скорость программирования зависит лишь от скорости выбранного • интерфейса, Недостатки Необходимость ручной активации процесса программирования, • Уменьшение количества доступной FLASH памяти для приложения, • Уменьшение возможностей адаптации микроконтроллера •



Похожие работы:

«Рис. 1 ЛИЦЕВАЯ ПАНЕЛЬ БЛОКА ОТОБРАЖЕНИЯ ИНФОРМАЦИИ ПРИБОРА ОНК-­ 60с 16 кнопка переключения диапазонов напряжений модуля защиты от опасного ИНДИКАТОРЫ: 1 “НОРМА”, 2 “СТОП”. напряжения ЛЭП; 3 ИЖЦ индикатор жидкокристаллический 17 кнопка блокировки координатной цифровой. защиты...»

«1 Государственное автономное образовательное учреждение дополнительного профессионального образования "Институт регионального развития Пензенской области" ПРОБЛЕМЫ И ПЕРСПЕКТИВЫ Научно-методический и информационный журнал Выходит 4 раза в год Журн...»

«1 Содержание 1. Пояснительная записка..4 2. Планируемые результаты изучения учебного предмета.5 3. Содержание учебного предмета. 4. Тематическое планирование с указанием часов на освоение каждой темы.12 1. Пояснительная записка Программа разработана в соответствии с требованиями Федерального государственного образовательного стандар...»

«МЕЖГОСУДАРСТВЕННЫЙ СТАНДАРТ ПИЛОМАТЕРИАЛЫ И ЗАГОТОВКИ ПРАВИЛА ПРИЕМКИ, МЕТОДЫ КОНТРОЛЯ, МАРКИРОВКА И ТРАНСПОРТИРОВАНИЕ ГОСТ 6564-84 ПИЛОМАТЕРИАЛЫ И ЗАГОТОВКИ Правила приемки, методы контроля, ГОСТ маркировка...»

«Информация о деятельности ЦК Профсоюза за период с мая 2015 года по май 2016 года Организационно-уставная деятельность Профсоюза Профессиональный союз работников здравоохранения Российской Федерации один из самых крупных отраслевых профсоюзов. В него входят практически все категории работающих в здравоохранении, в том числе сту...»

«УПРАВЛЕНИЕ КАЧЕСТВОМ УДК 658.562: 621.9 ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ПРОЦЕДУР ПРИЕМОЧНОГО КОНТРОЛЯ ПАРТИИ НЕШТУЧНОЙ ПРОДУКЦИИ Е.А. Саввина Рассмотрено имитационное моделирование процедур приемочного контроля партии нештучной продукции с целью определения условий оптимального и адекватного использования затратных модел...»

«УДК 574.583:597-153 UDC 574.583:597-153 КОРМОВАЯ БАЗА ВНУТРЕННИХ FOOD SUPPLY OF INLAND WATER ПРЕСНОВОДНЫХ ВОДОЕМОВ, BODIES WHICH HAVE FISHERIES ИМЕЮЩИХ РЫБОХОЗЯЙСТВЕННОЕ SIGNIFICANCE (BY EXAMPLE OF THE ЗНАЧЕНИЕ (НА ПРИМЕРЕ ОЗЕРА LAKE SENEZH) СЕНЕЖ) Е.Ю. Кузьмина...»








 
2017 www.lib.knigi-x.ru - «Бесплатная электронная библиотека - электронные матриалы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.