No Image

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

СОДЕРЖАНИЕ
2 345 просмотров
12 декабря 2019

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 биты.

Небольшая программа, созданная с целью быстрой прошивки микроконтроллеров Atmel AVR.

Приложение Khazama AVR Programmer имеет простой и удобный минималистичный оконный интерфейс. Данный программатор является графической оболочкой программы avrdude и отлично подходит для начинающих разработчиков. В настоящее время Khazama AVR Programmer поддерживает около восьмидесяти моделей микроконтроллеров AVR, относящихся к семействам ATmega, ATxmega, ATtiny и AT90. Программатор имеет минимальное количество функций, однако выгодно отличается скоростью работы и стабильностью. Программное обеспечение позволяет: загружать в буфер сохраненные hex-файлы прошивки для EEPROM и FLASH памяти, записывать hex-файлы в EEPROM и FLASH память микроконтроллера, смотреть содержимое EEPROM и FLASH памяти чипа, очищать память контроллера, менять конфигурацию FUSE и LOCK битов, проводить верификацию EEPROM и FLASH памяти. Все операции можно осуществлять либо с помощью меню, либо с помощью кнопок на панели инструментов, внешний вид которых срисован с аналогичных кнопок в ПО PonyProg.

Среди прочих функций программы Khazama AVR Programmer стоит отметить: наличие контекстных подсказок и клавиш быстрого доступа, возможность установки данного приложения поверх всех остальных окон, наличие просмотрщика EEPROM и FLASH hex-файлов (без редактирования), визуализация и расшифровка значений битов конфигурации микроконтроллеров. Настраиваемая кнопка «AutoProgram» запускает на исполнение набор операций, заданных в окне «Program Options» (по умолчанию установлена очистка чипа и запись во FLASH память). Программа Khazama AVR Programmer работает с программатором USBasp, поддерживается программирование по TPI. Тактовая частота программирования по интерфейсу ISP задается в пределах от 500 Гц до 1,5 МГц.

Процедура программирования FUSE битов не требует разбирательств с шестнадцатиричными значениями и заключается в выборе необходимых параметров из выпадающих списков, что снижает вероятность залочить микроконтроллеры по ошибке. Также FUSE биты можно изменять, устанавливая галочки в нижнем поле. При этом поставить галки на несуществующие конфигурации нельзя, что также является плюсом в плане безопасности. В окне программирования FUSE битов присутствуют функции: записи фьюзов в память контроллера, сохранения текущей конфигурации в буфер, вызова сохраненной конфигурации из буфера, восстановления стандартной конфигурации FUSE битов, то есть той, с которой микроконтроллер поступил с завода. Приложение Khazama AVR Programmer работает с файлами дампов памяти *.hex.

Читайте также:  Журнал регистрации результатов механических испытаний допускных

Приложение было написано арабским программистом по имени Behzad Khazama (Иран, провинция Хорасан-Резави, город Себзевар). Последняя версия данного программатора вышла в середине 2011 года.

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

Софт Khazama AVR Programmer поддерживается операционными системами семейства Microsoft Windows – XP, Vista, 7, 8 (32- и 64-разрядными).

Распространение программы: бесплатная

Для прошивки своих поделок на AVR я использую программатор USBasp, купленный сто лет назад за 100р на AliExpress. Пользоваться очень удобно, никаких тебе древних COM или LTP портов, современный USB!
Вот так выглядит это чудо китайской промышленности!

Ну а теперь по подробнее)

Автором данного программатора является немец Thomas Fichl, страничка его разработки со схемами, файлами печатных плат и драйверами.
Работает этот программатор через ISP.

Распиновка контактов на самом программаторе

Поэтому я всегда стараюсь выводить этот разъем если сам развожу плату. Очень удобно, прошивать и отлаживать можно на ходу. Прошил, не заработало, подправил код, прошил еще раз. Не нужно снимать контроллер вставлять в программатор….
В работе и железе выглядит примерно так

Ну а теперь рассмотрим с каким же софтом работает данная поделка!
Скачиваем драйвера с офф сайта, страничка для загрузки.
Устанавливаем. Внимание! Компьютер будет ругаться на то что драйвер без цифровой подписи. В Windows 7 просто подтверждаем что хотим продолжить,

а для Windows 8 и новее используем инструкцию.

Все теперь программатор готов к работе.
Я использую бесплатный прошивальщик Khazama AVR Programmer. Отличная прога с минималистичным дизайном!
Выбираем чип и поехали!

Тут можно поиграться с FUSES битами, все с описаниями за что отвечают!

Ну вот пожалуй и все!

Не знаю как у всех, но именно на мой экземпляр USBASP v2.0, Khazama ругается при перепрошивке Error Setting USBASP ISP Clock…

Игра с выставлением разной частоты не дает результатов.

После недолгих поисков в интернете наткнулся таки на такую же проблему у других людей.

Для исправления этого досадного косяка, нужно перепрошить программатор)) Для такого трюка нам понадобится еще один USBasp!

Вот так нужно все соеденить. Теперь заливаем прошивку

Выставляем Fuse биты и прошиваем!

После этого доставучие ошибки пропадут!

Update 2016

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

Читайте также:  Где стоит индикатор пламени на планар

error: usbasp_transmit: libusb0-dll:err [contorl_msg]

Решение было найдено не незамедлительно, нужно понизить частоту программирования. Идем в Command — > Program Options — > ISP CLK Speed и выставляем 187.5 KHZ (или AUTO).

После этого все снова работает!

Update 2017

Вставляем новую не разу не прошитую Atmega8 и видим такое!

100500 раз проверяем схему и программатор, все в норме! И у же почти сдавшись, находим косяк! При первом включении Atmega8 работает от внутреннего генератора на частоте 1 Mhz, она просто не успевает определиться в программе. Решение простое, нужно уменьшить частоту чтения в Khazama.

После этого прошиваем контроллер на 8 Mhz и выставляем AUTO.

И решение еще проще))) Нужно замкнуть контакты на программаторе JP3, для понижения частоты, а после выставления фьюзов на более высокую частоту работы atmega, разомкнуть.

Программатор USBasp. : 7 комментариев

Спасибо за статью.Такой же случай.Только не было 2го usbasp.Сначала прошил AVR910 в usbasp,этой
прошивкой(usbasp.atmega8.2011-05-28),а потом им исправил прошивку в usbasp по вашей инструкции.

Рад что вам помогло!

А у меня на проце atmega 48 20au. работал, после перепрошивки никак не определяется. не пойму как оживить. Можете подсказать?

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

Автору от души огромное спасибо, благодаря тебе вернул к жизни 3 штуки attiny2313, у которых из-за незнания выставил (при помощи фьюзов) слишком маленькую тактовую частоту. Программатор из-за старой прошивки работал только со старой казамой (1.6.2), в которой нельзя выбрать частоту ISP. Теперь обновил прошивку и новая версия (1.7) работает как надо. Жму руку, братишка.

Добрый день!
Имеются два программатора USPasp.
С родной прошивкой ведут себя так

Если прошить последнюю, то в AVRdude можно сделать только одну операцию. То есть, например, прочитали микроконтроллер — и всё, все последующие попытки что-либо сделать выдают вот такую ошибку

Если программатор вынуть/вставить, то опять можно выполнить одну операцию.
Есть у кого-нибудь мысли, что это и как с этим бороться?

Обновил прошивку прогером dapa, не надо народ пугать вторым usbasp, всё нормально любым путём. Интересуют простые и дешёвые hvsp & hvpp, бывают ли?

Комментировать
2 345 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector