Программатор usbasp

Hardware

Partlist

Partnumber Value Reichelt No
C1 4,7u RAD 4,7/35
C2 100n X7R-5 100N
C3, C4 22p KERKO 22P
D1, D2 3V6 zener ZF 3,6
CON1 USB-B USB BW
CON2 10pol WSL 10W
IC1 ATmega8-16 ATMEGA 8-16 (not programmed!)
JP1, JP2 2pol 2,54mm SL 1X36G 2,54
LED1 3mm LED green LED 3MM 2MA GN
LED2 3mm LED red LED 3MM 2MA RT
Q1 12Mhz 12,0000-HC49U-S
R1, R2 68 1/4W 68
R3 2,2k 1/4W 2,2k
R4, R5, R6, R7 270 1/4W 270
R8 10k 1/4W 10k
R9, R10 1k 1/4W 1k
M1, M2 Jumper JUMPER 2,54GL SW
M3 Socket 28S GS 28-S
M4 Case TEKO 10007
M5 PCB

User PCB layouts

   usbasp_single_side.t3001.zip
by Thomas Fischl
Single-Side PCB, TARGET 3001! layout file
Size: 90×40 mm
(optimized for case Hammond 1591ATBU)
   lv_usbasp.tar.gz
by Pawel Szramowski (11/2007)
With Low-voltage front-end.
Single-Side PCB, EAGLE layout files, some SMD components
   by Bernhard Walle
Double-Side PCB, EAGLE layout files, part list with order numbers for Reichelt.de and Conrad.de
Size:
optimized for case Hammond 1591ATBU
   http://thomaspfeifer.net/atmel_usb_programmer.htm
by Thomas Pfeifer
Single-Side PCB, PDF layout files, SMD components
   by Tomasz Ostrowski
Single-Side PCB, PDF and EPS layout files, only four 0805 SMD parts, rest discrete components
   USBasp_CH.zip
by Christian Heigemeyr
Single-Side PCB, with some SMD 0805 components, PDF-files
With additional buttons for reset and disconnection of the target
   USBasp.sch,
USBasp.pcbComponentSide.pdf,
TopSide.pdf,
Schematics.pdf
by Zhurov Pavel
Single-Side PCB, P-CAD 2002 format and PDF files
Crosspiece TXD and RXD are added for the ISP connector
   usbasp_gr.rar
by J.A. de Groot
The board is single sided (EAGLE format), measures 3 by 8 cm and uses only regular components.
  

usbasb_mg.zip
by Matthias Görner

Single-Side PCB, eagle-format, with PS/PDF-files
integrated sockets for target chips ATmega8 and ATmega32

  

Tarball with layout
by Hannes Östlund

Doubleside-Side PCB, SMD components, very small

  

by Sergiy Bogdancev (01/2010)

3.3V version, ATMega48 only. Single-side PCB, ExpressPCB layout format + socket board for varies AVRs.
Without future serial interface, chip initially must be programmed with another programmer.

   Eaglefiles (sch/brd) and CAD case design (dxf)
by Hans Hafner, HTL Mössingerstrasse-Klagenfurt, Österreich, hans.hafner (at) htl-klu (dot) at
(01/2010)
CNC-milled case (DXF file available), Eagle layout, only a few SMD parts
   Different USBasp versions: Easy to built non-smd, smd version and a very small USBasp
by Sven Hedin
(01/2011)
Eagle files available.
   USB Key AVR Programmer
by Fabio Baltieri
(09/2011)
Very small USB key like dimensions. SMD parts.
   AVR ISP Programmer
by Jaroslav Vadel
(04/2012)
Small programmer. SMD parts.
   Target project and PDFs (layout/schematics)
by Marius Schäfer
(09/2013)
  

by Stephan Bärwolf
(04/2014)

   USBasp on breadboard with socket for controller daughter boards.
by Fabian Hummel
(11/2018)
   Tjaart van Aswegen designed an SMD board: DIP TRACE and GERBER files.
by Tjaart van Aswegen
(09/2019)
  

Feature rich (e.g. different voltage levels, integrated USB to serial converter, USB-C connector) USBasp compatible design.
AVR Programmer Github project.
by Brian Pepin
(12/2019)

   USBasp with ZIF socket and through hole components.
by Bruno
(04/2020)
   USBasp board with additional 6pin header and selectable target supply (3.3V/off/5.0V).
by Marty E.
(10/2020)
   John included a 40 pin universal socket which takes 8, 14, 20 and 28 pin devices.
He also added a versatile crystal oscillator with outputs of 1, 2, 4, 8 and 16 Mhz to clock the chips.
There is also the standard 6pin ICSP connector and a user led connected to the MOSI pin.
by John P.
(11/2020)
   QUSBASP features a small size and flexibility (different connection options: USB-A or pin header, ICSP with 6 or 10 or pogo pins).
by Qetesh
(07/2021)

Первый запуск USBasp программатора

Теперь, когда все детали спаяны, остается только «прошить» микроконтроллер Atmegę8 самого программатора. Для этого нужен отдельный программатор, это может быть, например, STK 200 (LPT порт), STK500 и т. д. LPT программатор подключается к USBasp через разъем IDC-10.

Обратите внимание, что распределение пинов в разъеме оригинального программатора (USBasp) находится справа, в то время как в версии, описываемой в этой статье – слева:

Распределение, показанное на рисунке справа, соответствует тем, которые применяет компания Atmel в своих оригинальных программаторах. Такое распределение уменьшает риск возникновения помех во время программирования в случае применения длинных проводов от программатора к контроллеру, так как каждая сигнальная линия экранирована массой, кроме MOSI.

На время программирования включите режим SELF путем переключения DIP переключателя № 3 в положение ON. Благодаря этому появляется возможность запрограммировать Atmega8. После завершения программирования, положение переключателя (3) должна быть переведено в состоянии OFF.

Последнюю версию прошивки можно скачать с официального сайта. Рекомендуем версию для Atmega8, которая находится в архиве: usbasp.2011-05-28.tar.gz.

Обратите внимание, чтобы перед программированием Atmega8 необходимо выставить фьюзы которые имеют следующие значения:

  • # для Atmega8: HFUSE=0xC9 LFUSE=0xEF
  • # для Atmega48: HFUSE=0xDD LFUSE=0xFF

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

Общие сведения

Программатор USBAsp распространяется и открытым исходным кодом, так что при желании можно изготовить самому, скачав печатную плату и прошивку с сайта Thomas, из-за этого в различных интернет магазинах существует различные варианты программатора с одинаковым функционалом. В моем случае буду рассказывать о USBAsp V2.0 китайского производителя LC Technelogy.

Программатор собран на синий печатной плате, слева расположен USB-разъем необходимый для подключения к компьютеру. В центре располагается контроллер ATmega8A, рядом установлен кварцевый резонатор на 12 МГц и электрическая обвязка (резисторы, конденсаторы). Справа расположен 10-контактный разъем (два ряда, по пять выводов, шагом 2.54 мм), обеспечивающий обмен данными с прошиваемым микроконтроллером (интерфейс ISP). В комплекте поставляется кабель, с каждой стороны которого, установлен разъем IDC (10 выводов), для простоты прошивки некоторых плат (например Arduino), советую приобрести адаптер-переходник с 10-pin на 6-pin. Назначение выводов программатора USBAsp можно посмотреть на рисунке ниже, вид на стороне программатора.

Назначение выводов: ► 1 – MOSI ► 2 – VCC ► 3, 8, 10 – GND ► 4 – TXD ► 5 – RESET ► 6 – RXD ► 7 – SCK ► 9 – MISO

Световая индикация► Красный светодиод G — Включен ► Красный светодиод R — Обмен данными

Перемычки ► JP1 — POWER, управляет напряжением на разъеме ISP VCC (вывод 2), можно установить на + 3.3В, + 5В или вовсе убрать перемычку, если программируемое устройство, имеет собственный источник питания. ► JP2 — SERVICE, обновления прошивки USBasp. ► JP3 — SLOW, программирования на низких скоростях, если программируемое устройство, работает на частоте ниже 1.5 МГц, SCK (вывод 7) уменьшит частоту с 375 кГц до 8 кГц.

Принципиальная схема программатора USBAsp V2.0 можно посмотреть на рисунке ниже.

Список поддерживаемых AVR микроконтроллеров: ► Mega Series: ATmega8, ATmega8A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega103, ATmega128, ATmega128P, ATmega1280, ATmega1281, ATmega16, ATmega16A, ATmega161, ATmega162, ATmega163, ATmega164, ATmega164A, ATmega164P, ATmega164PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega32, ATmega32A, ATmega324, ATmega324A, ATmega324P, ATmega324PA, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega3290, ATmega3290A, ATmega3290P, ATmega64, ATmega64A, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega649, ATmega649A, ATmega649P, ATmega6490, ATmega6490A, ATmega6490P, ATmega8515, ATmega8535, ► Tiny Series: ATtiny12, ATtiny13, ATtiny13A, ATtiny15, ATtiny25, ATtiny26, ATtiny45, ATtiny85, ATtiny2313, ATtiny2313A ► Classic Series: AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535 ► Can Series: AT90CAN128 ► PWN Series: AT90PWM2, AT90PWM3

Установка драйвера для USBASP в Windows 10

Если вы используете интерфейс JTAG, вам может потребоваться установка драйвера для USBASP если он не установился автоматически. Если вы не установите этот драйвер, то вы не сможете найти порт USBASP в программе Atmel Studio. Скачать драйвер USBASP можно по этой ссылке — http://www.mediafire.com/file/z576zrku371qyjs/windows-8-and-windows-10-usbasp-drivers-libusb_1.2.4.0-x86-and-x64-bit.zip/file.

После скачивания драйвера выполните следующую последовательность действий:

1. Распакуйте из архива скачанные файлы и поместите их на рабочий стол.

2. Подсоедините модуль USBASP v2.0 к своему компьютеру.

3. Откройте в Windows диспетчер устройств (Device Manager).

4. Теперь вы можете увидеть подсоединенный USBASP в списке устройств.

5. Кликните правой кнопкой мыши по “USBasp” и выберите “Обновить драйвер (Update Driver)”.

6. Select “Произвести поиск драйвера на своем компьютере (Browse my computer for driver software)”.

7. Найдите в открывшемся окне распакованную папку с драйвером для USBASP и щелкните «Открыть».

8. Если установка драйвера прошла успешно, то вы увидите сообщение примерно такое же как на нижеприведенном рисунке – в этом случае вам уже не нужно выполнять дальнейшие инструкции в этом разделе статьи.

9. Если вы увидите сообщение об ошибке как на приведенном рисунке, то вы в этом случае должны отключить цифровую подпись драйвера.

Чтобы сделать выполните следующие шаги:

— нажмите кнопку Shift и удерживая ее нажатой перезагрузите свой компьютер (кликните Restart в меню Windows пока держите ее нажатой);

— когда ваш компьютер перезагрузится не отпускайте кнопку Shift до тех пор пока не увидите “Advanced Options (Расширенные настройки)” на синем экране;

— отпустите кнопку Shift и кликните на “Startup Settings”;

— кликните на “Troubleshoot (Устранение проблем)”;

— выберите “Advanced Options (Расширенные настройки)”;

— после этого вы увидите на экране список расширенных опций и кнопку “Restart” в правом нижнем углу – кликните на ней;

— подождите пока компьютер снова перезагрузится. После этого вы увидите на экране ряд настроек;

— в открывшемся списке настроек выберите пункт “Disable Driver Signature Enforcement (Отключить цифровую подпись драйвера)”. Чтобы ее выбрать просто нажмите кнопку «7» на вашей клавиатуре (не путать с кнопкой «F7»);

— после нажатия этой кнопки компьютер перезагрузится и цифровая подпись драйвера будет отключена;

— после этого снова выполните шаги 1-8 из данного раздела статьи и драйвер для программатора USBASP будет успешно установлен.

Hardware

Partlist

Partnumber Value Reichelt No
C1 4,7u RAD 4,7/35
C2 100n X7R-5 100N
C3, C4 22p KERKO 22P
D1, D2 3V6 zener ZF 3,6
CON1 USB-B USB BW
CON2 10pol WSL 10W
IC1 ATmega8-16 ATMEGA 8-16 (not programmed!)
JP1, JP2 2pol 2,54mm SL 1X36G 2,54
LED1 3mm LED green LED 3MM 2MA GN
LED2 3mm LED red LED 3MM 2MA RT
Q1 12Mhz 12,0000-HC49U-S
R1, R2 68 1/4W 68
R3 2,2k 1/4W 2,2k
R4, R5, R6, R7 270 1/4W 270
R8 10k 1/4W 10k
R9, R10 1k 1/4W 1k
M1, M2 Jumper JUMPER 2,54GL SW
M3 Socket 28S GS 28-S
M4 Case TEKO 10007
M5 PCB

User PCB layouts

   usbasp_single_side.t3001.zip
by Thomas Fischl
Single-Side PCB, TARGET 3001! layout file
Size: 90×40 mm
(optimized for case Hammond 1591ATBU)
   lv_usbasp.tar.gz
by Pawel Szramowski (11/2007)
With Low-voltage front-end.
Single-Side PCB, EAGLE layout files, some SMD components
   by Bernhard Walle
Double-Side PCB, EAGLE layout files, part list with order numbers for Reichelt.de and Conrad.de
Size:
optimized for case Hammond 1591ATBU
   http://thomaspfeifer.net/atmel_usb_programmer.htm
by Thomas Pfeifer
Single-Side PCB, PDF layout files, SMD components
   by Tomasz Ostrowski
Single-Side PCB, PDF and EPS layout files, only four 0805 SMD parts, rest discrete components
   USBasp_CH.zip
by Christian Heigemeyr
Single-Side PCB, with some SMD 0805 components, PDF-files
With additional buttons for reset and disconnection of the target
   USBasp.sch,
USBasp.pcbComponentSide.pdf,
TopSide.pdf,
Schematics.pdf
by Zhurov Pavel
Single-Side PCB, P-CAD 2002 format and PDF files
Crosspiece TXD and RXD are added for the ISP connector
   usbasp_gr.rar
by J.A. de Groot
The board is single sided (EAGLE format), measures 3 by 8 cm and uses only regular components.
  

usbasb_mg.zip
by Matthias Görner

Single-Side PCB, eagle-format, with PS/PDF-files
integrated sockets for target chips ATmega8 and ATmega32

  

Tarball with layout
by Hannes Östlund

Doubleside-Side PCB, SMD components, very small

  

by Sergiy Bogdancev (01/2010)

3.3V version, ATMega48 only. Single-side PCB, ExpressPCB layout format + socket board for varies AVRs.
Without future serial interface, chip initially must be programmed with another programmer.

   Eaglefiles (sch/brd) and CAD case design (dxf)
by Hans Hafner, HTL Mössingerstrasse-Klagenfurt, Österreich, hans.hafner (at) htl-klu (dot) at
(01/2010)
CNC-milled case (DXF file available), Eagle layout, only a few SMD parts
   Different USBasp versions: Easy to built non-smd, smd version and a very small USBasp
by Sven Hedin
(01/2011)
Eagle files available.
   USB Key AVR Programmer
by Fabio Baltieri
(09/2011)
Very small USB key like dimensions. SMD parts.
   AVR ISP Programmer
by Jaroslav Vadel
(04/2012)
Small programmer. SMD parts.
   Target project and PDFs (layout/schematics)
by Marius Schäfer
(09/2013)
  

by Stephan Bärwolf
(04/2014)

   USBasp on breadboard with socket for controller daughter boards.
by Fabian Hummel
(11/2018)
   Tjaart van Aswegen designed an SMD board: DIP TRACE and GERBER files.
by Tjaart van Aswegen
(09/2019)
  

Feature rich (e.g. different voltage levels, integrated USB to serial converter, USB-C connector) USBasp compatible design.
AVR Programmer Github project.
by Brian Pepin
(12/2019)

   USBasp with ZIF socket and through hole components.
by Bruno
(04/2020)
   USBasp board with additional 6pin header and selectable target supply (3.3V/off/5.0V).
by Marty E.
(10/2020)
   John included a 40 pin universal socket which takes 8, 14, 20 and 28 pin devices.
He also added a versatile crystal oscillator with outputs of 1, 2, 4, 8 and 16 Mhz to clock the chips.
There is also the standard 6pin ICSP connector and a user led connected to the MOSI pin.
by John P.
(11/2020)
   QUSBASP features a small size and flexibility (different connection options: USB-A or pin header, ICSP with 6 or 10 or pogo pins).
by Qetesh
(07/2021)

Строительство USBasp программатора

Существует много версий печатной платы данного программатора, некоторые можно найти на официальном сайте USBasp. Однако, была сделана своя на основе выше представленной схемы.

К сожалению, из-за применения DIP переключателей, рисунок платы стал немного сложнее, что привело к применению 2 коротких перемычек, с целью чтобы печатная плата была по-прежнему односторонней.

Ниже результат печатной платы:

Как видно на рисунке, в программаторе не применялись SMD элементы. Пустое пространство на плате „залито” полем массы, главным образом для того, чтобы не вытравливать большое количество меди, а также снизить влияние помех на программатор.

Список элементов используемых в USBasp программаторе:

  • R1: 10к
  • R2: 180
  • R3: 100
  • R5, R6: 68
  • R7: 2к2
  • C1, C2: 22п
  • C3: 10мк
  • C4: 100н
  • LED1: Красный светодиод на 20мА
  • LED2: Зеленый светодиод на 20мА
  • D2, D3: стабилитроны на 3,6В
  • X1: Разъем USB, тип B
  • SV1: Гнездо под разъем IDC-10
  • Q1: Кварц 12МГц, корпус HC49-S
  • SW1: Dip переключатель трехпозиционный
  • IC1: Atmega8  (ПРИМЕЧАНИЕ: Не следует использовать микроконтроллер Atmega8 — PU из-за его ограничение максимальной тактовой частотой до 8 МГц!)

Перенос рисунка печатной платы USBasp программатора на стеклотекстолит выполнен с помощью метода ЛУТ (лазерно-утюжной технологии). Как это делать описывать не будем, поскольку данной информации в сети много.

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

Следующий этап – вытравливание платы в растворе хлорного железа. Во время травления желательно поддерживать температуру раствора не ниже 40 C, поэтому банку с раствором погружаем в горячую воду:

После завершения процесса травления необходимо удалить тонер ацетоном.

Остается теперь только просверлить отверстия. После завершения процесса изготовления платы можно приступать к пайке элементов USBasp программатора, начиная с перемычек.

Готовые к печати (в формате PDF) рисунок печатной платы находится в конце статьи. Вы также можете найти несколько вариантов на официальном сайте проекта.

Чтение и запись фьюзов Ардуино

avrdude -C ../etc/avrdude.conf -c usbasp -p m328p -U lfuse:r:-:h

  • -c <programmer> — псевдоним используемого программатора, в данном случае usbasp.
  • -p <partno> — тип микроконтроллера. Я считываю фьюзы из Ардуино Уно, в которой установлен микроконтроллер ATmega328p, поэтому в качестве <partno> указано значение m328p.
  • -U <memtype>:r|w|v:<filename> — комплексная опция для указания производимой с памятью операции (чтение. запись, проверка). -U lfuse:r:-:h означает, что требуется прочитать содержимое младшего байта конфигурации и вывести считанное значение на экран в щестнадцатеричном виде.

А вот и результат выполнения приведенной команды:

Если у вас в результате присутствует строка avrdude: warning: cannot set sck period, please check for usbasp  firmware update, то не обращайте на нее внимание. Это всего лишь предупреждение, не ошибка, работе оно не мешает

Если вы всё же хотите от него избавиться, то нужно обновить прошивку USBasp, данная процедура подробно расписана в статье Прошивка USBasp. Как видно из скриншота, значение младшего конфигурационного байта равно 0xff, команда отработала успешно.

Теперь проверим запись фьюзов с использованием USBasp. Я изменю значение дополнительного конфигурационного байта с 0xFF на 0xFD, что приведет к установке порога срабатывания схемы BOD в 2.7В. Команда для Avrdude и результат ее выполнения приведены ниже:

avrdude -C ../etc/avrdude.conf -c usbasp -p m328p -U efuse:w:0xFD:m

Чтение и запись FLASH и EEPROM памяти Ардуино

В приведенных выше примерах команд для Avrdude в качестве параметра <memtype> использовались значения lfuse и efuse для доступа к конфигурационным байтам микроконтроллера. Данный параметр может принимать и другие значения, они приведены ниже:

  • calibration — байты калибровки RC-генератора;
  • eeprom — энергонезависимая память микроконтроллера;
  • efuse — дополнительный конфигурационный бит;
  • flash — FLASH память микроконтроллера;
  • fuse — фьюз-байт для микроконтроллеров с одним fuse-байтом;
  • hfuse — старший fuse-байт;
  • lfuse — младший fuse-байт;
  • lock — байт блокировки (ячейка защиты);
  • signature — три байта что обозначают сигнатуру чипа (device ID);
  • fuseN — байт с фьюзами для ATxmega чипов, N — целое число для каждого фьюза что поддерживается устройством;
  • application — область приложений во Flash памяти для МК ATxmega;
  • apptable — таблица приложений в области Flash памяти для устройств ATxmega;
  • boot — загрузочная область Flash памяти для устройств ATxmega;
  • prodsig — область с производственной сигнатурой (calibration) для устройств ATxmega;
  • usersig — область с пользовательской сигнатурой для устройств ATxmega.

Таким образом, для чтения FLASH Ардуино Уно (микроконтроллера ATmega328p) может быть использована следующая команда:avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U flash:r:flash_dump.hex:i
Файл с содержимым FLASH памяти микроконтроллера будет создан в каталоге Avrdude. Либо можно прописать в команде полный путь к файлу.
Для записи в FLASH память содержимого файла flash_dump.hex можно использовать команду:avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U flash:w:flash_dump.hex:i
Чтение EEPROM:avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U eeprom:r:eeprom_dump.hex:i
Запись EEPROM:avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U eeprom:w:eeprom_dump.hex:i

Запись загрузчика в Ардуино

Процедуру записи загрузчика я описывал ранее в публикации Arduino as ISP — программатор из Ардуино. Как и в прошлый раз для записи загрузчика мы будем использовать IDE Arduino. Последовательность шагов следующая:

Прошивка микроконтроллера

После того как мы установили драйвера, можно приступить к программированию микроконтроллера. Программировать будем при помощи программы AVRDUDEPROG. После запуска программы должно появиться такое окно, где нам нужно в списке выбрать нам микроконтроллер ATtiny2313.

Прошивка МК осуществляется при помощи файла с расширением HEX. Перед тем как заливать прошивку нам нужно очистить кристалл, от старой прошивки которая уже имеется в памяти МК. Для это жмем на кнопку «стереть все»

Далее нам нужно выбрать сам файл c расширением HEX.

выбираем наш файл «Lesson 1.hex»

После чего жмем кнопку «программировать»

Если мы все сделали правильно, то должно высветиться такое окно:

Есть еще один момент, после того как мы прошили МК, нам нужно установить FUSE бит CKDIV8, для этого переходим во вкладку Fuses.

CKDIV8 — fuse бит, который делит частоту кварцевого (или иного имеющегося) тактового генератора на 8. То есть при включенном этом бите и применении кварцевого резонатора на 8 МГц реальная тактовая частота МК составит 1 МГц.

Далее опять жмем кнопку «Программирование»

Программа для USBAsp V2.0

Программу разработал «Боднар Сергей», работает не только с китайским программатором USBAsp v.2.0, но и другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем «AVRDUDEPROG.exe». В качестве примера, прошью китайскую плату Arduino UNO R3 в которой установлен микросхема ATmega328P. В программе, жмем на вкладку «Микроконтроллеры» и выбираем ATmega328P.

Далее, необходимо выбрать прошивку, в строке «Flash» нажимаем «. . .», переходим в папку «C:Program FilesArduinohardwarearduinoavrootloadersatmega» и выбираем «ATmegaBOOT_168_atmega328.hex», жмем «Открыть»

Подключаем программатор к плате «Arduino UNO R3», и нажимаем кнопку «Программирование».

В конце, выйдет диалоговое окно, о удачном окончании программировании.

Ссылки Скачать драйвер для программатора USBASP v2.0 (LC Technology, ATMEL) Скачать программу AVRDUDE_PROG v.3.3

Купить на Aliexpress Программатор USBASP v2.0 (LC Technology, ATMEL) Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)

Купить в Самаре и области Программатор USBASP v2.0 (LC Technology, ATMEL) Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)

Популярное

  • Устройство и программирование микроконтроллеров AVR для начинающих – 143
  • Трехканальный термостат, терморегулятор, таймер на ATmega8 – 70
  • Двухканальный термостат, терморегулятор на ATmega8 – 67

Программатор USBASP — устройство, распиновка, подключение, прошивка

Программирование микроконтроллеров AVR фирмы Atmel

1. Микроконтроллеры — первый шаг2. Системы счисления: десятичная, двоичная и шестнадцатиричная3. Логические операции, логические выражения, логические элементы4. Битовые операции5. Прямой, обратный и дополнительный коды двоичного числа6. Программа AVRDUDE_PROG: программирование микроконтроллеров AVR ATmega и ATtiny

USBASP -USB программатор для программирования микроконтроллеров AVRUSBASP ISP программатор и AVRdude prog: программирование микроконтроллеров AVR ATmega, ATtiny. Как прошить микроконтроллер.Published by: Мир микроконтроллеров

Цена: 3$ (2шт.)

В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом. USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR. Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это. Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.

Интеграция программатора в Atmel Studio 7

Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP. Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink. На верхней панели инструментов выбрать «Tools» — «External Tools…» Откроется небольшое окно, нажать «Add» В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально. В большом поле наверху, название инструмента будет автоматически продублировано. Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурациюКонфигурация для Atmega168 -p — наименование контроллера -с — какой программатор -P — порт, через который будет заливаться прошивка -U — какая операция с какой памятью будет производится (в данном случае запись во Flash) Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите здесь — также там найдёте описания ключей AVRDUDE.Конфигурация для ATtiny13 Здесь можно заметить уже два изменения: помимо «t13», добавился уже знакомый ключ «-B» со значением «3» для снижения скорости программирования После заполнения полей нажать «Apply» и «ОК». Окно закроется Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер. Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду. Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize…» Откроется следующее окно: Перейти во вкладку «Commands» — нажать кнопку «Add Command…» Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1»

Нажать «OK» «External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168». Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо)

После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.

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

Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Драйвер для программатора USBASP (v 2.0) USB ISP ранее был основан на libusb-win32. После того, как действие сертификата истекло, библиотека была заменена на libusbK. 

Работа драйвера тестировалась на версиях от Windows XP до Windows 10 (32-разрядные и 64-разрядные версии). Поскольку драйвер подписан, отпадает необходимость принудительного отключения сертификата драйвера или использования Zadig, достаточно скачать драйвер USBasp и запустить файл InstallDriver.exe из распакованного архива. В Windows XP можно просто указать мастеру установки папку с распакованными файлами драйвера.

ВНИМАНИЕ! Вы устанавливаете этот драйвер на свой страх и риск!

Дополнение по фьюзам программатора

Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора. Минусом khazam’ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником): Как рекомендует выставить разработчик: Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом), поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником), справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F, Fuse High Byte: C9, Fuse Low Byte: EF. Если всё сходится, можно нажимать «программирование»

_____________________________________

Устройство программатора USBasp

Программатор состоит из небольшого числа деталей. Мозгом программатора является микроконтроллер Atmega8, который имеет всего 8 кб флеш памяти и 1 кб ОЗУ(SRAM).Вроде и слабенький микроконтроллер по современным меркам, но столько всего можно на нем сделать.Из-за особенностей работы программного USB м/к работает на частоте 12мгц. Соответственно, при написании своей прошивки необходимо учитывать это.

USBasp имеет 10 контактный разъем, на который выведены 6 выводов микроконтроллера: PB5 (SCK), PB4 (MISO), PB3 (MOSI, PWM), PB2(PWM), PD0 (RXD), PD1 (TXD).

Плата имеет два встроенных светодиода на выводах PC0 и PC1.Выводы м/к PB0,PB1 и PD2 используются для программного USB,PC2 выведен на перемычку JP3.Остальные выводы микроконтроллера не распаяны.

схема USBasp2.0

распиновка разъема USBasp

AVRDude – программа для usbasp программатора

AVRDude или AVRDude prog – относится к разряду наиболее распространенных программ, активно используемых для прошивки МК фирмы Atmel. Кроме всем известного usbasp, avrdude способна обслуживать более 50-ти видов других программаторов. Вкратце остановимся на том, как пользоваться usbasp avrdude prog.

Данное ПО имеет консольный интерфейс. Тем не менее, avrdude наиболее известна в комплексе со сторонними графическими оболочками, которые ничем не отличаются от стандартных Windows-приложений. Внутри графической avrdude prog есть всё для работы с usbasp, включая русифицированное меню. В нём необходимо задать тип МК и программатора, порт подключения, скорость обмена данными, разрешение на коррекцию фьюзов и прочие данные. Далее выбираем файл прошивки и нажимаем «Программирование». По окончании можно выполнить верификацию. Теперь переходим на соседнюю вкладку, выставляем нужные Fuse-биты и нажимаем «запись». После этого МК прошит, и можно отключить питание.

Список поддерживаемых AVR микроконтроллеров

USBASP Программатор AVR поддерживает все микроконтроллеры ATMEL с режимом последовательного программирования ISP (In System Programming), это все микроконтроллеры у которых есть порт SPI (Serial Peripheral Interface):

  • ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny28, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861
  • AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, T90S4433, AT90S4434, AT90S8515, AT90S8535
  • ATmega8, ATmega48, ATmega88, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega165, ATmega168,ATmega169, ATmega32, ATmega323,ATmega324, ATmega325, ATmega3250, ATmega329, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega128, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega103, ATmega406, ATmega8515, ATmega8535
  • AT90CAN32, AT90CAN64, AT90CAN128
  • AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B
  • AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647
  • AT89S51, AT89S52
  • AT86RF401.