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

Программатор 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
Просмотров: 137472 | Комментарии: 308 | Теги: PonyProg, Программатор, USBasp | Рейтинг: 4.6/28
Всего комментариев: 3081 2 3 ... 10 11 »
308 Sevastopolets   (11.10.2016 00:50)
По мотивам этой статьи, родился у меня вот такой экземпляр.
http://s017.radikal.ru/i404/1610/94/28f712c2ac32.jpg
Реально можно было бы сделать размером и поменьше. Плата односторонняя. Минимум сверлёжки.
Распиновки по стандарту подключения ATMEL для 6-ти пинового ISP разъема не придерживался. Для себя же. )))
ATmega8A-AU. Один раз через LPT прошил и забыл. Радует меня уже почти 3 года.
Кому будет нужно, поделюсь файлом для Sprint Layout.
Спасибо автору статьи!!

0  
307 exersizze   (09.10.2016 00:04)
Фото на любой файлообменник, а сюда вставляйте ссылку.

306 andrei913   (08.10.2016 20:02)
Вставил плату в корпус от старого usbrda. Получилось очень даже красиво. Мог бы выложить фото, но не знаю как.

305 andrei913   (08.10.2016 05:37)
После танцев с бубном все-таки залил прошивку в 48 мегу через bascom-avr. Спасибо за советы.

0  
304 exersizze   (07.10.2016 22:52)
andrei913, странно прошивки я брал оттуда же. С мегами48 та же беда, у меня получилось их программировать только через eXtremeBurnerAvr http://avrproject.ru/usbasp/xtreme_burner_avr.zip

303 andrei913   (07.10.2016 16:47)
Залил прошивку отсюда:http://www.fischl.de/usbasp/ Все заработало. Теперь другая проблема, не могу прошить ATmega48PA-PU.

302 andrei913   (07.10.2016 14:57)
Сегодня съездил в обл. центр, купил новые mega8, поставил, тот же хрен только в профиль.

301 andrei913   (06.10.2016 21:26)
Прошивал я прошивкой usbasp.atmega8.2011-05-28. Светодиод не горит. При подключении к usb порту пишет устройство usb не опознано.

0  
300 exersizze   (06.10.2016 21:20)
Так вы залили тестовую прошивку, которая кроме мигания светодиодов ничего не выполняет.. Прошейте нормальной прошивкой из статьи

299 andrei913   (06.10.2016 20:09)
Ну да так и есть. В чем причина не пойму. У меня камень стоит не новый. Выпаял из детектора валюты. Там он работал от внутреннего генератора.

0  
298 exersizze   (06.10.2016 19:52)
Если код который я давал ранее, то они и должны мигать вместе.

297 andrei913   (06.10.2016 19:24)
Протестировал камень. Светодиоды мигают одновременно, не переключаются. Что, камню кирдык?

296 nuriiix   (04.10.2016 19:01)
Вот что написано на одном сайте >>>
"Перемычка J3 используется для прошивки контроллеров у которых частота не превышает 1.5 МГц. Я ее поставил, без нее у меня мега 8 не хотела определяться. Потом подправил меге Fuse биты, чтобы она заработала на 8 Мгц, перемычку не снял, но работает. Слышал, что подправили и теперь перемычку можно не дергать туда сюда."
Теперь все ясно.
Спасибо большое exersizze за отклик.
Работаспасобность проверял на вин7 32/64, xp sp3

295 nuriiix   (04.10.2016 18:54)
Совершилось чудо) Проблема была в джампере. Точнее в самом штырьке. Сверху лак было или чтото подобное. Короче не контачил когда ставил перемычку. Теперь читает и новые контроллеры если ставить перемычку (а уже прошитые читает и с перемычкой и без). Да и ради интереса вопрос: у всех новые контроллеры только с перемычкой работают? В каких случаях ставите перемычку и в каких убираете?

0  
294 exersizze   (04.10.2016 14:26)
Да, странно. А если попробовать отпаять стабилитроны?

293 nuriiix   (04.10.2016 13:22)
И с перемычкой и без пробовал. И на 32 и на 64 разрядном компе пробовал. Драйвера все пробовал. Результаты теже. Странно что в khazame только фюзы менять удается и на прошитых и на нульцевых мк а дудка только прошитых видит. Сегодня ту новую мк прошил через компорт, теперь его дудка щьет и стирает. Все как должно быть.
Вывод: мой собранный usbasp не работает с новыми мк. Получается могу только обновлять мк с помощью usbasp.

0  
292 exersizze   (04.10.2016 08:52)
Перемычка на программаторе замкнута? Если старая мега прошита на работу выше 8 мгц, а перемычка не стоит, то программатор старую прочитать сможет а новую нет.
я бы попробовал на другом компьютере установить, попробовать. А то странно, одно шъет, другое нет. Может драйвер криво встал.

291 nuriiix   (03.10.2016 23:20)
В электронике я ноль. Паяльник держать умею. Следуя инструкциям могу собрать что угодно. Так и собрал usbasp. С первого раза запустился. Дудка и синапрог не видят новую мегу8, а старую прошитую Мегу8 видят, и стирают, и прошивают на ура. khazama и новую и старую мегу8 определяет но не шьет и не читает память а с фюзами все успешно делает. У меня кроме мега8 других мк нет чтоб проверить с другими контроллерами. Что можете сказать по поводу?

0  
290 exersizze   (28.09.2016 19:25)
Да это нормально, залейте вот этот код для теста камня
$regfile = "m8def.dat"
$crystal = 12000000
config PORTC.0=OUTPUT
config PORTC.1=OUTPUT
portc.0=0
portc.1=0
wait 4
do
portc.0=0
portc.1=0
wait 1
portc.0=1
portc.1=1
wait 1
loop
end

http://avrproject.ru/usbasp/test.hex
при включении 5 секунд должны гореть светодиоды, затем начнут переключаться с задержкой 1 сек.

289 andrei913   (28.09.2016 15:58)
Подключил осциллограф к кварцу. На 7 ноге м.к. +2,5в на8 - присутсвуют импульсы 12 мГц, амплитудой 1,5в. Так и должно быть или нет?

288 andrei913   (28.09.2016 14:01)
При подключении к компу- устройство usb не опознано.

287 andrei913   (28.09.2016 13:58)
Фьюзы прошил согласно таблицы. Светодиоды катодами к микроконтроллеру.

0  
286 exersizze   (28.09.2016 13:43)
Фьюзы прошили? Светодиод той стороной запаян?

285 andrei913   (28.09.2016 13:40)
Спаял программатор, залил прошивку через пони прог, светодиод не загорается. Прверил мнтаж на 10 раз, Прошивка считывается 1 в 1 с исходным файлом. В чем может быть проблема?

+1   Спам
284 allexx   (26.02.2014 07:22)
День добрый. Купил такой же программатор на на ебау, определился в системе и установился драйвер после того как выкинул стабы на 3,6В и питание с 5В понизил с помощью двух диодов.
Намеряется около 3,75В. Проверил на трех системниках - работает.

+1   Спам
283 zombien-5   (14.02.2014 15:51)
Все проблема решилась установкой стабов - BZV85C3V6 (3.6V, 1.3W), с ними заработал с первого раза на 3-х компах!

282 sany2   (13.02.2014 22:46)
Очень вредный этот порт.Без бубна редко обходится.Мож на другом компе ещё попробовать?
И ещё одно вспомнилось-собирал по просьбе друга MJOY 16(мега 16)-было несколько прошивок.Только на одной он работал с любыми стабилитронами и не особо был критичен с резисторами,на остальных только бубен помогал.В чём причина?Разная реализация USB?

281 zombien-5   (13.02.2014 16:15)
еще заметил вот что: в большинстве случаев, если при подключении в usb прикоснутся к ногам кварца, то светодиод загорается (но на компе опять таки - unknown device)

280 zombien-5   (13.02.2014 16:11)
P.S. контроллер в этот раз Atmega8A - AU 1332, кварц новый, на 12 МГц

279 zombien-5   (12.02.2014 17:30)
Все, контроллер прошил! теперь другая трабла:при подключении светодиод то горит, то не горит, в дисп. устройств - unknown device, раз 15 подключить-отключить и может появится usbasp, потом все как обычно - unknown device.
использовал:
R1, R2 - (102), R3, R4 - (620, еще пробовал 560), R5 - (222), R6 - (103).
C1, C5, C4 - 0.1 uF, C2, C3 - 22 pF.
Стабилитроны пробовал 3.3V (1.3 W), 3.6V (0.5 W), также пробовал без них.
С контроллером все ок, фьюзы - High - 0xC9, Low - 0xEF.
помогите разобратся, может с номиналами что-то напутал или еще что то...

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






   EasyEDA:  бесплатный редактор схем

   ✓ Создание схем
   ✓ Возможность симуляции
   ✓ Быстрое создание печатных плат
   ✓ Интуитивно понятный интерфейс

   Нарисуй свою схему прямо сейчас!
   Изготовление печатных плат   https://easyeda.com/order
авторизация
Логин:
Пароль:
Комментарии
Сетевой диммер 220V на микроконтроллере
09.12.2016 - vakulyuk:
Спасибо) Я принцип действия понял, а вот откуда взялась именно цифра 195 не поня...
Сетевой диммер 220V на микроконтроллере
09.12.2016 - exersizze:
pchela5, ну так это в военное, а у нас в мирное время все примерно)) Наше...
Сетевой диммер 220V на микроконтроллере
09.12.2016 - pchela5:
> Полуволна в нашей электросети по времени длится примерно 10 мс

...
Сетевой диммер 220V на микроконтроллере
09.12.2016 - exersizze:
Чтобы понять откуда взялась цифра 195 надо сначала въехать в принцип работы: ког...
Сетевой диммер 220V на микроконтроллере
09.12.2016 - vakulyuk:
А почему минимальный накал при 195? Насколько минимум можно занизить Wt?
Когда не хватает ног. Часть 2. Сдвиговый регистр 74HC595
08.12.2016 - exersizze:
yorx выдалось немного свободного времени, проверил в симуляторе. Проблема...
Логгер температуры 2.0
05.12.2016 - Evgeny6873:
Хотел повторить схему и долго ждал дисплей, два раза заказывал с Китая, пришел. ...
Когда не хватает ног. Часть 2. Сдвиговый регистр 74HC595
01.12.2016 - yorx:
Доброго времени суток, exersizze попробовал Ваш код все равно не работает как на...
Помни об усадке!
30.11.2016 - pchela5:
Автомобильные никакие не лезут?


Лучшие цены на 3D принтеры
успей сделать себе подарок к Новому Году! ;)


Prusa i3

Prusa i3 от 12500 р.



Rostoсk

Rostock от 15000 р.