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

Программатор 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
Просмотров: 215885 | Комментарии: 310 | Теги: PonyProg, Программатор, USBasp | Рейтинг: 4.6/28
Всего комментариев: 310« 1 2 ... 4 5 6 7 8 ... 10 11 »
160 Valera18   (12.07.2012 13:07) [Материал]
Можете сказать подробнее зачем вообще нужно ставить диоды-стабилитроны, если всё и без них работает?

159 Valera18   (10.07.2012 18:09) [Материал]
Всё заработало!, я удалил "диоды стабилитроны" с сигналов, и питание теперь можно выставлять 3,3V или 5V.

158 exersizze   (10.07.2012 14:52) [Материал]
У меня тоже напрямую с USB 5 вольт на микросхему и все нормально работает, у первой версии вообще небыло стабилизитора 3,3V и проблем невозникало. У КМОП при пяти вольтовом питании все что ниже 1,6 - логический 0, все что выше 3,3 - логическая 1. Должно работать с этими стабилитронами. Как вариант проверь на другом компьютере, или попробуй всетаки со стабилитронами на 3,6 вольт.

157 Valera18   (10.07.2012 14:26) [Материал]
На микросхему питание поступает.

Раньше "по данной статье" собрал программатор, питание сделал через стабилизатор (LM1117), поэтому питание Atmega8 было всегда 3,3V. Всё отлично работает.

Сейчас по той-же "статье" сделал программатор, но добавил возможность менять напряжение 3,3V или 5V (с помощью перемычки, то-есть в обход стабилизатора). Моя плата такая-же, как и ваша вторая версия программатора, только немного уменьшил плату.
Когда перемычка в одном положение питание с USB идет через стабилизатор на Atmega8, а в другом положении напряжение идёт напрямую с USB на Atmega8. У вас на второй версии так-же.
В том и проблема всё так-же, но на 5V пишет "Неопознанное устройство".

А может быть всё из-за "диодов стабилизаторов"?
Диоды понижают "5 вольтовый" сигнал, а микросхема работает на 5V, и поэтому не понимает сигнал.
Но если я поставлю питание микросхемы 3,3V, и сигналы того-же уровня, то всё работает отлично.

Как-же ваша вторая версия программатора заработала, не пойму?

Будет ли работать схема с питанием 3,3V и 5V, если я уберу "диоды стабилитроны"?

156 exersizze   (10.07.2012 10:30) [Материал]
Имеете ввиду фьюз BOD level? Попробовать можно, но наврядли это он виноват. По какой схеме собирался программатор? Проверте поступает ли напряжение на контроллер

155 Valera18   (10.07.2012 09:50) [Материал]
Установлены диоды "на сигналах" на 3,3V (1N4728A).
Стабилитронов на напряжение 3,6V в магазине нет.
Может попробовать изменить Fuse, они установлены на 2,7V ?

154 exersizze   (10.07.2012 08:38) [Материал]
Возможно в стабилитронах, они на какое напряжение?

153 Valera18   (10.07.2012 06:09) [Материал]
Я собрал USBasp с возможностью выбора напряжения (3,3V или 5V).
На 3,3V работает превосходно, а на 5V пишет "Неопознанное устройство".
В чем может быть проблема?

152 exersizze   (27.06.2012 08:44) [Материал]
Можно поставить, схема то запустится. А вот насколько будет стабильно работать это уже вопрос, у керамики погрешность частоты больше чем у кварца.

151 Valera18   (26.06.2012 22:52) [Материал]
Подскажите, можно ли использовать керамический резонатор "12.0MT (ZTA)" вместо кварцевого резонатора "12 МГц"?
Вроде во флэшках установлены керамический.

150 exersizze   (25.06.2012 21:10) [Материал]
нет, такого в программаторе не предусмотрено.

149 plotny   (25.06.2012 20:20) [Материал]
Здравствуйте уважаемые !!!
Подскажите ПЛИЗ на ножках RX и TX будут сигналы работы,
то есть можно его использовать и как преобразователь UART.
С уважением plotny@vseversk.ru

148 exersizze   (23.06.2012 10:39) [Материал]
Что значит 8и мегагерцная мега?)) ATmega8L или запустился от 8МГц ?

147 KAZACHOK   (23.06.2012 10:24) [Материал]
Собрал, работает отлично, даже на 8-ми мегагерцной меге.

146 Aleks8383   (15.06.2012 11:22) [Материал]
Это блокировачный конденсатор,ставь любой от 0.01 до 0.1 мкф

145 KAZACHOK   (15.06.2012 09:36) [Материал]
Извините за глупый вопрос, но кокой номинал конденсатора C1.Его нет на схеме но есть на плате.

+1   Спам
144 Aleks8383   (05.06.2012 15:42) [Материал]
Нет,нельзя рабочая частота USB 12Мгц не больше и не меньше.

143 Valera18   (05.06.2012 14:25) [Материал]
Ещё вопрос:
А можно установить внешний кварц выше 12 МГц (например 13 МГц).
Вы пробовали (работать будет)?

142 Valera18   (03.06.2012 13:12) [Материал]
Да, точно, только до 8 МГц. Жаль...

141 exersizze   (03.06.2012 00:55) [Материал]
А в меге разве есть источник тактирования на 12МГц? В них вроде можно выбирать из 1-2-4-8 МГц.

140 Valera18   (02.06.2012 23:26) [Материал]
Здравствуйте.
Я собирал такой программатор (использовал внешний кварц), спасибо всё работает.
А можно как-нибудь собрать без кварца? Например использовать ATMEGA8-16AU и настроить внутренний кварц на 12 MГц?

139 ildar-home2009   (20.05.2012 21:19) [Материал]
это 1 из 8 купленных в этом магазине. думаю не стоит их чернить. остальные ведь рабочие были.

138 exersizze   (18.05.2012 20:50) [Материал]
ну отлично! лишнее доказательство работоспособности сабжа:)
а в каком магазине продают нерабочее дерьмо, ссылку в студию чтобы предостеречь народ.

+1   Спам
137 ildar-home2009   (18.05.2012 20:11) [Материал]
Заработало!!! Дело было в mege8. Поставил выбдранную из какой-то платы и запрограммировал. Так что не все что с магазина исправное )))

136 exersizze   (13.05.2012 22:31) [Материал]
цепляется кварц с частотой, на которой микроконтроллер был прошит, и прошивается заново.

135 ildar-home2009   (13.05.2012 20:45) [Материал]
Нет. Mega8. А как перепрограммируются avr уже запрограммированные на использование внешнего кварца?

134 exersizze   (11.05.2012 14:30) [Материал]
какая мега стоит? случаем не 88

133 ildar-home2009   (10.05.2012 19:25) [Материал]
Кварц рабочий. У меня есть другой USBASP, но сделанный на вывводных элементах. Программатор работает и с этим и другим кварцем. Этот делаю что бы был размерами по-меньше. Все заново пропаял, эффекта нет. С первым так не мучился :)

132 exersizze   (10.05.2012 14:56) [Материал]
Ставьте лучше детали с заранее известными параметрами, тем более кварц на 12МГц ненастолько редкий и дорогой. Зато потом не надо будет ломать голову почему устройство не работает.

131 ildar-home2009   (10.05.2012 05:37) [Материал]
Кварц поставил. На нем маркировка: KTS12.0g2f. Выдран со старой материнки. Обозначение не нашел. Но на разных материнках пристуствуют кварцы с цифрой 12 в обозначении.

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






авторизация