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

Программатор 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
Просмотров: 213616 | Комментарии: 310 | Теги: Ponyprog, программатор, USBasp | Рейтинг: 4.6/28
Всего комментариев: 310« 1 2 ... 8 9 10 11 »
40 Aleks8383   (31.10.2011 18:25) [Материал]
К стити какая у УСБ распиновка +5в, Д+,Д-,земля? А то везде что тот по разному.

39 Aleks8383   (31.10.2011 18:10) [Материал]
Нет не перепутаны, на том рисанке вид со стороны деталей,а здесь http://s44.radikal.ru/i104/1110/e9/566d37b3d38e.jpg со стороны проводников.Как раз получается как в статье и разьём к стати такой же.

38 exersizze   (31.10.2011 15:45) [Материал]
Какой разъем используется? Похоже что D+ и D- перепутаны местами

37 Aleks8383   (31.10.2011 12:13) [Материал]
Фотки выложить пока не могу(фотик борахлит что то),а печатка выложу http://s017.radikal.ru/i416/1110/93/48f4c0d6d37b.jpg .Сделано один в один не где не коротит и не замыкает всё 100 раз проверил, а не работает.Перемычку тоже ставил, результат такой же.Не читает не один контроллер,хотя что то пытается прочесть,но из программы вылетает сообщение нет ответа от устройства.

36 Aleks8383   (31.10.2011 12:02) [Материал]
У меня 2.0.7.1 ,скачать можно от сюда http://depositfiles.com/files/24dx3osjw (полная версия).Работает вроде нормально.

35 exersizze   (31.10.2011 11:35) [Материал]
лично я не пробовал, так и остался на 1.11.9.8
а откуда скачивал 2.0.7.3?

34 amv2000   (30.10.2011 13:02) [Материал]
Кстати извините, что не в тему Bascom 2.0.7.3 никто не пробовал? скачал демку не запускается...

33 ya-zp   (29.10.2011 21:48) [Материал]
Добрый вечер.
Пасип за поддержку, с прогером разобрался. С Баскомом 2.0.5.0 пошел без вопросов. Причину неработки так и не обнаружил - наверное, за неделю, пока программатор лежал без дела, программа плотненько уляглась и все стало на место biggrin Штуковина супер! Рекомендую cool

32 exersizze   (26.10.2011 12:40) [Материал]
Если есть возможность, выложи фото платы с обеих сторон.

31 Aleks8383   (26.10.2011 08:38) [Материал]
Фьюзы правельные,перемычка стоит.Пол вечера его вчера пытал так и не запустился.Досадно,простая схема, а запустить не могу.

30 exersizze   (25.10.2011 01:08) [Материал]
Там все выходы программирования в высокоимпедансном состоянии.
Перемычка стоит? Проверь фьюзы на контроллере программатора. Попробуй с другого компьютера и с другой управляющей программой, даже и не знаю что еще посоветовать. Я уже собрал три таких же проггера и все стартовали без проблем.

29 Aleks8383   (24.10.2011 22:35) [Материал]
У меня такая же проблема. Собрал, подключил программатор определился, установил дрова, а дальше не читает не один контроллер. Хотя подключаю свою платку ( у меня платка с панельками под dip с разводкой под программирование) к другому программатору всё нормально. Не знаю на что грешить проверил несколько раз платку всё нормально, не подскажешь какие должны быть напряжения на входе и на выходе(на ножках контроллера)?

28 exersizze   (24.10.2011 12:25) [Материал]
Пожалуйста! Перемычка J1 замкнута? Если мега новая, то там сконфигурированы фьюзы на 1 Мгц, перемычка должна стоять.

27 ya-zp   (24.10.2011 11:43) [Материал]
Тогда это чудесно! happy
У меня Мега16 в Дипе отказывается видеться этим програм-ром, хотя Пони видит его...Буду разбираться, спасибо за консультацию!

26 exersizze   (23.10.2011 22:51) [Материал]
собственно кроме самого мк ничего не требуется)

25 ya-zp   (23.10.2011 22:29) [Материал]
Наверное, я немножечко неверно задал вопрос - интересует количество элементов в устройстве в котором будет прошиваться МК, не в программаторе. А в остальном все понятно

24 exersizze   (22.10.2011 23:19) [Материал]
привет!
1. Кварц обязателен, и только на 12 МГц. Можно избавиться от конденсаторов вокруг него С2-С3. Я сначала их не ставил, так как небыло в наличии, работало без проблем. Стабилитроны и резисторы R3-R4-R5 должны присутствовать для согласования уровней с шиной юсб. Светодиоды и токоограничительные резисторы для них можно выкинуть если не нужна индикация. Ну и резистор R6 подтяжки лапы Reset в крайнем случае тоже можно убрать, внутри контроллера уже есть на 80к, но тогда возможны сбои в работе (как повезет). Так вот по минимуму остается 7 элементов smile
2. С 1.11.9.8 уже работает
3. Первоначально работала только с AVRDUDE
И под нее уже создавались графические оболочки, такие как Khazama и eXtreme Burner
Теперь практически во всех средах разработки есть возможность прикрутить этот проггер, поэтому недостатка в этом нет.

По поводу резистора на прошиваемом контроллере: необязательно. При программировании Reset принудительно просаживается на землю, поэтому без оного резюка прошиваться будет.

23 ya-zp   (22.10.2011 23:13) [Материал]
... и еще один:
при программировании контроллера USBasp-кой нужно на плате устанавливать резистор на RES (к +)?

22 ya-zp   (22.10.2011 21:57) [Материал]
Доброго времени суток. Есть пару вопросов по устройству.
- какой минимальный "комплект" элементов должен быть на плате с МК для работы с этим програматором (интересует наличие кварц. резонатора, частота свободная или именно вот столько МГц)?
- с какой версией Баскома может работать программатор ( у меня 1.11.9.8)?
- какой еще софт работает с этим програматором?
Спасибо.

21 exersizze   (11.09.2011 23:48) [Материал]
попробовал переносить рисунок на обе стороны; сначала на одну, затем на другую. получилось отлично smile только есть пару особенностей: центрирующие отверстия лучше делать отдельно от рисунка дорожек, так как пока сверлил содрал пятаки с первого слоя(мелкие слишком) - пришлось заново рисовать маркером. А на обратной стороне в местах сверления образуется выступ, который может помешать нормально отутюжить второй слой в этом месте.
Использовал фотобумагу для струйника Lomond 130, при отрыве на тонере остается глянцевый слой от бумаги, тонкий и очень крепкий, получилось все отлично, первый слой не размазался. Делал два отверстия
результат травления

20 tenevikus   (11.09.2011 14:22) [Материал]
да вроде нормально biggrin
правда сложные очень не прбовал... cool

19 exersizze   (10.09.2011 15:18) [Материал]
а на первой стороне тонер нормально остается держаться, не размазывается пока на другой перекатываешь? самому так попробовать руки не доходили) на выходных заново платку для этого программатора буду травить, попробую.

18 tenevikus   (10.09.2011 10:40) [Материал]
двухстороннюю делаю так:
я сразу после нанесения рисунка первого слоя на плату, сверлю 3 или 4 центрирующих отверстия в перенесенном рисунке на плате. делаю эти же отверстия во втором рисунке на фотобумаге, совмещаю, вставляю сверлышки или толстые иголки и аккуратно утюгом начинаю переносить вторую сторону. отмываю и вертикально в хлорное... иногда переворачиваю платку в растворе. бывают косячки, но обычно получается.

17 exersizze   (28.08.2011 14:03) [Материал]
нет сам он отладку не поддерживает, но файл для отладки создавать может (*.obj), который можно открывать в аврстудии.

16 Skyline   (28.08.2011 10:58) [Материал]
Вопрос не совсем в тему, но все-таки спрошу! Не знаешь поддерживает ли BASCOM JTAG - отладку?

15 exersizze   (20.08.2011 21:42) [Материал]
попробуй, может и выйдет

14 cudi   (20.08.2011 21:06) [Материал]
Морока.... Нельзя сразу перевести с 2х сторон рисунок, а вертикально положить в раствор?

13 exersizze   (20.08.2011 19:30) [Материал]
после перевода рисунка на первую сторону, медь на второй стороне закрываю с помощью пленки и термоклея: термоклеем промазываю по краям платы и сверху прижимаю пленкой (можно чем нибудь другим, что выдержит хлорное железо). Таким образом медь будет защищена от травления в растворе. После травления первой стороны, отрываю пленку и счищаю клей (тут-то он и хорош тем что отрывается без особых усилий). Сверлю пару центрирующих дырок на противоположных концах платы и по ним выравниваю рисунок на второй стороне платы и перевожу.
Дырки закрываю термоклеем, вытравленную сторону закрываю также как и в прошлый раз.
Плата плавает на куске пенопласта, прикленного тем же термоклеем. Вроде все.

12 cudi   (20.08.2011 19:11) [Материал]
Подскажи как сделать 2х сторонюю плату? расскажи вкратце....

11 exersizze   (19.08.2011 18:16) [Материал]
по поводу CVAVR не знаю, так как с ним дел не имею, может в нывых версиях и появилась поддержка. Зато знаю что в USBASP можно зашить новую прошивку AVR-Doper и получить STK500-совместимый программатор, с которым можно работать откуда угодно, даже с CodeVision
Пруф

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






авторизация