Khazama avr programmer как пользоваться

от admin

Миниатюрный USB программатор для AVR микроконтроллеров

Как театр начинается с вешалки, так программирование микроконтроллеров начинается с выбора хорошего программатора. Так как начинаю осваивать микроконтроллеры фирмы ATMEL, то досконально пришлось ознакомится с тем что предлагают производители. Предлагают они много всего интересного и вкусного, только совсем по заоблачным ценам. К примеру, платка с одним двадцатиногим микроконтроллером с парой резисторов и диодов в качестве обвязки, стоит как «самолет». Поэтому остро встал вопрос о самостоятельной сборке программатора. После долгого изучения наработок радиолюбителей со стажем, было решено собрать хорошо зарекомендовавший себя программатор USBASP, мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48). Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку.

Автором данного программатора является немец Thomas Fichl, страничка его разработки со схемами, файлами печатных плат и драйверами.
Раз решено было собрать миниатюрный программатор, то перерисовал схему под микроконтроллер Atmega8 в корпусе TQFP32 (распиновка микроконтроллера отличается от распиновки в корпусе DIP):

Перемычка J1 применяется, в случае если необходимо прошить микроконтроллер с тактовой частотой ниже 1,5МГц. Кстати, эту перемычку вообще можно исключить, посадив 25 ногу МК на землю. Тогда программатор будет всегда работать на пониженной частоте. Лично для себя отметил, что программирование на пониженной скорости на доли секунды дольше, и поэтому теперь перемычку не дёргаю, а постоянно шью с ней.
Стабилитроны D1 и D2 служат для согласования уровней между программатором и USB шиной, без них работать будет, но далеко не на всех компьютерах.
Светодиод blue показывает наличие готовности к программированию схемы, red загорается во время программирования. Контакты для программирования выведены на разъем IDC-06, распиновка соответствует стандарту ATMEL для 6-ти пинового ISP разъема:

На этот разъем выведены контакты для питания программируемых устройств, здесь оно берется напрямую с USB порта компьютера, поэтому нужно быть внимательным и не допускать кз. Этот же разъем применяется и для программирования управляющего микроконтроллера, для этого достаточно соединить выводы Reset на разъеме и на мк (см. красный пунктир на схеме). В авторской схеме это делается джампером, но я не стал загромождать плату и убрал его. Для единичной прошивки хватит и простой проволочной перемычки. Плата получилась двухсторонняя, размерами 45х18 мм.

Разъем для программирования и перемычка для снижения скорости работы программатора вынесены на торец устройства, это очень удобно

Прошивка управляющего микроконтроллера

Итак, после сборки устройства осталось самое важное — прошить управляющий микроконтроллер. Для этих целей хорошо подходят друзья у которых остались компьютеры с LPT портом 🙂 Простейший программатор на пяти проводках для AVR
Микроконтроллер можно прошивать с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку берем на странице немца. Для заливки управляющей программы в микроконтроллер я использовал программу PonyProg. При программировании необходимо завести кристалл на работу от внешнего источника тактирования на 12 МГц. Скрин программы с настройками fuse перемычек в PonyProg:

После прошивки должен загореться светодиод подключенный к 23 ноге микроконтроллера. Это будет верный признак того, что программатор прошит удачно и готов к работе.

Установка драйвера

Установка велась на машину с системой Windows 7 и никаких проблем не возникло. При первом подключении к компьютеру выйдет сообщение об обнаружении нового устройства, с предложением установки драйвера. Выбираем установку из указанного места:

Выбираем папку где лежат дрова и жмем Далее

Мигом появится окно с предупреждением о том, что устанавливаемый драйвер не имеет цифровой подписи у мелкомягких:

Забиваем на предупреждение и продолжаем установку, после небольшой паузы появится окно, сообщающее об успешном окончании операции установки драйвера

Все, теперь программатор готов к работе.

Khazama AVR Programmer

Для работы c программатором я выбрал прошивальщик Khazama AVR Programmer. Замечательная программка, с минималистичным интерфейсом.

Она работает со всеми ходовыми микроконтроллерами AVR, позволяет прошивать flash и eeprom, смотреть содержимое памяти, стирать чип, а также менять конфигурацию фьюз-битов. В общем, вполне стандартный набор. Настройка фьюзов осуществляется выбором источника тактирования из выпадающего списка, таким образом, вероятность залочить кристалл по ошибке резко снижается. Фьюзы можно менять и расстановкой галок в нижнем поле, при этом нельзя расставить галки на несуществующую конфигурацию, и это тоже большой плюс в плане безопасности.

Запись фьюзов в память мк, как можно догадаться, осуществляется при нажатии кнопки Write All. Кнопка Save сохраняет текущую конфигурацию, а Load возвращает сохраненную. Правда я так и не смог придумать практического применения этих кнопок. Кнопка Default предназначена для записи стандартной конфигурации фьюзов, такой, с какой микроконтроллеры идут с завода (обычно это 1МГц от внутреннего RC).
В общем, за все время пользования этим программатором, он показал себя с наилучшей стороны в плане стабильности и скорости работы. Он без проблем заработал как на древнем стационарном пк так и на новом ноутбуке.

Khazama AVR Programmer на русском

Программатор Khazama AVR Programmer достаточно популярен среди любителей радиоэлектроники. Однако, среди начинающих пользователей, которые только знакомятся с 8-битными микроконтроллерами AVR, имеются и те, кто слабо владеет английским языком (ведь интерфейс программы доступен только на английском и русскоязычного перевода в сети Интернет не найти, сама программа последний раз была обновлена аж в июле 2011 года и возможности установки сторонних переводов не поддерживает).

Альтернатива Khazama AVR Programmer на русском языке

Самый простой выход — найти альтернативное решение, то есть программатор на русском языке с тем же функционалом. Это такой софт как:

1. AVRDUDE_PROG (можно найти версию с интерфейсом преимущественно на русском языке);

2. PonyProg (свободное ПО, распространяется бесплатно, можно найти русифицированную версию);

3. Atmel Studio (для русификации потребуется установить Visual Studio);

Перевод Khazama AVR Programmer на русский

Если альтернативный софт вас не устраивает по ряду параметров, можно использовать Khazama AVR на английском, но с русскими подсказками по основным меню. А подсказки с переводом мы дадим ниже.

Скачать саму утилиту можно с оф.сайта — http://khazama.com/project/programmer/ (доступны 2 версии — v1.7 и v1.6.2, последняя предполагает поддержку ATMega88 и ATMega8).

Первый пункт меню “File” (Файл) выглядит следующим образом:

Раздел "AVR" — здесь можно найти поддерживаемы серии программируемых микроконтроллеров.

Пункт "Load FLASH file to Buffer" переводится как "Загрузить файл прошивки типа Flash в буфер". Позволяет подготовить прошиваемый файл и загрузить его в оперативную память ПК для быстрого чтения при последующей записи.

Пункт "Load EEPROM file to Buffer" отвечает за аналогичную операцию, но для памяти типа EEPROM.

Пункт "Save FLASH Buffer as…" позволяет сохранить ранее считанные данные памяти Flash в буфер, как отдельный файл на жестком диске (сохранение производится без каких-либо расширений, поэтому, если работаете со специфичным софтом, можно добавить расширение самостоятельно, например, .hex).

Пункт "Save EEPROM Buffer as…" — аналогичная операция, но для данных, считанных с памяти EEPROM.

Второй пункт View (на русск. "Просмотр", "Обзор") имеет следующие вложенные меню.

"View Flash Hex Data" – открывает шестнадцатеричный редактор данных Flash.

"View EEPROM Hex Data" — открывает шестнадцатеричный редактор данных EEPROM.

Третий раздел Command (русск. "Команды") выглядит так.

Fuses and Lock Bits… — "Фьюзы (флаги настроек микроконтроллера) и блокирующие биты".

Открывает окно управления битами настроек и блокировок.

Read Osc Calibrations – считать данные генератора частоты.

Read Chip Signature – считать подпись микросхемы (сверка целостности).

Write Flash Buffer to Chip – записать данные для Flash памяти из буфера в микроконтроллер.

Write EEPROM Buffer to Chip – аналогично для EEPROM памяти.

Read Flash to Buffer – считать данные микроконтроллера в буфер. Текущая прошивка чипа считывается в буфер (операция нужна, например, для создания резервной копии заводской прошивки или предыдущей работоспособной).

Read EEPROM to Buffer – аналогично для EEPROM.

Verify Flash – проверить Flash (верификация).

Verify EEPROM – проверить EEPROM.

Erase Chip – стереть данные микроконтроллера.
Auto Program – автоматическая программа (выполняются сценарии, определенные в пункте ниже).

Читать:
Приложение которое читает текст вслух на русском

Program Options – опции программы (имеется ввиду автопрограмма).

Ну и последний пункт "Help" ("Помощь") предназначен для проверки обновлений программы, уточнения версии ПО и перехода на официальный сайт.

Часть из перечисленных команд для удобства вынесена пиктограммами ниже основного меню, при наведении отображаются выполняемые действия (смотри перевод выше).

Мнения читателей
  • Serg / 06.05.2018 — 04:30

и ни слова под какое железо stc500 у меня не видит

Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:

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

WINAWR KHAZAMA AVR

Что бы не отвечать на вопросы — как собрать и прошить прошивки из моих проектов написана эта статья. В ней я рассмотрю вопрос компиляции и прошивки, а так же софта и используемого оборудования. Для прошивки я пользуюсь программатором 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

WINAVR download

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

WINAVR Скачать

WINAVR Скачать

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

WinAVR 20100110

WinAVR 20100110

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

WinAVR компоненты

WinAVR компоненты

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

KhazamaAVRProgrammer прошивка завершена

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

KhazamaAVRProgrammer чтение Chip Signature

KhazamaAVRProgrammer чтение Chip Signature

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

KhazamaAVRProgrammer работа с фьюзами

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

4a4ik

Здесь я расскажу как запрограммировать микроконтроллер на примере ATmega32 с помощью «Khazama AVR Programmer», «eXtreme Burner- AVR» и «usbasp».

usbasp — это программатор который можно собрать самому, либо купить (на ebay 3$). Драйвера и дополнительная информация на сайте создателя

Khazama AVR Programmer и «eXtreme Burner- AVR» это программы которые заливают прошивку в микроконтроллер, нужно использовать только 1 из них на выбор, ниже я расскажу как с ними работать.

Сперва нужно поставить необходимый драйвер для USBASP, который можно найти по ссылке выше. Далее нужно написать код который будет управлять нашим микроконтроллером, для этого я использую ATMEL STUDIO.

После того как мы скомпилируем наш код, создастся прошивка для МК (.hex файл) которую нужно залить в МК, её работоспособоность можно проверить в самой AVR студии или любой среде моделирования для этого предназначенной , к примеру Proteus.

Далее нужно подключить программатор к МК, для этого необходимы только 6 проводов USBASP (если их 10 то 3, 4, 6 и 8 выводы не используются ).

Ниже представлена схема программатора если вы решите собрать его самостоятельно:

Если купить готовый программатор, то чаще всего он уже с готовым разъёмом, который осталось подключить к микроконтроллеру. Лучше прозвонить кабель который выходит из программатора и найти землю, остальное можно найти с помощью распиновки.

Когда известно какой вывод за что отвечает осталось подключить их к ножкам микроконтроллера, для этого нужно свериться с даташитом и проверить распинову, нам нужны контакты MOSI, SCK, MISO, RESET, GND и VTG (это VCC +5 В питание). К примеру необходимые ножки ATmega8:

Когда всё готово нужно запустить Khazama AVR Programmer и проверить видит ли он МК.
Главное окно:

Сперва нужно выбрать в выпадающем меню в центре наш микроконтроллер. Затем нужно нажать command -> read chip signature:

Если не выдаст никаких ошибок то всё в порядке.

Теперь нужно показать ему наш .hex файл, для этого нужно нажать File -> load flash file to buffer. Выбрать нужный файл и нажать ОК:

Теперь нужно разобраться с fuse битами (про них можно почитать Здесь).
Чтобы зайти в меню fuses нужно нажать Command -> fuse and lock bits (CTRL + A):

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

Галочка значит что бит НЕ выставлен, как по нотации ATMEL, пустой квадратик значит что бит ВЫСТАВЛЕН. «Write all» записать в МК выставленные биты.
Мне не нужно ничего менять, так что я нажимаю cancel и жму «auto programm» для того чтобы запрограммировать МК.

Всё, микроконтроллер получает напряжение от программатора и сразу начинает работать.

Если появляется ошибка «error setting usbasp isp clock» нужно либо перепрошить программатор, либо сменить программу для программатора, но даже с этой ошибкой МК можно прошивать как и раньше, только нельзя прочитать и выставить Fuse биты.

Похожие статьи