08.06.2009

USBasp

Когда писал статью про Metaboard, обратил внимание на программатор USBasp, по набору деталей и возможностям сильно напоминающий AVR910:



Ради интереса решил повторить на макетке:



По моим впечатлениям, обмен идет гораздо быстрее, чем с AVR910 от prottoss-а.

По причине прямой поддержки со стороны avrdude ( >= 5.2.0), программатор можно использовать с Arduino IDE. Для этого надо дописать несколько строк в файл arduino-0016\hardware\programmers.txt:
usbasp.name=USBasp
usbasp.communication=usb
usbasp.protocol=usbasp

После этого появляется соответствующее меню в ArduinoIDE:



Работает, что характерно ;)

Firmware с исходниками и чертежи печатных плат можно найти на сайте автора (Thomas Fischl).

Традиционные минусы дешевого программатора:
  • не умеет питаться от программируемой схемы
  • нет предохранителя на линии питания USB (ну, это легко добавить)
Как обычно, выложил комплект деталей на "молоток".

6 комментариев:

  1. Приветствую!
    Тоже спаял такой программатор на ATmega8.
    Подключил, определился как USBasp, установил
    драйвер, стал нормально, подключил подопытный
    мк, запустил KhazamaAVRProgrammer, а дальше
    на все действия : error:could not find SSBdevice
    "USBasp" with vid=0x160c0 pid=0x5dc, т.е. программа
    не видит программатора.Все это делал в WinXP,
    в Линуксе avrdude выдает тоже самое. пробовал
    с разными прошивками 2007-07-23 и 2007-10-23
    тоже самое, раз три проверил монтаж, ошибок не
    нашел, при подключении горит светодиод.
    Фьюзы выставил как в сопроводиловке:
    SUT0,CKOPT,BOOTSZ1,BOOTSZ0, вроде все правильно
    но почему то не работает....
    пробовал на разных портах. Что бы еще проверить?

    ОтветитьУдалить
  2. У меня работает под Vista32 без проблем...

    Во-первых, firmware Atmega8 должно соответствовать весрии avrdude, так что берите только последние прошивки и последний WinAVR.

    Во-вторых, драйвер тоже должен быть последний установлен. Старый libusb_0.1.10.1 желательно снести напрочь.

    В-третьих, фьюзы должны быть такие: HFUSE=0xc9 LFUSE=0xef (бутлоадера нет, внешний кварц>8 МГц, остальное - по умолчанию).

    Монтаж тут не причем: если на программатор подали питание, да оно еще и определилось как "USBAasp" - значит МК работает нормально, тактирование и питание - норамальное, соединение с USB - тем более.

    Да, и еще - рекомендую пробовать сразу с командной строки avrdude, чтобы видеть ключи запуска. Надо ведь писать -c usbasp, и соответствующая секция должна быть в avrdude.conf...

    ОтветитьУдалить
  3. Маленькое дополнение...

    Сообщение "avrdude.exe: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc" появляется в том случае, когда avrdude не может открыть устройство USBasp.

    Надо проверить, что оно появляется в диспетчере устройств - я тут спаял себе экземпляр на макетке и слишком глубоко усадил USB-B разъем, в итоге получил ситуацию с закорачиванием сигнальных проводов на землю. Естественно - оно то есть, то нет... И хоть драйвера поставились и все ОК, иногда не работает именно таким образом - надо пошевелить разъем ;)

    ОтветитьУдалить
  4. ..sorry, программатор работает, это меня сбила
    с толку KhazamaAVRProgrammer, гуевая оболочка
    для avrdude, я с ней пока так и не разобрался..

    ОтветитьУдалить
  5. Приветствую!
    А как сделать, чтоб USBasp работал с WinAVR?

    ОтветитьУдалить
  6. Указать ключ "-c usbasp" avrdude, который входить в состав WinAVR.

    ОтветитьУдалить