Khazama avr programmer

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 у меня не видит

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

4a4ik

26 июля 2013 г.

Как запрограммировать AVR микроконтроллер с помощью usbasp

Здесь я расскажу как запрограммировать микроконтроллер на примере 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 биты.

Khazama avr programmer

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five http://jquery2dotnet.com/ centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

Khazama AVR Programmer – графическая оболочка консольной программы avrdude, разработана арабским программистом, поддерживаемая системами Windows XP/Vista/7. Программа предназначена для прошивки микроконтроллеров фирмы Atmel семейства AT90/ATtiny/ATmega/ATXmega.

Khazama может считывать и записывать программный код, очищать память и программировать FUSE-биты, так же есть функция автоматического программирования и настройка тактовой частоты программирования. Программа поддерживает работу с программатором USBasp.

Читайте также  Мини дрель своими руками

Настройка и прошивка

Для настройки программы заходим в Command -> Program Options

Здесь находятся настройки программы, подавляющее большинство которых настройка Auto program (автоматического программирования), выделенные в списке красным цветом. Используя функцию автоматического программирования, такие действия как считывание, стирания, запись и проверка выполняются по очереди автоматически, что очень удобно. Достаточно нажать, кнопку Auto program и все пункты отмечены галочками в настройках программы будут выполнены.

1. Располагать окно программы поверх остальных окон
2. Загружать в буфер программы последний закрытый файл
3. Считать FLASH память микроконтроллера в буфер программы
4. Считать EEPROM память микроконтроллера в буфер программы
5. Очистить память микроконтроллера
6. Записать прошивку в FLASH память микроконтроллера
7. Записать прошивку в EEPROM память микроконтроллера
8. Сверить байты FLASH память микроконтроллера после записи
9. Сверить байты EEPROM память микроконтроллера после записи
10. Записать Fuse bits в микроконтроллер
11. Проверять правильность выбора модели микроконтроллера
12. Настройка тактовой частоты программирования

Выбираем микроконтроллер через выпадающий список

или через меню File -> AVR -> …

Загружаем файл прошивки в программу File -> Load FLASH file to Buffer, указываем файл и нажимаем Открыть

Прошивка загружена в буфер. Если микроконтроллер был ранее прошит, стираем его Command -> Erase Chip

Выбираем Да

Теперь можно записать программу в микроконтроллер Command -> Write Flesh Buffer to Chip

После появится окно, подтверждает удачную запись программы, нажимаем Ok

R13-PROJECT

Электронное познавательное развлекательное

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

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

Скачать файл печатной платы в SprintLayout можно по этой ссылке

Ну вроде все, если возникнут вопросы, постараюсь ответить.

Самостоятельная сборка программатора AVRProg

На макетной плате metaboard очень удобно собрать ISP программатор для AVR микроконтроллеров AVRProg. Схема очень простая, исходный код программатора открыт и доступен для двух вариантов программатора — есть версия USBasp и версия AVR-Doper. Схема программатора собирается прямо на макетном поле платы metaboard. Прошивку (версию программатора) можно легко поменять через USB бутлоадер, прошитый в плате metaboard.

Рис.1 — AVRProg- Metaboard

[Возможности программатора AVRProg]

1. На программаторе имеются два сокета-кроватки для установки программируемых микроконтроллеров AVR в DIP-корпусах на 8, 20 и 28 ножек, включая популярные ATTiny25/45/85, ATTiny2313, ATMega8, ATMega48/88/168/328 (8-ножечные AVR вставляются в 20-пиновый сокет).

2. Для программируемых микроконтроллеров генерируется тактовая частота 1 МГц (для тех микроконтроллеров, фьюзы которых установлены в расчете на работу с внешней тактовой частотой или с внешним кварцевым резонатором).

3. Схема программатора очень проста и удобна для самостоятельной сборки в домашних условиях.

4. Для схемы этого программатора (AVRProg на макетной плате metaboard) портировано две версии firmware — USBasp и AVR-Doper. Ожидается в будущем также портирование AVRminiProg. Ссылки на закачку firmware см. в [1, 2, 3].

5. Отдельный 10-пиновый коннектор ISP с цоколевкой, совместимой со стандартной 10 pin ISP (стандартные цоколевки разъемов ISP можно посмотреть в [4]), предназначен для внутрисхемного программирования микроконтроллеров AVR (а также как порт отладочного вывода в варианте AVR-Doper, см. далее). На этот коннектор выведено напряжение питания 5 вольт для программируемой платы, которое можно подключить установкой перемычки JP5 (см. принципиальную схему программатора), тактовая частота 1 МГц и сигналы приема-передачи отладочного UART.

[Принципиальная схема программатора AVRProg]

Рис. 2 — Принципиальная схема программатора AVRProg

Чтобы максимально упростить схему (и, соответственно, облегчить самостоятельную сборку программатора), из неё исключены преобразователи уровней, которые в общем случае обычно устанавливают для согласования логических уровней программатора и программируемой по ISP схемы, так как напряжение питания схемы программатора может отличаться от напряжения питания программируемого устройства (см. вариант подключения таких преобразователей уровня в [6]). Это означает, что программатор AVRProg и программируемое через ISP коннектор SV1 устройство должны по возможности питаться от приблизительно одного и того же уровня напряжения (около 5 вольт). В схему добавлены резисторы R1..R7, последовательно включенные в цепь цифровых сигналов, которые несколько смягчают (но не устраняют полностью) проблему с разностью логических уровней. Эти резисторы ограничивают максимальный ток и предотвращают повреждение программируемого устройства и программатора, которые питаются от разных напряжений. Благодаря этим резисторам и наличию в AVR защитных диодов производится некоторое преобразование уровня сигналов 1MHZ, RESET, MOSI, MISO, SCK, RXD, TXD, так что должно быть возможным программирование по ISP устройств, запитанных напряжением 3.3 вольта.

Кроме того, имеется возможность дополнительной подачи питания +5 вольт на программируемое устройство. Подача питания активируется установкой перемычки JP5. Имейте в виду, что в схеме программатора AVRProg отсутствует защитное ограничение тока, подаваемого на программируемое устройство. Конечно, за исключением того случая, когда программатор сам питается от USB, и контроллер USB компьютера имеет такую защиту. Никогда не устанавливайте перемычку JP5, если программируемое по ISP устройство питается от собственного источника напряжения и если напряжение питания программируемого устройства (подключенного через ISP SV1) отличается от +5V!

В схеме программатора использовался 10 pin ISP «старого стиля» (кроме такой ISP цоколевки имеются также и более удобные 6 pin ISP коннекторы), так как на его ножки выведены дополнительные сигналы (которые в оригинальной 10 pin ISP цоколевке подключены на GND). Это три дополнительные сигнала, которые Вы можете использовать для своих нужд в программируемом устройстве, если необходимо:

Читайте также  Простой прибор для проверки тиристоров и симисторов

X1MHZ — тактовая частота 1 МГц. Может использоваться для оживления «брикнутых» чипов, которые рассчитаны на работу с внутренним RC-генератором, но у которых по ошибке неправильно установлены фьюзы на использование внешнего кварца или тактового генератора. Без подачи внешней тактовой частоты или подключения кварца запрограммировать такие AVR невозможно, тут как раз и может пригодиться внешний тактовый сигнал 1 МГц.

XRXD — вход последовательного порта, который может принимать вывод отладочных данных от программируемого устройства. Такая возможность поддерживается в версии firmware AVR-Doper. Все, что передает через UART отлаживаемое устройство (аппаратный UART есть почти в любом микроконтроллере AVR), может быть отображено в окне терминала, подключенного на виртуальный USB COM-порт AVR-Doper. Эта возможность упрощает написание и отладку программного обеспечения в программируемом по ISP устройстве на микроконтроллере AVR. Чтобы задействовать такую возможность, нужно аппаратный выход TXD порта UART программируемого AVR подключить к сигналу XRXD (выв. 10 ISP-коннектора SV1), а также использовать в отлаживаемом firmware макросы отладочного вывода (в библиотеках WinAVR это макрос DBG, можно также использовать printf, перенаправленный на UART).

XTXD — выход последовательного порта, который может передавать произвольные данные пользователя к программируемому устройству. Такая возможность поддерживается в версии firmware AVR-Doper. Все, что печатается в окне терминала (подключенного на виртуальный USB COM-порт AVR-Doper), будет передано на вход UART отлаживаемого устройства (аппаратный UART есть почти в любом микроконтроллере AVR). Это используется реже, чем отладочный вывод по XRXD (через макрос DBG или оператор printf), однако такая возможность также упрощает написание и отладку программного обеспечения в программируемом по ISP устройстве. Например, можно подавать в отлаживаемое устройство текстовые команды прямо из окна терминала. Чтобы задействовать такую возможность, нужно аппаратный вход RXD порта UART программируемого AVR подключить к сигналу XTXD (выв. 8 ISP-коннектора SV1).

Напряжение питания на программируемые чипы AVR, устанавливаемые в сокеты-кроватки IC1 и IC2, подается от двух ножек микроконтроллера платы metaboard PC3 и PC4 (выводы 4 и 5 коннектора JP3). Порты PC3 и PC4 запрограммированы, как выходы, и их выходного тока достаточно для прямого питания установленного в сокет программируемого микроконтроллера (специально используются два порта, подключенные параллельно — для увеличения нагрузочной способности выхода). Если на PC3 и PC4 выдана лог. 1, то питание на программируемый микроконтроллер подано. Это состояние также индицирует свечение красного светодиода, подключенного к выводу 1 коннектора JP3 (управляется программно ножкой порта PC0). Если на PC3 и PC4 выдан лог. 0, то программируемый микроконтроллер обесточен (при этом светодиод погашен), и его можно свободно вынимать из сокета, не опасаясь какого-нибудь электрического повреждения.

[Сборка программатора]

Чтобы можно было установить коннектор ISP SV1, нужно выпаять коннектор питания JP4 платы metaboard (если он был установлен). Никаких других особенностей сборка не имеет, просто соедините все провода, руководствуясь принципиальной схемой — примерно так, как показано на фотографии. Разноцветные провода применены просто для наглядности, чтобы было проще разобраться в разводке разных сигналов. Правильно собранная схема начинает работать сразу и не требует никакой отладки.

Многие компоненты на схеме AVRProg не обязательны для установки. Например, если Вам не нужны сокеты-кроватки и нужен только ISP, то сокеты IC1 и IC2 можете не устанавливать и не распаивать. Или, например, если Вам не нужна возможность ISP-программирования, то можете не устанавливать ISP-коннектор SV1, при этом также не нужны резисторы R1..R7 и перемычка JP5.

Далее описаны отличия в работе двух вариантов firmware программатора — USBasp и AVR-Doper. Оба варианта легко загружаются в память чипа с помощью USB-бутлоадера и программы Khazama AVR Programmer (см. [5]), поэтому у Вас всегда есть возможность легко перепрошить любую нужную версию программатора. Для активизации бутлоадера должна быть установлена перемычка JP6 Upload, и при подключенной по USB к компьютеру плате metaboard нужно нажать кнопку S1 Reset (перемычка JP6 и кнопка S1 установлены изначально на плате metaboard). После этой нехитрой процедуры на компьютере появится USB-устройство USBasp (если нет драйвера, то система Windows запросит его. Драйвер возьмите из пакета по ссылке [5]). USB-устройство бутлоадера USBasp (USB бутлоадер эмулирует программатор USBasp) может принимать команды от оболочки программатора Khazama AVR Programmer. С помощью программы Khazama AVR Programmer в память чипа metaboard можно записать любой из двух вариантов firmware программатора — USBasp и AVR-Doper (описание работы с этим firmware см. далее). Варианты готовых прошивок firmware (и USBasp, и AVR-Doper) доступны по ссылке [3].

[USBasp]

Скачайте по ссылке [3] пакет архива и возьмите из него бинарник (HEX-файл) с соответствующим именем файла. В имени файла указан тип прошивки (USBasp или AVR-Doper), тип используемого в metaboard микроконтроллера (одинаково подходят как ATmega168PA, так и ATmega328P) и тактовая частота кварца (обычно используется кварц на 16 МГц, но возможны также частоты 12, 15, 16.5, 20 МГц). Прошейте бинарник в память чипа с помощью USB-бутлоадера платы metaboard и программы Khazama AVR Programmer (выберите в ней чип платы metaboard и). Не обращайте внимания на предупреждения о невозможности поменять тактовую частоту ISP — USB бутлоадер максимально упрощен и не поддерживает обработку команды установки частоты ISP (для бутлоадера это не нужно).

После того, как firmware USBasp записано в память чипа платы metaboard, переподключите по USB плату metaboard с собранным программатором, и программатор USBasp готов к работе. Для работы с программатором AVRProg в варианте USBasp может использоваться та же самая программа Khazama AVR Programmer (версии не ниже 1.7.0) или утилита командной строки avrdude.

Вариант USBasp мне понравился меньше, чем вариант AVR-Doper, так как в этом firmware есть недоработки, связанные с отсутствием поддержки смены тактовой частоты ISP (оболочка Khazama AVR Programmer выдает сообщения об ошибке, но программатор все же работает). Кроме того, для некоторых чипов не поддерживаются фьюзы (fuses), как, например, для чипа ATmega328P. Несколько лучше обстоит дело с avrdude, но работа с этой утилитой не очень удобна, как как это все-таки утилита командной строки, а не GUI. Однако для пакетной работы (когда нужно автоматизировать потоковое программирование большого количества устройств) утилита avrdude может оказаться самым лучшим выбором. Для работы с avrdude выбирайте протокол usbasp.

[AVR-Doper]

Прошивается firmware варианта AVR-Doper точно так же, как описан процесс для USBasp, просто из архива [3] нужно взять другой файл прошивки (в имени которого упоминается AVR-Doper). Этот вариант, на мой взгляд, заслуживает большего уважения, так как представляет поддержку протокола STK500 компании Atmel (этот протокол стал стандартом de-facto, благодаря популярности платформы AVR и инструментальных средств для него). Протокол STK500 поддерживается AVR Studio, поэтому вариант AVR-Doper будет отлично работать совместно с оболочкой программатора AVRprog среды программирования AVR Studio. Это очень удобно для пользователей AVR Studio и открывает широкие возможности для программирования чипа (нет проблем с поддержкой фьюзов на некоторых AVR, как в случае с Khazama + USBasp). Для работы с avrdude выбирайте протокол STK500.

При работе в среде AVR Studio запустите утилиту программатора AVRprog и в начальном диалоге выберите вариант программатора STK500. Внимание: утилита AVRprog предложит перезалить firmware программатора, откажитесь от этого, нажав кнопку ‘Нет’. В остальном работа с утилитой программатора не имеет особенностей и не заслуживает отдельного описания. См. также обзор работы с AVRprog AVRStudio по ссылке [6].

[Как устанавливать программируемые микросхемы в сокеты]

Программирование DIP8 Программирование DIP20 Программирование DIP28