Usbasp – usb программатор для микроконтроллеров atmel avr

Перепрошивка usbisp в usbasp

Источник: http://el-shema.ru/publ/kontroller/pereproshivka_usbisp_v_usbasp/9-1-0-363

AVR USB программатор USBasp

Схема USBasp

Схема программатора USBasp представлена на рисунке ниже. Я взял за основу схему с сайта автора http://www.fischl.de/usbasp и немного изменил ee. Были добавлены диоды VD1 – VD3, чтобы уменьшить напряжение питания и согласовать логические уровни микроконтроллера и USB порта без стабилитронов. Были выкинуты цепи подключенные к UART`у, так как они не использовались, и добавлен джампер JP1.

Расскажу о назначении светодиодов и джамперов. 

– HL1 сигнализирует о том, что идет процесс программирования. Он зажигается на время записи прошивки.- HL2 показывает, что программатор находится в рабочем состоянии. Он зажигается при подаче питания.

– JP1 закорачивает цепочку из диодов, что позволяет изменять напряжение на разъеме программирования с 3 на 5 В. Однако без стабилитронов это прокатит не со всеми компьютерами. Многие компы не опознают USBASP, если у него 5-и вольтовые логические уровни.

– JP2 изменяет частоту SCK сигнала. При разомкнутом джампере частота SCK будет 375 кГц, при замкнутом — 8 кГц. Это требуется для программирования микроконтроллеров с низкой тактовой частотой (меньше 1.5 МГц). – JP3 подключает вывод RESET к разъему программирования.

Это нужно для того, чтобы запрограммировать сам микроконтроллер программатора.

– JP4 подключает к разъему программирования +5В от USB порта. Эта функция может понадобиться, чтобы запитать программируемую плату от программатора.

Сборка USBASP

Для сборки программатора USBASP понадобятся следующие компоненты:

Изготовление платы методом ЛУТа не представляет особых сложностей — плата односторонняя, дорожки широкие. При печати не надо зеркалить рисунок платы.

 

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

На сегодняшний день это самая последняя версия, но на всякий случай загляните на сайт автора. 

Запрограммировать микроконтроллер можно прямо в составе платы. Для этого нужно замкнуть джампер JP3 и JP4, подключить USBasp к компьютеру для подачи питания и подключить программатор к разъему BH-10. Остальные действия зависят от того, какой программатор вы используете.

После того как микроконтроллер запрограммирован, нужно настроить Fuse биты, чтобы он тактировался от внешнего кварцевого резонатора. Значения Fuse битов такие:atmega8 HFUSE=0xc9 LFUSE=0xefatmega88 HFUSE=0xdd LFUSE=0xffЯ прошивал USBASP родным атмеловским программатором.

У меня в Atmel Studio окно с Fuse битами выглядело так. 

Разницы никакой, так что не задавайте вопросы какие Fuse биты установить.

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

Для работы с программатором под Windows требуется установить драйвера. Их можно скачать с сайта автора. Для операционных систем Linux и MacOS X USBasp`у драйвера не требуется.

Подключаем собранный и запрограммированный USBasp к компьютеру. Операционная система оповестит нас о нахождении нового оборудовании и предложит установить драйвера.

Выбираем опцию –  установить из указанного местаУказываем папку в которой лежат драйвера для программатора.Система немного потупит, а затем начнется процесс установки.Если все прошло удачно, мастер оборудования завершит работу.

 А Windows оповестит нас об установке нового оборудованияТеперь программатором можно пользоваться.Описанная процедура может немного отличаться в зависимости от версии операционной системы, но суть одна – подсунуть драйвера из папки.

Оболочки для работы с USBasp

Для работы с USBasp`ом есть несколько программ — avrdude, eXtremeBurner, Khazama и.. какие то еще.

На мой взгляд наиболее удобная в использование программа для USBaspa – это Khazama. Она имеет простой и интуитивно понятный оконный интерфейс. Процесс программирования микроконтроллера выполняется в три шага.

Программирование EEPROM (память предварительно должна быть стерта) выполняется аналогичным образом.В меню Command  > Program Options можно задать настройки программы. В частности, набор операций, которые будут выполняться при нажатии на кнопку Auto Program.

По умолчанию там задано стирание чипа и запись во флэш память. Можно также выбрать запись в EEPROM и верификацию (проверку данных после записи).С помощью Khazama также можно  устанавливать FUSE биты
Все операции можно выполнять как с помощью меню, так и с помощью меню бара.

Также есть удобная опция AutoProgram.

1 — загрузить в буфер прошивку для Flash памяти2 —  загрузить в буфер прошивку для EPROM памяти3 — записать прошивку во Flash память4 — записать прошивку в EPROM память5 — прочитать Flash память6 — прочитать EPROM память7 — стереть кристал8 — установка FUSE и LOCK биты9 — установить Khazama поверх всех окон

Файлы

Схема и печатная плата USBasp в формате Eagle
Win драйвер и прошивка USBasp
KhazamaAVRProgrammer

У вас недостаточно прав для комментирования.

Источник: http://chipenable.ru/index.php/item/71

FAQ USBasp программатор AVR микроконтролеров — Сообщество «Электронные Поделки» на DRIVE2

В инете сказано, что USBasp — один из наиболее простых для повторения AVR USB программаторов.
Требует минимум внешних компонентов, имеет несколько много готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.

Оригинальная статья по программатору: www.fischl.de/usbasp/
Статья, по которой собирал: easyelectronics.ru/usb-pr…grammator-avr-usbasp.html
Автором печатной платы является DiHalt.

Значит собираем )

Сборка устройства USBasp

1. Сборка производилась по следующей схеме. Это самая распространенная схема. Требуется минимум навесных элементов. Не смог достать емкости для кварца на 18пФ, заменил их на 22пФ. Светодиоды можно использовать любого цвета (от того, что красный с зеленым местами поменяются, принцип работы не изменится)

Подробный процесс изготовления выкладывал тут:
USBasp программатор AVR микроконтроллеров (Сборка устройства)

2. Модифицировал печатную плату под свой корпус. Пришлось немного попотеть при переделке, чтоб впихнуть в корпус от сплиттера в одну линейку и МК, и USB-разъем и IDC-10. Результат превзошел мои ожидания )
Доработанная печатная плата USBasp программатора: Скачать в формате Lay

Сверху авторская плата, снизу — мой вариант

3. Припаиваем все элементы согласно схеме. Элементов мало, вероятность ошибиться низка, но есть. Поэтому все делаем внимательно )

4. А теперь сравним оба устройства: авторское и получившееся. Чего хотел — добился. Устройство помещается в корпусе от плиттера. Найдите 10-ть отличий…

Сверху фото авторского устройства. Снизу — фото моего девайса.

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

1. Прошиваем микроконтроллер с помощью этого программатора:
Простой LPT программатор AVR микроконтроллеров (5-ть проводков)Заливаем файл прошивки под названием “usbasp.atmega8.2007-10-23.hex” из этого архива:

Прошивка, программа, печатка. Установка фьюзов тоже в архиве.

Если же фьюзы установлены были неверно, и теперь микроконтроллер не определяется (т.е. был затронут одby из критичных фьюзов), а вам хотелось заново прошить МК, то исправить их можно с помощью такого устройства:
Фьюзбит Доктор. Исправляем AVR при неправильно прошитых фьюзах

на фото прошивка Mega8 с помощью 5-ти проводков

2. Подключаем к программатору адаптер для программирования микроконтроллеров.Сам адаптер был собран ранее в этой теме:

Адаптер для прошивки AVR микроконтроллеров (8pin-20pin-28pin)

При подключении USB будет постоянно светиться зеленый (красный) светодиод

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

1. Можно было запрограммировать и в самом USBasp программаторе, подключив к нему простой программатор согласно распиновке. Если все собрано и запрограммировано верно, то устройство при подключении к ПК определится и “попросит” установить двайвер.

2. На что ему вежливо ответим выбрав папку со скаченными и разархивированными двайверами.

3. Драйвера успешно установятся, если схема собранна верно и МК тоже прошит верно.

4. В диспетчере устройств определится программатор как: LibUSB-Win32 Device.Радуемся, и тестируем )

Проверка работоспособности программатора

1. В качестве програмки использовал avrdude в оболочке Sinaprog1.5.5.10.
Можно использовать и приложенное к архиву оболочку USBASP_AVRDUDE_PROGДля проверки доступа к Attiny13A привожу пошагово такую инструкцию. Контроллер опознан, можно заливать прошивку в Attiny13A .

Необходимые данные для повторения устройства находятся в этом архиве:
Прошивка, программа, печатка, драйвер

Всем удачи!

Источник: https://www.drive2.ru/c/398036/

USBASP ISP программатор v2.0 для AVR

Описание

USBasp ISP (внутрисхемный) программатор для микроконтроллеров AVR Atmel. Программатор содержит единственную микросхему микроконтроллер Atmel ATmega8. USB интерфейс программатора реализован программно.

Характеристики:

  • Поддерживаемые операционные системы Linux, Mac OS и Windows
  • Микросхема ATmega8A AU
  • Кварц 12,000 МГц
  • Скорость программирования до 5 kBytes / сек
  • Автоматическое управление скоростью
  • Самовосстанавливающийся предохранитель с порогом 500mA для защиты USB компьютера
  • Габариты 65×20мм
  • коннектор папа 10pin с шагом 2.54мм

Разводка:

  • 1 MOSI
  • 3 NC
  • 5 /RESET
  • 7 SCK
  • 9 MISO
  • 2 +5V
  • 4,6,8,10 GND

Индикация

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

Перемычки

  • JP1 — POWER Выбор напряжения на выходе 5В / 3,3В
  • JP2 — SERVICE Обновление прошивки
  • JP3 — SLOW Программирование на низких скоростях

Поддерживаемые программатором микроконтроллеры

Серии AT, ATMega, ATTiny семейства AVR

Установка драйвера для программатора под Windows

С сайта разработчика USBasp программатора Thomas Fischl скачайте usbasp-windriver драйвер для Windows. Распакуйте архив. Подключите ваш USBasp программатор через USB порт к компьютеру. Установите драйвер. В диспетчере устройств убедитесь что USBasp устройство установлено.

В процессе установки драйвера для программатора под  Windows 7, 8, 10 вы можете получить следующее системное сообщение:

Windows encountered a problem installing the driver software for your device.

В случае проблем с установкой драйвера для программатора под Windows 7, 8, 10 следуйте следующей инструкции.

Или, нажмите кнопки Win+I, в окне Windows появится правая панель:

Удерживая правый Shift, кликните мышкой по кнопке Power

Не отпуская правый Shift, кликните по кнопке Restart.

ИЛИ, Откройте панель настроек компьютера Settings.

Нажмите кнопку Update & security.

Выберите вкладку Recovery

и нажмите кнопку Restart now.

В процессе перезагрузки компьютера вам предстоит выбрать несколько опций.

Выберите Troubleshoot.

Далее, Advanced options

За тем, Startup Settings

и, наконец, нажмите кнопку Restart.

Все ранее описанные действия не имеют ни какого смысла, мы их проделали с одной лишь целью, что бы Windows 7, 8, 10 в процессе загрузки позволила нам отключить проверку подписи драйверов и позволила установить драйверы для программатора, содержащие неправильные подписи.

Нажмите на клавиатуре кнопку F7 для Disable driver singature enforcement.

Когда windows 7, 8, 10 загрузится, можно будет, без проблем, устанавливать драйверы для программатора.

Вставьте ваш программатор в USB разъем. Откройте диспетчер устройств (Devise Manager). Кликните правой кнопкой мыши по значку USBasp и в выпадающем меню выберите Обновить драйвер (Update Driver Software…).

В окне Update Driver Software – USBasp выберите кнопку Browse my computer for driver software, для самостоятельного выбора папки, содержащей драйверы для программатора.

В следующем окне укажите папку, содержащую драйверы для USB asp программатора.

Далее, нажмите кнопку Install this driver software anyway.

И все, драйвер программатора установлен в вашей Windows 7, 8, 10 системе.

Как работать с программатором USBASP в среде разработки Ардуино.

Пример использования программатора с программой avrdude под Windows

avrdude -pattiny13 -cusbasp avrdude: warning: cannot set sck period. please check for usbasp firmware update . avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x1e9007 avrdude: safemode: Fuses OK avrdude done. Thank you.

Под Linux драйверы не требуются.

Подключите USBasp программатор через USB порт к компьютеру. В командной строке выполните:

lsusb Bus 001 Device 007: ID 16c0:05dc VOTI shared ID for use with libusb

Пример использования с avrdude под Linux

sudo avrdude -p attiny13 -c usbasp avrdude: warning: cannot set sck period. please check for usbasp firmware update. avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9007 avrdude: safemode: Fuses OK (E:FF, H:FF, L:7A) avrdude done. Thank you.

Для работы с USBasp программатором не под суперпользователем необходимо инсталлировать правила 99-USBasp.rules. USBasp.rules можно найти в архиве с драйверами для windows, схемами и прошивками для программатора на сайте разработчика USBasp программатора Thomas Fischl

Прежде чем запускать файл install_rule, посмотрите членом каких групп вы являетесь:

groups

Затем отредактируйте файл 99-USBasp.rules:

# USBasp – USB programmer for Atmel AVR controllers # Copy this file to /etc/udev/rules.d so # SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, SYSFS{idVendor}==”16c0″, SYSFS{idProduct}==”05dc”, MODE=”0666″ SUBSYSTEMS==”usb”, ATTRS{idVendor}==”16c0″, ATTRS{idProduct}==”05dc”, GROUP=”plugdev”, MODE=”0666″

добавив в файл 99-USBasp.rules свою группу.

После инсталляции правил перезагрузите все правила:

sudo restart udev

Источник: http://sportltd.ru/index.php/programmers/usb-isp-v2-detail

Программатор USBasp для AVR контроллеров Arduino | Каталог самоделок

USBasp S51&AVR — простой внутрисхемный USB-программатор для контроллеров серии S51 фирмы Atmel: AT89S51, AT89S52, AT89S53, AT89S8252.

У любителей Arduino приборчик USBasp тоже пользуется спросом, так как может загружать скетчи и прошивать ядро микроконтроллеров AVR серии: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM, а также без проблем работает с программным обеспечением Arduino IDE.

Мозгом загрузчика USBasp служит микроконтроллер ATmega8. Так же есть варианты с ATmega88 или ATmega48. Собран он из минимума деталей, USB контроллер не нужен, поскольку имеется программный USB-драйвер.

Возможности программатора USBasp

  1. Совместим с Windows, Linux и Mac OS X.
  2. Поддержка контроллеров S51 и AVR.
  3. Питание от USB порта +5В, дополнительное не требуется.
  4. Прошивка контроллеров работающих от 5 или 3.3 В.

  5. Скорость передачи до 5 Кбайт/сек.
  6. Переключение SCK-джампером для прошивки низкоскоростных чипов < 1.5МГц.
  7. Сбрасываемый предохранитель от короткого замыкания.
  8. Стандартный IDC 10PIN интерфейс.

Драйвер к программатору USBasp

Windows USBasp-win-driver-x86-x64-ia64-v1.2.4

Программное обеспечение для USBasp

Самодельный USBasp

Обвязка микроконтроллера в USBasp S51&AVR настолько проста, что достаточно легко собрать самому миниатюрный программатор, который можно будет везде носить с собой как флешку.

Для самоделки можно выбрать управляющий микроконтроллер ATmega8, ATmega48 или ATvega88, но только без всяких индексов L, PU. Так как нам потребуется рабочая частота свыше 8 Мгц.

Схема программатора

Устройство, собранное по этой схеме предназначено только для программирования 5-вольтовых контроллеров!

Красный светодиод показывает, что устройство подключено к USB-питанию.

Зеленый светодиод мигает, когда идет обращение к прошиваемому микроконтроллеру.

Элементы для сборки USBasp:

  • R1, R2 — 68 Ом;
  • R3 — 2.2 кОм;
  • R4, R5, R7 — 1 кОм;
  • R6 — 10 кОм;
  • C1 — электролит на 4.7 мкФ;
  • С3 — керамический конденсатор 100 нФ;
  • C4, C5 — керамические, неполярные конденсаторы 22пФ;
  • LED1 — красный светодиод на 20мА;
  • LED2 — зеленый светодиод на 20мА;
  • D1, D2 — стабилитроны на 3,6В;
  • IC1 — микроконтроллер ATmega8, ATmega48, ATmega88, без индексов L, PU;
  • Q1 — кварц 12 МГц, корпус HC49-S;
  • X1 — разъем USB, тип B;
  • X2 — разъем IDC-10;

Уставки джамперов

J1 — питание от USB-гнезда, либо внешнего источника.

J2 — установленная перемычка позволяет перепрошивать программатор.

J3 — установленная перемычка снижает частоту SCK синхросигнала с 375 кГц до 8 кГц для прошивки низкоскоростных чипов < 1.5 МГц.

Джампер J1 следует снимать при первом подключении к ПК собранного и прошитого программатора, поскольку компьютер должен определить новое устройство и установить драйвер для него.

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

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

Для работы программатора потребуется на Windows установить драйвер. Последнюю версию которого можно найти на сайте USBasp.

На операционные системы Linux и MacOS драйвер не требуется.

Вставьте собранный программатор в гнездо USB. Операционная система найдет новое оборудование и предложит установить драйвер для него. Выберите пункт: «Установка из указанного места», найдите папку со скачанным драйвером. Начните установку драйвера на Windows.

Прошивка самодельного USBasp

Чтобы собранное устройство заработало, его микроконтроллер ATmega, необходимо предварительно прошить.

Запускайте программное обеспечение, например, AVRDUDE и не забудьте проверить правильность установки джампера J2.

Загружайте прошивку: «bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex»

«bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex».

Источник: https://volt-index.ru/high-tech/programmator-usbasp-dlya-avr-kontrollerov-arduino.html

Программатор USBASP

Источник: http://AVRproject.ru/publ/instrument/usbasp_in_bascom/3-1-0-35

USB программатор AVR Atmel USBASP

2014-11-08 в 22:17

Появилась необходимость у и меня заняться программированием микроконтроллеров AVR. Схема было много. Вариантов и примеров тоже не мало.

Большинство программатор AVR что я встречал были построены вот по этой схеме:

Было принято решение собрать именно по этой схеме. Но тут есть одно но, чтобы сделать программатор нам нужен программатор. Сначала я собрал программатор Громова вот по этой схеме:

Собрал. Поставил разъем ISP типа BH-10. Монтаж навесной. Влез в корпус DB-9 без проблем. Для программирование контроллеров в DIP корпусе необходимо сделать плату в панельками под разные типа контроллеров с разным количеством ножек. Тут попалась на глаза печатная плата для этого дела. Скачать ее можно здесь.

Программа для работы с таким программатором называется Uniprof и скачать ее можно здесь. Теперь мы готовы зашить наш контроллер ATMEGA8.

Вставляем контроллер на плату в подходящую панельку, на программатор Громова подаем 5 Вольт, запускаем программу Uniprof и сразу же должен определиться тип нашего МК. Теперь нам нужен файл прошивки который можно скачать здесь.

В программе Uniprof открываем файл прошивки и жмем кнопку Prog с красной стрелкой. Теперь зашиваем фьюзы. Для этого жмем кнопку с надписью FUSE. Там уже выставляем все как на этом скрине:

Как выставили жмем Write в каждой колонке. Правда программа не покажет, записали или нет, но если мы нажали, значит они записались. Теперь приступим к изготовлению самого программатора USBASP. Вот так выглядит печатная плата и скачать ее можно здесь.

Из платы был исключена перемычка Jmp1 и Jmp3. Jmp2 нужен для внутрисхемного программирования и при использовании платы что мы видели в начале статьи, чтобы подать на прошиваемый контроллер 5 вольт.

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

Теперь у нас есть USB программатор для микроконтроллеров Atmel.

Так же есть замена программатора Громова. Это программатор AVR на пяти проводках. Подключается он к LPT порту. Он используется если не заработал программатор Громова. Вот его схема:

Резисторы используются от 100 дом 150 Ом. Они нужны лишь для защиты порта от случайных замыканий. В остальном все так же. Ставим разъем ISP 10 штырьковый и подключаем к плате с панельками, подаем питание.

Используется так же программа Uniprof. Теперь нам необходимо настроить порты в программе. Переключаем режим работы с LPT портом внизу справа и у нас появляется кнопка на панели меню LPT pins.

Делаем все как показано на скрине.

Вот и все. Будут вопросы, пишите.
UPD 06.09.15
Рекомендую обновлять прошивку и драйвер для ПК загружая с офф. сайта разработчика.
 Поможет если имеются какие-либо ошибки в работе. Там же появился драйвер и для Windows 8.1.

Источник: http://TehnoPage.ru/usbasp

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}
");let k=document.querySelector(".flat_pm_modal[data-id-modal=\""+a.ID+"\"]");if(-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(k,d):jQuery(k).html(b+d),"px"==a.how.popup.px_s)e.bind(h,()=>{e.scrollTop()>a.how.popup.after&&(e.unbind(h),f.unbind(i),j())}),void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{e.unbind(h),f.unbind(i),j()});else{let b=setTimeout(()=>{f.unbind(i),j()},1e3*a.how.popup.after);void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{clearTimeout(b),f.unbind(i),j()})}f.on("click",".flat_pm_modal .flat_pm_crs",()=>{jQuery.arcticmodal("close")})}if(void 0!==a.how.outgoing){let b,c="0"==a.how.outgoing.indent?"":" style=\"bottom:"+a.how.outgoing.indent+"px\"",e="true"==a.how.outgoing.cross?"":"",f=jQuery(window),g="scroll.out"+a.ID,h=void 0===flatPM_getCookie("flat_out_"+a.ID+"_mb")||"false"!=flatPM_getCookie("flat_out_"+a.ID+"_mb"),i=document.createElement("div"),j=jQuery("body"),k=()=>{void 0!==a.how.outgoing.cookie&&"false"==a.how.outgoing.cookie&&h&&(jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show"),j.on("click",".flat_pm_out[data-id-out=\""+a.ID+"\"] .flat_pm_crs",function(){flatPM_setCookie("flat_out_"+a.ID+"_mb",!1)})),(void 0===a.how.outgoing.cookie||"false"!=a.how.outgoing.cookie)&&jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show")};switch(a.how.outgoing.whence){case"1":b="top";break;case"2":b="bottom";break;case"3":b="left";break;case"4":b="right";}jQuery("body > *").eq(0).before("
"+e+"
");let m=document.querySelector(".flat_pm_out[data-id-out=\""+a.ID+"\"]");-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(m,d):jQuery(m).html(e+d),"px"==a.how.outgoing.px_s?f.bind(g,()=>{f.scrollTop()>a.how.outgoing.after&&(f.unbind(g),k())}):setTimeout(()=>{k()},1e3*a.how.outgoing.after),j.on("click",".flat_pm_out .flat_pm_crs",function(){jQuery(this).parent().removeClass("show").addClass("closed")})}countMode&&(flat_count["block_"+a.ID]={},flat_count["block_"+a.ID].count=1,flat_count["block_"+a.ID].click=0,flat_count["block_"+a.ID].id=a.ID)}catch(a){console.warn(a)}}function flatPM_start(){let a=flat_pm_arr.length;if(0==a)return flat_pm_arr=[],void jQuery(".flat_pm_start, .flat_pm_end").remove();flat_body=flat_body||jQuery("body"),!flat_counter&&countMode&&(flat_counter=!0,flat_body.on("click","[data-flat-id]",function(){let a=jQuery(this),b=a.attr("data-flat-id");flat_count["block_"+b].click++}),flat_body.on("mouseenter","[data-flat-id] iframe",function(){let a=jQuery(this),b=a.closest("[data-flat-id]").attr("data-flat-id");flat_iframe=b}).on("mouseleave","[data-flat-id] iframe",function(){flat_iframe=-1}),jQuery(window).on("beforeunload",()=>{jQuery.isEmptyObject(flat_count)||jQuery.ajax({async:!1,type:"POST",url:ajaxUrlFlatPM,dataType:"json",data:{action:"flat_pm_ajax",data_me:{method:"flat_pm_block_counter",arr:flat_count}}})}).on("blur",()=>{-1!=flat_iframe&&flat_count["block_"+flat_iframe].click++})),flat_userVars.init();for(let b=0;bflat_userVars.textlen||void 0!==a.chapter_sub&&a.chapter_subflat_userVars.titlelen||void 0!==a.title_sub&&a.title_subc&&cc&&c>d&&(b=flatPM_addDays(b,-1)),b>e||cd||c-1!=flat_userVars.referer.indexOf(a))||void 0!==a.referer.referer_disabled&&-1!=a.referer.referer_disabled.findIndex(a=>-1!=flat_userVars.referer.indexOf(a)))&&(c=!0),c||void 0===a.browser||(void 0===a.browser.browser_enabled||-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser))&&(void 0===a.browser.browser_disabled||-1==a.browser.browser_disabled.indexOf(flat_userVars.browser)))){if(c&&void 0!==a.browser&&void 0!==a.browser.browser_enabled&&-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser)&&(c=!1),!c&&(void 0!==a.geo||void 0!==a.role)&&(""==flat_userVars.ccode||""==flat_userVars.country||""==flat_userVars.city||""==flat_userVars.role)){flat_pm_then.push(a),flatPM_setWrap(a),flat_body.hasClass("flat_pm_block_geo_role")||(flat_body.addClass("flat_pm_block_geo_role"),flatPM_ajax("flat_pm_block_geo_role")),c=!0}c||(flatPM_setWrap(a),flatPM_next(a))}}}let b=jQuery(".flatPM_sticky");b.each(function(){let a=jQuery(this),b=a.data("height")||350,c=a.data("top");a.wrap("
");let d=a.parent()[0];flatPM_sticky(this,d,c)}),debugMode||countMode||jQuery("[data-flat-id]:not([data-id-out]):not([data-id-modal])").contents().unwrap(),flat_pm_arr=[],jQuery(".flat_pm_start, .flat_pm_end").remove()}

Примерно года два назад я заинтересовался программированием микроконтроллеров AVR.

Изучение шло не слишком быстро, так как тема достаточно сложная, но все-таки, мной были собраны и доведены до ума несколько устройств в корпусах, с применением микроконтроллеров семейства Tiny.

За это время успел обзавестись двумя программаторами, один собрал сам, это простой и всем известный программатор Громова, второй заказал с Али экспресс, по цене 3 доллара это программатор USBISP. 

Для того чтобы найти и заказать его на Али-экспресс, достаточно набрать в строчке поиска USBASP USBISP. Этот программатор шел сразу в алюминиевом корпусе, аналогичном корпусе флешки, в комплекте с ним был шлейф для программирования 10 Pin. Про перепрошивку его в полноценный USBASP мы и поговорим в этой статье.

Для чего это делать и в чем отличия этих программаторов, USBASP и USBISP ? Дело в том, что Китайский программатор работает только со своей оболочкой, Prog ISP, и не поддерживается, в отличие от USBASP программой AVR Studio.

Несмотря на то, что Prog ISP оболочка, идет на английском языке, пользоваться ей менее удобно, чем оболочкой для USBASP Khazama. 

Для USBASP существуют и другие графические оболочки, помимо Khazama работающие с консольным AVR DUDE. От себя скажу, что разница в удобстве пользования после перепрошивки сильно заметна.

Например, в той же Prog ISP неудобное выставление фьюзов, с этим у Khazama полный порядок.

Можно выбирать запись конфигурации фьюзов для МК по умолчанию одним кликом есть возможность выставления фьюзов, как галочками, так и из выпадающего списка. 

Также присутствует функция Auto programm,  в которой можно установить порядок действий, запускаемых впоследствии в один клик. Например, стирание файла, последующая запись и верификация. Есть и другие функции на выбор. 

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

На контакты разъема программирования с обратной стороны будет наклеена резиновая изоляционная прокладка, отклеиваем её, она нам будет мешать при пайке. При сборке в корпус не забываем приклеить её обратно, во избежание замыкания корпуса с разъемом для программирования. Далее переворачиваем и смотрим на программатор с обратной стороны.

Вы должны увидеть в зависимости от разводки вашей платы следующее:

Но возможно существуют и другие варианты разводки программаторов у китайцев. Что нам требуется здесь сделать? Требуется удалить припой с двух или трех контактов на плате программатора, в зависимости от разводки вашей платы. По информации с того сайта по которой я перепрошивал свой программатор, была представлена следующая разводка:

Здесь, как мы видим на рисунке, требуется удалить припой с трех контактов, а также поставить (запаять) проволочную перемычку, чтобы перевести программатор в режим самопрограммирования.

Я воспользовался вместо кусочка провода, выводом, откушенным от резистора. И разумеется, также удалил припой с контактов на программаторе, обозначенных буквами А и В. Только в моем случае таких контактов было два.

Как мы видим на фото выше, перемычка из вывода резистора уже запаяна мной к контактам самопрограммирования программатора UP. На фото ниже можно убедиться в этом. Заодно мы можем видеть, что на контактах А и В отсутствует припой.

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

В чем и нужно убедиться, прозвонив мультиметром в режиме звуковой прозвонки.

Для использования совместно с программаторами  USBISP и USBASP мной был сделан переходник, который оказался удобен для программирования микроконтроллеров при отлаживании на цанговых макетных платах, и который я использовал для программирования микроконтроллера этого программатора:

К чему я писал в начале статьи о программаторе Громова? К тому, что для прошивки нам потребуется любой другой программатор. Можно точно такой же USBISP. То есть, если у вас нет второго программатора, о перепрошивке USBISP в USBASP можно забыть.

А можно спаять по такому случаю программатор Громова, и прошить им микроконтроллер этого программатора. Схема программатора Громова простая, и детали необходимые для сборки, довольно дешевые. Допустим, у вас есть второй программатор.

Тогда нам нужно подключить свой программатор к шлейфу программатора USBISP в соответствии с рапиновкой разъема. Её мы можем видеть на следующем рисунке:

Контакты в шлейфе идут одинаково с обоих концов. Нам потребуются соединить программаторы между собой, аналогично обычному прошиванию микроконтроллера. То есть выводы VCC, GND, MISO, MOSI, RESET и SCK обоих программаторов нужно соединить.

Дополнительное питание, если прошиваем через USB программатор, USBISP, USBASP или другой с которого приходит питание с USB на прошиваемый микроконтроллер, можно не подавать. Если прошиваем через программатор Громова, то питание нужно подать.

После прошивания выпаиваем перемычку, замыкаем те два или три контакта, с которых мы удаляли припой капелькой припоя, и, не собирая в корпус, подключаем наш новоиспеченный программатор USBASP к USB порту компьютера. Операционная система должна запросить драйвера. Появится следующее окно:

Соглашаемся с установкой и указываем вручную путь к папке libusb_0.1.12.1, которую можно будет скачать в архиве в конце статьи. В ней находится драйвер для USBASP. После установки в системе появится устройство USBASP:

После того, как убедимся, что все заработало, программатор определился, приклеиваем изоляционную резинку назад на место, и собираем программатор.

В одной из статей про оболочку Khazama, было написано, что иногда Khazama работает некорректно без установки дополнительной программы – фильтра libusb-win32-devel-filter-1.2.6.0. Так ли это или нет – не знаю, у меня эта программа была установлена.

Скачать её также можно будет в архиве в конце статьи. Сначала Khazama действительно отказывалась работать с моим программатором. Погуглив по этому вопросу на различных форумах, нашел информацию, что нужно установить частоту в программе 187.5 килогерц, что и сделал.

Проблема сразу пропала. Эта функция есть только в свежих версиях Khazama, в частности Khazama AVR Programmer 1.7. Скачать её также можно в архиве в конце статьи.

Как уже писал выше про установку фьюзов, здесь с этим все отлично, можно, как выбирать из ниспадающего списка, так и устанавливать вручную галочками. 

Я прошивал Tiny-2313, но эта оболочка поддерживает, помимо этого микроконтроллера, еще множество других типов МК. После запуска программы нам нужно выбрать наш микроконтроллер из списка, у меня как мы видим на скрине, выбран Tiny2313.

Также в ней есть функция размещать окно поверх остальных, это расположенная справа с краю пиктограмма канцелярской кнопки. Прошивка для микроконтроллера программатора MEGA-8, HEX файл, также прикреплена в общем архиве. Фьюзы при прошивке изменять не нужно.

Желаю всем удачной прошивки! Автор AKV.

  Решил заменить свою рабочую лошадку 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-й камни постоянно обновляются, и автор вроде как планирует добавить в функционал внутрисхемный отладчик. Прошивку под свой тип контроллера можно скачать ниже:

Прошивка для Atmega48

Прошивка для Atmega8

Прошивка для Atmega88

Для работы устройства необходимо настроить фьюзы на внешний кварц 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:

Архив с печатной платой и прошивками

Драйвер для win

Программа Khazama AVR Programmer 1.6.2 

Новая версия программера Khazama 1.7 c поддержкой программного изменения частоты прошивания

   

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

Пока в наличии имеются готовые печатные платы для этого программатора или можете приобрести уже готовый к работе программатор.

 
Предложение ограничено, спешите 😉 Все программаторы успешно обрели своих владельцев, а тем временем обдумываю о необходимость заново сделать заказ на производство печатных плат. Надо ли?

UPD 26.01.13

Если появятся желающие приобрести программатор USBASP на заводской плате, записывайтесь в очередь;) и делайте предзаказ! Условия на форуме http://avrproject.ru/forum/11-69-1#1307