Site Loader

Компиляция и прошивка. WinAVR + Khazama AVR Programmer. » R13-PROJECT

Что бы не отвечать на вопросы — как собрать и прошить прошивки из моих проектов написана эта статья. В ней я рассмотрю вопрос компиляции и прошивки, а так же софта и используемого оборудования. Для прошивки я пользуюсь программатором USB ASP
Стоит он 60-70р (практически по цене микроконтроллера ATMEGA8, на котором и собран). Даю несколько ссылок, так как лоты у продавцов иногда исчезают, а следить за их наличием и каждый раз менять статью мне лениво, поэтому вот ссылки.
http://ali.pub/43slcv
http://ali.pub/43slny
http://ali.pub/43sm25
http://ali.pub/43sm3p
http://ali.pub/43sm77
Можете купить по ссылке или поискать у других продавцов, так как цены так же со временем меняются и не всегда в меньшую сторону.

Для компиляции прошивки понадобится avr-gcc. Компилятор avr-gcc для виндовс включен в пакет WinAVR. Весит пакет этот не много (около 30 мегабайт), ставится быстро и нет привязки к какому то конкретному компилятору. К своим проектам я буду прикладывать BAT файл, запустив который вы соберете прошивку. Скачать его можно с офсайта по данной ссылке : http://winavr.sourceforge.net/download.html

Переходим по ссылке и попадаем сюда:

WINAVR download

Далее нужно нажать на зеленую кнопку, далее вы должны попасть вот сюда https://sourceforge.net/projects/winavr/, но ссылка может измениться, поэтому я описываю полный путь как найти. Там загрузка начнется автоматически через5-10 секунд, более ничего нажимать не нужно (следите за таймером).

WINAVR Скачать

После скачивания просто установите данный пакет WinAVR. Система как обычно ругнется о том, что файл из неизвестного источника — просто игнорируем. Появится окошко с выбором языка, и начнется установка.

WinAVR 20100110

Все обычно и расписывать в картинках детально я не буду. Папку для установки можно не менять, оставив C:\WinAVR-20100110. Установщик еще предложит поставить и Programmers notepad (входит в состав) — даже если пользуетесь notepad++ лучше поставить — один раз notepad++ сыграл злую шутку — при работе с графическим дисплеем были проблемы с выводом нескольких русских букв, и я не мог понять — почему, убил 2 вечера, выясняя, оказалось дело в кодировке и например буква «Я» кодировалась notepad++ не верно, в исходнике, а компилятору пофигу, для него это не буква а просто байт. Когда открыл в блокноте идущем с WinAVR я увидел, что проблемные буквы превратились в абракадабру. Заменил и все заработало. Если прошивка не обрабатывает кириллицу, то править исходники можно в чем угодно.

WinAVR компоненты

После установки рекомендую перезагрузить компьютер, либо выйти из системы и войти вновь. Чтобы изменения для переменной Path вступили в силу для окружения пользователя. Теперь вы можете компилировать прошивки из моих проектов. Для этого в состав моих проектов приложен батник и make файл, где все настроено. Что бы скомпилировать, достаточно запустить RUN.bat из папки проекта. После компиляции вы должны увидеть что то вроде этого.

WinAVR компиляция AVR gcc

Если так, то все хорошо и прошивка собралась. Сам файл прошивки появится в этой же папке под именем main.hex.

Makefile я не настраиваю для работы с программатором заранее, так как программаторы у всех разные. Пользуюсь я программатором USB ASP, про него я писал выше, и продублирую ссылки в конце статьи, там же по мере редактирования статью будут появляться и другие ссылки… возможно… если будет, что добавить…. наверное…

Стоит дешево, шьет быстро. Для прошивки я использую программу KhazamaAVRProgrammer. По сути это графическая оболочка над AVRDUDE, но из всех, что я видел, эта понравилась больше всего. Раньше я писал батники под AVRDUDE, но потом надоело, особенно для фьюз под каждый проект.
Подробнее о данной программе можно почитать вот здесь:

https://cxem.net/software/khazama_AVR_programmer.php

Для прошивки нужно выбрать процессор.

KhazamaAVRProgrammer выбор микроконтроллера

Далее выбрать «File» и пункт «Load FLASH file to buffer»

KhazamaAVRProgrammer загрузка файла прошивки

или нажать кнопку

KhazamaAVRProgrammer загрузка файла прошивки

Для запуска процесса прошивки необходимо выбрать «Command» а в нем пункт «Write FLASH buffer to chip».

KhazamaAVRProgrammer запуск прошивки


или нажать кнопку

Может выскочить ошибка.

Просто игнорируем ее и прошивка запустится. После удачной прошивки программа выкинет окошко с надписью «OK».

Проверить, правильность подключения программатора и микроконтроллера можно, выбрав пункт «Command» а в нем пункт «Read chip signature». Вначале может выскочить та же ошибка, (скорее предупреждение), просто игнорируем (это предупреждение касается программатора, и на работу не влияет)

А далее окно с сигнатурой чипа. Если нет больше ошибок, то можно прошивать.

KhazamaAVRProgrammer чтение Chip Signature

Для некоторых проектов потребуется править FUSE биты. Делается это для включения специфических функций или перенастраивании тактирования.
Биты меняются на вкладке «Command» а в нем пункт «Fuses and lock bits».

Перед правкой рекомендую нажать кнопку Default или загрузить из контроллера выбрав Read All . Какие биты устанавливать я буду указывать на странице проекта, если их требуется менять.

Ссылки:
Для прошивки я пользуюсь программатором USB ASP
Это несколько ссылок, так как лоты у продавцов иногда исчезают, а следить за их наличием и каждый раз менять статью мне лениво, поэтому вот ссылки на одно и то же.
http://ali.pub/43slcv
http://ali.pub/43slny
http://ali.pub/43sm25
http://ali.pub/43sm3p
http://ali.pub/43sm77
Можете купить по ссылке или поискать дешевле у других продавцов (на момент написания статьи это самые дешевые лоты у проверенных продавцов).

Краткая инструкция по прошивке микроконтроллеров AVR c помощью Avrdude-GUI (пример использования, заливка hex-файла)

Скачиваем (СКАЧАТЬ AVRDude + GUI) и разархивируем папку AVRdude-GUI в Program Files (можно в любую другую), установка не требуется.

  1. Запускаем avrdude-GUI.exe, указываем путь к пакету AVRDude «avrdude.exe File»:
  2. Выбираем свой программатор и порт «Programmer» «Port» (список поддерживаемых программаторов внизу статьи).
    У меня вот такой:Я выбираю следующую настройку программатора:Если у вас один из самых распространенных: Китайских ISP программаторов (USBASP USBISP AVR), то необходимо выставить следующие настройки:
  3. Выбираем свой микроконтроллер «Device». В последнее время я использую ATMEGA328P, а точнее, плату на Алиэкспресс Arduino Nano v 3.0, предварительно удалив стандартный загрузчик arduino (кнопка «Chip Erase»), после чего получаю чистый микроконтроллер.
  4. В «Command Line Option» вписываем настройки. Я использую ключ –F (список поддерживаемых команд в конце статьи):
  5. В графе «Fuse» можно считать или записать фьюз-биты (используйте калькулятор фьюзов AVR). Для проверки связи с программатором и микроконтроллером, нажимаем «Read», внутри блока «Fuse». Если всё нормально, должны считаться биты подключенного микроконтроллера:
  6. В разделе «Flash» выбираем файл прошивки (hex файл), затем нажимаем «Erase-Write-Verify», после чего произойдёт очистка Flash памяти микроконтроллера, запись прошивки в контроллер, верификация данных (программа зависает ненадолго, это нормально, зависит от размера файла):

Вот и всё, прошивка залита в чип.

Видеоверсия статьи

Список поддерживаемых программаторов

Перечень поддерживаемых микроконтроллеров AVR фирмы Atmel

Список поддерживаемых команд (поле «Command Line Option»)

Ссылки по теме

Официальные страницы и описание:
Адрес официального сайта программы
Адрес официального сайта пакета GUI
Википедия 

Вам также может понравиться:

No related posts found.

026-Программы для прожига AVR микроконтроллеров. — GetChip.net

Файлы прошивок бывают нескольких типов HEX, GEN, BIN. Я буду выкладывать файлы типа HEX
, так как они наиболее распространены. Есть у меня особые планы и на BIN-файлы. Если у меня получится то, что я задумал, буду выкладывать параллельно и BIN-файлы. Рядом с прошивкой будет выкладываться картинка с Fuse битами (по даташиту). Их нужно внимательно перенести в соответствующие поля программы для программирования.

Пришло время определиться, какими программами мы будем прожигать микроконтроллер:

Если Вы собрали LPT программатор, файлы прошивок будем прожигать при помощи UniProf. Подробно процедура программирования через LPT порт при помощи UniProf >

Если Вы собрали COM программатор, файлы прошивок будем прожигать при помощи UniProf. Подробно процедура программирования через COM порт при помощи UniProf >

Так как мы еще не определились с USB программатором, программы для программирования еще нет, но можно высказать свои пожелания по этому поводу>

(Visited 3 347 times, 1 visits today)

Оболочки для USBASP | Электроника для всех

Вот уже почти два года активно использую USBasp в качестве основного программатора. Все мне в нем нравится, кроме прошивающей программы — avrdude консольная, а мне под каждую прошивку писать свой батник лениво.
Да и начинающим порой разобраться в прорве его ключей бывает сложно. Так что будем натягивать на него ГУЙ ака Графически Удобный Йнтерфейс. Их существует с пол десятка я же отобрал наиболее удачные, на мой взгляд, оболочки.


Мной долгое вовсю юзался GUI от yourdevice.net.

Оболочка удобная. Люблю ее за то, что нельзя по невнимательности угробить фьюзами контроллер, т.к. оболочка сразу же загружает дефолтные значения битов. А потом их уже по мере необходимости заменяешь на те что надо. Все остальное же делается в два клика.

Также есть оболочка написанная на Java: Burn-o-Mat — красивая, удобная. Но жууутко тормозная.

У меня на компе (весьма древнем) она вообще еле шевелится. Зато кроссплатформенная.

Еще нашлась дивная программка Khazama AVR Programmer созданная неким арабом.

Вполне неплохо работает, выставление fuse битов похоже на AVRProg идущий в составе студии.

Но чего мне не хватало так это окна с кексами. Как в UniProf или в PonyProg. Люблю я пофтыкать в колонки хексов. Медитативное занятие. Сидишь и в уме дизассемблируешь потихоньку 🙂 По знакомым адресам узнаешь где у тебя что записано. Как память распределяется… В общем, это низкоуровневый Дзен. Да и просто полезно визуально поглядеть сколько у тебя осталось еще свободных ячеек. Или изменил одну команду, а перекомпилиовать лень — поправил прям в хексе. Ну, а глянуть в дамп епрома так это вообще святое — я обычно туда какие нибудь логи люблю выгружать, а потом программатором зырю. AVRDUDE выдает intel hex который не очень удобен для просмотра — мусор слева и справа от дампа отвлекает, а хекс редактор открывать лень… Короче, одним словом — хочу :))))

И вот недавно один индус отжег и родил мега прогу eXtreme Burner — AVR. Причем это не оболочка на AVRDUDE это полноценная программа, заточенная на работу с USBAsp.

Проект еще совсем нов, поддерживаются далеко не все контроллеры, FUSE биты задаются числами. Не очень удобно, зато точно не перепутаешь единцу с нулем. Мне нравится, буду юзать!

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *