Главная » Статьи » Инструменты

Программатор USBASP
  Решил заменить свою рабочую лошадку STK200+PonyProg, на нечто более современное, легко собираемое и обязательно поддерживающее подключение по USB. Выбор пал на хорошо зарекомендовавший себя программатор USBASP, мозгом которого служит микроконтроллер Atmega8 (так же есть варианты прошивки под atmega88 и atmega48) . Минимальная обвязка микроконтроллера позволяет собрать достаточно миниатюрный программатор, который всегда можно взять с собой, как флэшку. Еще одним плюсом программатора является то, что благодаря большой популярности он приобрел поддержку во многих средствах разработки, в том числе и в Bascom-AVR начиная с версии 1.11.9.6. И поэтому консольность программы, с которой он работал первоначально, перестала быть отпугивающим моментом для начинающих.
 
  Схема программатора USBASP под микроконтроллер Atmega8 в корпусе TQFP32 приведена ниже (обратите внимание, что распиновка микроконтроллера отличается от распиновки в корпусе DIP):


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

 

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




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




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

Прошивать, как я писал выше, можно с разъема программирования, соединив выводы Reset микроконтроллера (29 нога) и разъема. Прошивка существует для моделей Atmega48, Atmega8 и Atmega88. Желательно использовать один из двух последних камней, так как поддержка версии под Atmega48 прекращена и последняя версия прошивки датируется 2009 годом. А версии под 8-й и 88-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку под свой тип контроллера можно скачать ниже:


Для работы устройства необходимо настроить фьюзы на внешний кварц 12МГц. В PonyProg настройка фьюзов будет выглядеть следующим образом:

  

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

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

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



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



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



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


 
  Все, теперь программатор готов к работе. Осталось выбрать программу, посредством которой будем работать с программатором.



USBASP и Bascom

  Как писал ранее, полную поддержку USBASP в Bascom-AVR сделали начиная с версии 1.11.9.6. Попалась тут мне страничка, иллюстрирующая, как можно подружить USBASP с более ранней версией компилятора, но тогда придется ставить avrdude.
  Настройка программатора для совместной работы с Bascom-AVR происходит в пункте меню Options-Programmer, в списке программаторов выбираем USBASP




Строка конфигурации Clock Frequency служит для выбора частоты работы программатора. Помнишь про джампер который необходимо замыкать когда нужно прошить микроконтроллер с частотой тактирования меньше 1,5 МГц? Так вот, в новой версии прошивки программатора реализавана возможность программно изменять частоту работы, эту фишку и использует Bascom. Можно выбрать частоту работы в диапазоне от 500Гц до 1,5МГц, по рекомендациям частота должна быть вчетверо меньше частоты работы прошиваемого микроконтроллера. Например, если требуется прошить контроллер с тактовой частотой 1МГц, нужно ставить частоту работы не более 250кГц или, для надежной работы, еще меньше. Я оставил в этом пункте автоопределение частоты.

Khazama AVR Programmer

Еще одна небольшая программа для работы с программатором USBASP. Мне она понравилась минимальным интерфейсом и кнопочками, срисованными с PonyProg =)
 



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




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

  Ниже можно скачать архив с прошивками и печатной платой, а так же программу Khazama:


    






 Раз народ активно интересуется данным программатором и спрашивает меня о возможности изготовления, решил изготовить печатные платы на производстве и сделать инструмент, которым приятно пользоваться. Пока в наличии имеются готовые печатные платы для этого программатора или можете приобрести уже готовый к работе программатор. 
Предложение ограничено, спешите ;)
 
Все программаторы успешно обрели своих владельцев, а тем временем обдумываю о необходимость заново сделать заказ на производство печатных плат. Надо ли?


UPD 26.01.13

Если появятся желающие приобрести программатор USBASP на заводской плате, записывайтесь в очередь;) и делайте предзаказ! Условия на форуме http://avrproject.ru/forum/11-69-1#1307

 
UPD 5.03.13

Программатор снова стал доступен для покупки! Условия и цена приобретения выложены здесь http://avrproject.ru/index/usbasp/0-41


 







Категория: Инструменты | Добавлено: 11.07.2011
Просмотров: 210208 | Комментарии: 310 | Теги: Ponyprog, программатор, USBasp | Рейтинг: 4.6/28
Всего комментариев: 310« 1 2 3 4 5 ... 10 11 »
250 max   (11.02.2013 17:59) [Материал]
>kolob55
>P.S. Проводя эксперемент далее ,заметил такую вещь при снятии перемычки ,на любое >действие -чтение ,прошивка,стирание выдает ошибку. В чем может быть косяк,с >перемычкой ,как и писал все эти действия выполняются на 5+. Неужели длинная связь с >компьютером ,вносит эту бяку. Нет разьема на плату ,не могу проверить.?? Кто то >практиковал прошивку без перемычки?

Такое поведение бывает, если читать, стирать, прошивать МК с завода, то есть есть если фьюзы настроены на работу от внутреннего RC-генератора 1МГц. Если выставить фьюзы от внешнего кварцевого генератора, то будет все нормально и скорость в разы увеличится. Проверенно не на одном МК.

249 implex   (11.02.2013 17:27) [Материал]
Я раньше всегда писал с перемычкой, пока не дошло дело до ATMega32 - ооочень долго. Попробовал без неё - верификация ОК и в разы быстрее. Теперь всегда без нее шью. Программатор подсоединен через USB удлинитель метра 1.5 - 2. От программатора провода 10 см.

+1   Спам
248 kolob55   (10.02.2013 11:39) [Материал]
я думал про термоусадку ,но честно не знал ,что прозрачная существует? Теперь проблем нет ,и другие все засуну в термоусадку.Если ,что и разрезать не жалко! Про длинные провода связи программатора с компьютером специально написал ,тоесть в моем случае длина не сыграла отрицательной роли при записи!
для коллекции и статистики ....

http://s018.radikal.ru/i507/1302/7f/bb6dada230b5.jpg

P.S. Проводя эксперемент далее ,заметил такую вещь при снятии перемычки ,на любое действие -чтение ,прошивка,стирание выдает ошибку. В чем может быть косяк,с перемычкой ,как и писал все эти действия выполняются на 5+. Неужели длинная связь с компьютером ,вносит эту бяку. Нет разьема на плату ,не могу проверить.?? Кто то практиковал прошивку без перемычки?

247 implex   (10.02.2013 04:21) [Материал]
Я в белую термоусадку спрятал. Светодиоды отлично видно.

246 exersizze   (10.02.2013 01:34) [Материал]
Лучше все таки в термоусадку. Мало ли, может нужно будет проапгрейдится. Вот zloynik делился как он сделал   http://i032.radikal.ru/1202/67/503fdbf9e3b9.jpg
Хотя если не жалко можно и залить аккуратно эпоксидкой, должно хорошо получится, она прозрачная - светодиоды будет видно.

245 kolob55   (10.02.2013 00:03) [Материал]
Спасибо автору за прогер флешку! В колекции прогеров появился маленький юсбасп программатор - флешка. Думал стк500 маленький. Ну а этот еще меньше,совсем малыш!
С нуля собрал за 2- а часа . Пока разъема на плату мини юсб нет сделал на 4х проводах ,длинной больше метра. Камп старенький ,операционка W/XP ,драйвера под него уже стоят . Определился системой сразу. Вначале пользовал юсбасп на диповском контроллере,после еще один собрал юсбасп и сделал ему апгрейд под стк 500 . Опробовал флеш-юсбасп на разных оболочках . На всех работает на 5+!!! И скорость прошивки хорошая. Вопрос такого плана к автору девайса ,достаточно залить его пластиком или лучше в термоусадку закатать ,тогда светодиодов не видно будет ,либо корпус подыскивать прозрачный,кто -как оформил программатор?

244 bdw5   (08.02.2013 20:25) [Материал]
стабилитрон 3.6в. кварц новый

243 Valera18   (08.02.2013 19:46) [Материал]
Для bdw5

Каким напряжением питаете 5V или через стабилитрон 3,3V? Может при программирование скачет напряжение.
А кварц - НОВЫЙ? Может в нём проблема.
Кабель не может мешать, постоянно использую 1 метровый удлинитель, проблем не было.

242 bdw5   (08.02.2013 19:35) [Материал]
увы-укоротил .оставил 5см. всё тоже самое

241 amv2000   (08.02.2013 13:48) [Материал]
Да зачем же ждать то? Попробуйте без кабеля, если работает дело в нём, если нет ищем далее.

240 exersizze   (08.02.2013 07:09) [Материал]
Да причин может быть уйму: от помех по питанию, наводок на кабель и шлейф. Надо все проверять самому.

239 bdw5   (07.02.2013 22:04) [Материал]
ничего не мешает.просто так сделал.был кабель с usb в наличии. а вы в немогли ответить на вопрос- а то теперь опять ответ ждать

238 exersizze   (06.02.2013 18:56) [Материал]
А что мешает попробовать без кабеля?:))

237 bdw5   (06.02.2013 18:52) [Материал]
у меня в usb вставляется разъем с проводом в 1 метр, а программатор на столе . может я зря так сделал?

236 exersizze   (03.02.2013 22:21) [Материал]
Я так понял что ошибку выдает после 21 секунды с начала момента программирования? Может синхронизация теряется, шлейф длинный?

235 bdw5   (03.02.2013 17:48) [Материал]
парни что может быть?? собрал всё класс пошло - комп определил. прошиваю контроллёр, так почти в самом конце прошивки ошибку выдаёт? J3-замкнут напостоянку. и в казаме тоже самое. http://photo.qip.ru/users/bdw5.photofile/151196446/176762709/

234 amv2000   (27.01.2013 12:30) [Материал]
А чего там описывать всё достаточно понятно, да и написано уже не мало к примеру здесь в конце статьи http://chipenable.ru/index.php/projects-avr/item/71-avr-usb-programmator-usbasp.html

233 bdw5   (26.01.2013 22:22) [Материал]
парни. может найдётся кто- нибудь толковый,и напишет пошаговую инструкцию программирования в Khazama AVR Programmer .именно просто-- что нажимаем ,а что не трогаем . и талантливо -шаг за шагом. я когдато такое про понни прог прочитал-сразу стал контроллёрами пользоваться.;)

232 exersizze   (26.01.2013 14:06) [Материал]
Это наверно для тактирвания микроконтроллера во время прошивки? Для программирования  эти выводы не нужны, так как микроконтроллер сам может тактироваться либо от внутреннего RC (по умолчанию) либо от внешнего подключенного кварца.

231 bdw5   (26.01.2013 13:17) [Материал]
добрый день. подскажите не профи. я пользовался понипрог и COM программатором. решил собрать ваш- но у меня на выходе были также выходы xtal1 и xtal2 а у вас их нет -а как а почему??:)
благодарю...

230 Valera18   (10.01.2013 13:47) [Материал]
Для Buzum

Всё-же, диоды-стабилитроны лучше использовать на напряжение 3,6V (BZX55C3V6), если использовать 3,3V могут быть проблемы с работой программатора.

229 exersizze   (10.01.2013 00:20) [Материал]
Так на схеме же все это добро есть. Вот
atmega8 (пойдут atmega88 или atmega48)
2 резистора по 1 кОм
2 резистора по 68 Ом
1 резистор 2,2 кОм
1 резистор 10 кОм
2 керамических конденсатора 22пФ
3 таких же конденсатора на 0,1 uF
2 стабилитрона на 3.3 или на 3,6 вольт
кварцевый резонатор 12 МГц - 1 штука
и два светодиода на свой вкус и цвет
вся рассыпуха в корпусах 0805

этого программатора у меня уже давно нет, но вот ссылки на посты товарищей которые собрали юсбасп и поделились фотками
http://avrproject.ru/publ/3-5-0-35#ent644
http://avrproject.ru/publ/3-5-0-35#ent720

228 Buzum   (09.01.2013 21:06) [Материал]
Добрый вечер. Напишите пожалуйста список необходимых деталей для сборки программатора(Именно интересует какие там номиналы конденсаторов.). И можно ли фото обратной стороны.

227 Valera18   (09.01.2013 14:36) [Материал]
Для skopik

Попробуй в Proteus.

226 skopik   (09.01.2013 14:01) [Материал]
а если сконфигировать ножку по команде??? так можно или все конфиги все ровно будут в начале

225 Valera18   (07.01.2013 18:29) [Материал]
Для skopik

Ну тогда, нужно искать "команду" для сброса Atmega, может есть "специальная команда", но кроме Watchdog, я не встречал.

224 skopik   (07.01.2013 17:10) [Материал]
нехочет, при конфиге ножки как виход, мк сбрасивает ее, те садит на 0, тем самим збрасивает себя, и так безконечно

223 Valera18   (06.01.2013 14:50) [Материал]
Для skopik

Попробуй, поэкспериментируй. Не знаю, будет ли работать:
Любую ножку Atmega8 (например: PORTB.0) подключи к порту сброса (PC6, Reset), и подтяни резистором на 10 кОм к (+).
Порт PORTB.0 = 1, а для сброса Atmega8 порт будет PORTB.0 = 0, должен будет произойти полный сброс Atmega8.
Может у кого есть ещё идеи.

222 skopik   (06.01.2013 12:01) [Материал]
сторожевой не подходит, збрасивать надо через UART, может есть какаято команда

221 exersizze   (06.01.2013 02:37) [Материал]
Для сброса можно заюзать сторожевого пса (watchdog) http://avrhelp.mcselec.com/index.html?config_watchdog.htm

1-30 31-60 61-90 91-120 121-150 ... 271-300 301-310
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






авторизация
Логин:
Пароль: