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

USBASP: USB AVR программатор для микроконтроллеров ATmega, ATtiny

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

Сегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования (интерфейс ISP) через USB-порт компьютера. В качестве программатора мы будем использовать очень простой и популярный программатор USBASP, а в качестве программы — AVRdude_Prog V3.3, которая предназначена для программирования МК AVR.

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

Для того, чтобы запрограммировать микроконтроллер необходимо иметь две вещи:
— программатор
— соответствующее программное обеспечение для записи данных в МК
Одним из наиболее простых, популярных и миниатюрных программаторов для AVR является USBASP программатор, созданный немцем Томасом Фишлем.
Имеется много разных схемотехнических решений этого программатора, программатор можно собрать самому или купить (стоимость — 2-3 доллара). При самостоятельной сборке следует учитывать, что собранный программатор необходимо будет прошить сторонним программатором.

Мы рассмотрим наиболее «навороченную» версию программатора:


Характеристики программатора:
— работает с различными операционными системами — Linux, Mac OC, Windows (для операционной системы Windows, для работы программатора, необходимо установить драйвера — архив в конце статьи)
— скорость программирования до (скорость программирования можно устанавливать самому, к примеру в AVRDUDE_PROG) 375 (5) кб/сек
— имеет 10-контактный интерфейс ISP (соответствует стандарту ICSP с 10-контактной распиновкой)
— поддерживает два напряжения питания программатора — 5В и 3,3В (не все USB порты ПК работают при 5 Вольтах)
— питается от порта USB компьютера, имеет встроенную защиту по току (самовосстанавливающийся предохранитель на 500 мА)

Назначение джамперов:
разъем JP1 — предназначен для перепрошивки микроконтроллера программатора (для перепрошивки — необходимо замкнуть контакты)
разъем JP2 — напряжение питания программатора — 5 Вольт или 3,3 Вольта (по умолчанию — 5 Вольт, как на фотографии). Программируемый микроконтроллер, или конструкцию, в которой он установлен, при токе потребления 300-400 мА можно запитать с программатора, для этого на разъеме есть выход +5В (VCC).
разъем JP3 — определяет частоту тактирования данных SCK: разомкнутый — высокая частота (375 кГц), замкнутый — низкая частота (8 кГц)
Подробнее о разъеме JP3
Джампер JP3 предназначен для уменьшения скорости записи данных в микроконтроллер. Если у микроконтроллера установлена частота тактирования более 1,5 мГц — джампер может быть разомкнут, при этом скорость программирования высокая. Если тактовая частота менее 1,5 мГц — необходимо закоротить выводы джампера — снизить скорость программирования, иначе запрограммировать микроконтроллер не получится. К примеру, если мы будем программировать микроконтроллер ATmega8 (в принципе, практически все МК AVR настроены на тактовую частоту 1 мГц по умолчанию), у которого частота тактирования по умолчанию 1 мГц, необходимо будет замкнуть выводы джампера (как на фотографии). Лучше, наверное, держать этот джампер постоянно замкнутым, чтобы, забыв о его существовании, не мучиться вопросом — почему микроконтроллер не прошивается.

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

Программатор поддерживается следующим программным обеспечением:
— AVRdude
— AVRdude_Prog
— Bascom-AVR
— Khazama AVR Prog
— eXtreme Burner AVR

Работать с таким программатором очень просто — соединить соответствующие выводы программатора с микроконтроллером, подключить к USB-порту компьютера — программатор готов к работе.
Распиновка 10-контактного кабеля программатора USBASP :


1 — MOSI — выход данных для последовательного программирования
2 — VCC — выход +5 (+3,3) Вольт для питания программируемого микроконтроллера или программируемой платы от порта USB компьютера (максимальный ток 200 мА — чтобы не сжечь порт USB)
3 — NC — не используется
4 — GND — общий провод (минус питания)
5 — RST — подключается к выводу RESET микроконтроллера
6 — GND
7 — SCK — выход тактирования данных
8 — GND
9 — MISO — вход данных для последовательного программирования
10 — GND

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

Установка драйвера для программатора USBASB очень проста:
— подсоедините программатор к USB порту компьютера, при этом в диспетчере устройств появится новое устройство «USBasp» с желтым треугольником и восклицательным знаком внутри, что означает — не установлены драйвера
— скачайте и разархивируйте файл «USBasp-win-driver-x86-x64-ia64-v3.0.7»
— запустите файл «InstallDriver» — будут автоматически установлены драйвера для программатора
— проверьте диспетчер устройств — желтый треугольник должен исчезнуть (если нет, щелкните правой кнопкой по устройству «USBasp» и выберите пункт «Обновить»
— программатор готов к работе

FUSE-биты при программировании USBASP AVR:

Архив «usbasp.2011-05-28» содержит папки:
= BIN:
— win-driver — драйвера для программатора
— firmware — прошивка для микроконтроллеров Mega8, Mega88, Mega48
= circuit — схема простого программатора в PDF и Cadsoft Eagle

При перепрошивке китайского программатора рекомендую установить FUSE-бит CKOPT. CKOPT взаимосвязан с предельной тактовой частотой. По умолчанию CKOPT сброшен и стабильная работа микроконтроллера программатора при применение кварцевого резонатора возможна только до частоты 8 МГц ( а МК программатора работает на частоте 12 МГц). Установка FUSE-бита CKOPT увеличивает максимальную частоту до 16 МГц. Китайцы не трогают этот FUSE-бит, что довольно часто приводит к отказу программатора (обычно система не определяет программатор).

Архив «USBasp-win-driver-x86-x64-ia64-v3.0.7» предназначен для установки драйверов, как указано в статье

usbasp.2011-05-28 (518,9 KiB, 20 071 hits)

Скачать «USBasp-win-driver-x86-x64-ia64-v3.0.7» (10,9 MiB, 36 481 hits)

Описанный в статье USBASP программатор, прошитый последней версией программы, проверенный в работе, с установленными джамперами и перемычками, вы можете приобрести в интернет-магазине «МирМК-SHOP»
Перейти на страницу магазина

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

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

(32 голосов, оценка: 4,97 из 5)

Программирование микроконтроллеров AVR программатором USBASP

Рассмотрим легкий и неразорительный способ записать программу в любой микроконтроллер (МК) серии AVR от Atmel. Нам понадобятся программатор USBASP и программное обеспечение для прошивания, также если на вашей плате установлен 6-пиновый разъём, вам потребуется переходник с 10 выводов на 6. Программатор USBASP, созданный немцем Томасом Фишлем, является очень распространённым, наиболее дешёвым и простым среди других программаторов для МК AVR. Купить его можно в каком-нибудь радиомагазине вашего города (стоимость — 1,5-3$).

Рисунок 1 — подключённый программатор (красная плата)

Программатор USBASP
Данный программатор соединяется через USB штекер к компьютеру и через шлейф к прошиваемому микроконтроллеру или к конструкции, в которой находится микроконтроллер. Если в первом случае связь устанавливается через последовательный интерфейс USB для обмена информацией, то во втором — через SPI-интерфейс последовательного программирования. Стоит сказать, что SPI-интерфейс последовательного программирования, имеющийся во всех МК AVR, и аппаратный SPI для обмена информации, — это разные составные микроконтроллера, что можно наглядно увидеть на рисунке 2. В некоторых МК у них даже могут не совпадать выводы. К тому же, полнофункциональный SPI-интерфейс может вообще отсутствовать, как, к примеру, в ATtiny13.

Рисунок 2 — общая структурная схема микроконтроллеров AVR

Существует множество версий программатора USBASP. Его можно собрать и самому.
Распространены две версии программатора: USBASP 2.0 и USBASP 3.0
Рассмотрим USBASP на примере версии 3.0, как наиболее продвинутой (Рис. 3).

Особенности программатора USBASP

  • Поддерживается операционными системами Windows, Linux и Mac OC;
  • Поддерживает напряжение питания 5 В и 3,3 В (не все USB-порты выдают 5 В);
  • скорость записи до 375 кб/сек (скорость программирования можно настраивать самому в некотором ПО);
  • питается от ПК;

Рисунок 3 —программатора USBASP 3.0

Организация USBASP 3.0

На плате программатора присутствует не много радиокомпонентов, перечислим основные:

  • МК ATmega8A, имеющий 8 кб флеш-памяти и 1 кб ОЗУ (SRAM);
  • кварцевый резонатор на 12 МГц. Аппаратный USB интерфейс в этом МК отсутствует, но присутствует программный USB, и из-за особенностей последнего МК работает на частоте 12 МГц;
  • 10-контактный разъём (двухрядный штырьковый разъём типа IDC);
  • LED1 и LED2 индикатор включения и индикатор программирования соответственно;
  • F1 — самовосстанавливающийся предохранитель на 500мА;
  • JP1 — джампер для выбора напряжения: 5 В и 3,3 В в зависимости от позиции перемычки (по умолчанию 5 В). Если ваша конструкция потребляет не более 200 мА (!), то её можно запитать с программатора (вывод VCC на разъёме программатора). Желательно питать устройство от ПК, в этом случае «земля» вашего устройства будет соединена с корпусом ПК и можно будет безопасно подключать и отключать разъем программирующего адаптера;
  • JP2 — необходимо закоротить, если хотим перепрошить МК программатора;
  • JP3 — выбор частоты тактирования линии SCK (разомкнут — частота 375 кГц, замкнут — 8 кГц). Если более подробно, то данный джампер предназначен для уменьшения скорости записи данных в прошиваемый МК. Это требуется, когда частота тактирования SPI-интерфейса последовательного программирования МК меньше частоты тактирования программатора, то есть меньше 375 кГц. Если в такой ситуации не замкнуть контакты JP3, то МК не прошьётся. Определим, необходимо это в вашем случае или нет. Для примера возьмём МК ATtiny13, который с завода поставляется настроенным на тактовую частоту 1,2 МГц. SPI МК AVR предполагает максимальную частоту тактирования равной ¼ от частоты тактового сигнала МК. Получаем частоту тактирования SPI равной 1,2/4=0,3 (МГц)=300 (кГц). Выходит, что в данном случае замыкание контактов JP3 необходимо.
Читайте также  Варианты света на натяжном потолке

Однако при использовании AVRDUDE_PROG перемычку можем не трогать.

Программатор поддерживается следующим программным обеспечением:

  • AVRdude;
  • AVRdude_Prog;
  • Khazama AVR Prog;
  • Bascom-AVR;
  • eXtreme Burner AVR.

Подключение и распиновка USBASP

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

Рисунок 4 — пример соединения шлейфа с программатором и распиновка

Рисунок 5 — обозначения проводов

  • MOSI — выход информационных данных;
  • MISO — вход информационных данных;
  • SCK — линия для подачи тактовых импульсов (синхронизация данных);
  • RESET — подключается к выводу RESET программируемого микроконтроллера;
  • VCC — вывод для подачи питания 5 или 3,3 В на прошиваемый МК (не более 200 мА, чтобы не сжечь USB-порт);
  • GND — земля (минус);
  • NC — не используется.

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

Установим драйвера, чтобы можно было пользоваться программатором. Раньше драйвер для USBASP был основан на библиотеке libusb-win32. Затем, после истечения срока сертификата, перевели на новую библиотеку libusbK. Поэтому при установке драйвера из нашего архива не придётся использовать программу Zadig или прибегать к другим манипуляциям с сертификатом. Драйвер тестировался на Windows XP, 7, 8, 10 (32-х и 64-х разрядных версиях).

Процесс установки драйверов:

  • Подключите программатор к ПК, при этом в диспетчере устройств появится новое устройство USBasp с жёлтым значком, что осведомляет об отсутствии драйверов;
  • Скачайте под статьёй архив “USBasp_software”. Найдите папку “usbasp-win-driver-x86-x64-v3.0.7” и запустите “InstallDriver.exe”;
  • Проверьте диспетчер устройств — желтый значок должен исчезнуть (если нет, щелкните правой кнопкой по устройству «USBasp» и выберите пункт «Обновить»);

Программатор готов к работе.

Прошивание программы и FUSE-битов в микроконтроллер

Рисунок 6 — стартовое окно программы AVRDUDE_PROG 3.3

Цепочка действий для записи программы в МК:

  • Выбираем программатор USBASP (выставлено по умолчанию);
  • Кликаем на программируемый МК в списке;
  • Считываем калибровочные ячейки генератора для проверки связи: если появится окно с надписью “Калибровочные ячейки генератора считаны!”, значит, связь с программируемым МК установлена;
  • Стираем на всякий случай флеш-память микроконтроллера;
  • Указываем путь к нашему файлу прошивки (формат HEX);
  • Прошиваем. После благополучной прошивки возникнет сообщение как на рисунке 7.

Рисунок 7 — сообщение об успешной прошивки

Рисунок 8 — вкладка Fuses программы AVRDUDE_PROG 3.3

У каждого МК AVR свой набор FUSE-битов. Настройка FUSE-битов, или, по-русски, конфигурационных битов, обладает извращенской логикой: “1” — это “0”, а “0” — это “1”. Поэтому при прямых FUSE-битах “0” будет означать запрограммированное состояние, а “1” — незапрограммированное.

В программе AVRDUDE_PROG можно без волнения прошивать МК, не трогая FUSE-биты, т.к. программа выставляет их заводские значения.

Кнопка “Программирование” на вкладке Fuses служит для прошивки FUSE-битов в МК. Если нажать “Чтение”, то узнаем какие значения установлены в FUSE-битах микроконтроллера в данный момент.

Автор: Лепешкин Алексей, г. Москва

Обзор программатора USBAsp v.2.0

Автор: Сергей · Опубликовано 11.07.2017 · Обновлено 13.04.2020

Сегодня расскажу, о недорогим и очень простом программаторе USBAsp v.2.0 для микроконтроллеров AVR (основанный на дизайне Томаса Фишла), с его помощью можно прошивать контроллеры AVR по интерфейсу ISP (не выпаивая его с платы), а самое главное, можно прошить загрузочный сектор на контроллерах Arduino.

Технические параметры

► Напряжение питания: 5 В, DC
► Интерфейс: USB 2.0
► Программирование/ чтение: Atmel (AVR)
► Габариты: 70 мм x 18 мм x 10 мм
► Поддержка операционных систем: Windows XP / 7 / 8 / 8.1 / 10.

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

Программатор 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 8/10

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

Так как, в операционной системе нету необходимого драйвера, в «Диспетчере устройств» появится устройство «USBAsp» с восклицательным знаком.

Скачиваем архив с цифровой подписью, разархивируем и запускаем «InstallDriver.exe»

Драйвер установлен, в «Диспетчере устройств» пропадет восклицательный знак с «USBAsp».

Установка драйвера на Windows XP и Windows 7 аналогичная, программатор готов к работе.

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

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

Читайте также  Параллельное соединение активного сопротивления и емкости

Далее, необходимо выбрать прошивку, в строке «Flash» нажимаем «. . .», переходим в папку «C:Program FilesArduinohardwarearduinoavrbootloadersatmega» и выбираем «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)

USBasp — USB программатор для микроконтроллеров Atmel AVR

USBasp — это внутрисхемный USB программатор для микроконтроллеров Atmel AVR . Данный программатор состоит из одного микроконтроллера AT m ega8 и небольшого количества пассивных элементов, поэтому он довольно компактный (70х20мм) и имеет элегантный дизайн.

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

Особенности программатора:

  • работает с несколькими платформами: Windows (XP, Vista и Windows 7), Linux и Mac OS X;
  • нет необходимости использовать дополнительные микроконтроллеры или SMD элементы;
  • скорость программирования до 5 кБ/сек;
  • SCK-джампер позволяет программировать низкоскоростные микроконтроллеры (

Указываем папку в которой лежат драйвера для USBasp программатора.

Нажмите кнопку «Далее» и начнется процесс установки.

После установки драйвера мастер оборудования завершит работу.

Установка драйвера для USBasp программатора на Windows Vista x64 и Windows 7:

1. Скачайте драйвер —

2. Вставьте USBASP в порт USB;

Система будет пытаться установить драйвер из Центра обновления Windows

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

Щелкните правой кнопкой мыши на устройстве и выберите пункт «Обновить драйвер»

В ответ на запрос «Как вы хотите найти драйвер», выберите «Выполнить поиск драйверов на этом компьютере»

Выберите папку, в которую вы распаковали файлы драйвера нажмите кнопку «Далее»

После чего, в окне появится красная полоса, которая предупреждает Вас сообщением «Windows не может проверить издателя этого программного драйвера»;

Нажмите кнопку «Установить программное обеспечение этого драйвера» и драйвер будет установлен.

Программы для работы с программатором:

Программисту представляется возможность работать с широким разнообразием микроконтроллеров Atmel AVR в том числе и ATMEGA8A, Atmega168a и различным программным обеспечением:

? AVRDUDE — поддерживается USBasp начиная с версии 5.2;

? BASCOM-AVR — поддерживается USBasp начиная с версии 1.11.9.6;

?Khazama AVR Programmer — Windows XP/Vista GUI приложение для USBasp и avrdude;

?eXtreme Burner — AVR — программа Windows GUI для USBasp.

В комплекте с программатором идет 10-контактный кабель, как показано на основной фотографии.

Распиновка 10-контактного кабеля

1 — MOSI (Выход данных для последовательного программирования)

2 — VTG +5V (Выход +5В, для питания программируемой платы от шины USB током до *200мА . )

3 — NC (Не используется)

4 — GROUND (Общий или минус питания)

5 — RESET (Подключается к выводу RESET микроконтроллера)

6 — GROUND (Общий или минус питания)

7 — SCK (Выход тактирования данных)

8 — GROUND (Общий или минус питания)

9 — MISO (Вход данных для последовательного программирования)

10 — GROUND (Общий или минус питания)

Джампер J2

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

Зеленый (желтый) светодиод «P” (POWER)— сигнализирует о том, что программатор находится в рабочем состоянии. Красный светодиод «F” (FIRMWARE) зажигается только когда идет процесс обмена данными с компьютером (запись либо считывание данных).

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

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five http://jquery2dotnet.com/ centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

USBasp простой в изготовлении USB программатор. Разработан для программирования микроконтроллеров семейства AVR фирмы Atmel. Для изготовления требуется всего один управляющий микроконтроллер ATmega8 или ATmega88 и небольшое количество радиодеталей.
Незначительным недостатком устройства есть потребность второго программатора (Программатор из 5 проводков или Программатор Громова), для прошивки управляющего микроконтроллера. Для работы программатору требуется установка драйверов, которые поддерживаются всеми версиями Windows 32-64, Linux, Mac OS X.
Программатор поддерживает работу с программами: Khazama AVR Programmer, AVRDUDE 5.2, BASCOM-AVR 1.11.9.6, eXtreme Burner. Разработчик программатора Thomas Fischl. Сайт автора: www.fischl.de

Принципиальная схема программатора USBasp

Двухсторонняя печатная плата программатора USBasp

Разводка печатной платы сделана EAGLE CAD.

Сборка программатора

Печатная плата сконструирована на SMD компонентах, которые позволяют уменьшить габариты и себестоимость изготовления программатора.

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

Электролитический SMD конденсатор С6 используется для подавления помех по линии питания управляющего микроконтроллера. Деталь относительно трудно доставаемая, если негде ее нет, то можно собрать программатор без ее. Программатор так же будет работать.

Если не нужно в программаторе напряжение 3,3 V , устанавливать стабилизатор напряжения LD1117 , конденсаторы С3, C5 и перемычку JP3 нет надобности. Для вывода напряжения 5 V на разъем CON2 без выше перечисленных деталей, нужно припоем замкнуть на перемычке JP 3 (нижний слой) линию 5 V на средний вывод.

Для удобности был составлен список необходимых деталей с обозначением их на плате, описанием и характеристиками. Так же в таблице можно рассчитать общую стоимость деталей (ввести стоимость детали в ячейку «Цена”), перейти по ссылке на деталь в интернет магазин (там заказать, или ознакомиться с документацией на деталь).

LED1 – сигнализирует о наличии питания на плате и работе управляющего микроконтроллера.

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

JP1 – изменяет частоту тактирования программируемого микроконтроллера (линия SCK).

Перемычка замкнута – SCK = 8кГц

Перемычка разомкнута – SCK = 375 кГц.

Если частота программируемого микроконтроллера меньше 1,5 МГц, то понижаем частоту тактирования SCK до 8 кГц.

JP2 – используется для прошивки управляющего микроконтроллера программатора. Подключает вывод RESET.

JP3 – изменяет напряжение питания программируемого микроконтроллера на 3,3V/5V.

Программатор собран, теперь его можно прошить.

1.Замыкаем перемычку JP2.

3.Подаем напряжение на программатор USBasp, подключив его к USB разъему компьютера.

4.Запускаем программу PonyProg2000 или UniProf, и загружаем прошивку в FLASH память USBasp.

5.После удачной прошивки загорится светодиод LED1. Теперь можно записать Fuse bits в USBasp.

Fuse bits PonyProg2000 для ATmega8

Fuse bits UniProf для ATmega8

6. Отключаем программатор от USBasp , убираем перемычку JP2 , переподключаем USB и устанавливаем драйвер.

Подключаем USBasp к ПК, компьютер автоматически попытается найти драйвера в интернете, после неудачи продолжит поиск на локальном диске компьютера, так же с неудачей.

После входим в Пуск -> Панель управления -> Диспетчер устройств. В других устройствах видим USBasp.

Кликаем по строке USBasp правой кнопкой мишки, в списке выбираем Обновить драйвер.

В окне выбираем Выполнить поиск драйверов на этом компьютере

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

Выбираем Все равно установить этот драйвер. По окончанию установки появиться окно с информацией об успешной установке драйвера.

В диспетчере устройств теперь отобразиться USBasp как идентифицированное устройство.

Программатор готов к работе.

6 применений в «умном доме» платы USBasp. Нестандартное использование USBasp


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

Пользователи, знакомые с микроконтроллерами Atmel или хотя бы с Arduino скорее всего знают о дешевом программаторе USBasp, цена которого на Ebay около $ 3. Распространены две версии программатора:
USBasp 2.0 — с стабилизатором на 3.3 вольта.
USBasp 3.0 — плата поменьше, без стабилизатора. Так же у него не выведены на разъем порты PD0 и PD1(Аппаратный UART).В руках не держал и соответственно рассматривать его тут не будем.

Ниже мы рассмотрим как превратить программатор USBasp в I2C-USB переходник, научимся читать датчики влажности и температуры, получим простой набор портов ввода/вывода (PIO), RS232-USB, а так же попытаемся создать устройство nRF24L01-USB для чтения беспроводных датчиков и управления устройствами. Ну и для любителей Arduino — будем программировать в среде Arduino IDE используя USBasp как макетную плату.Проекты используют популярную библиотеку V-USB для работы с USB в программной реализации.

Архив с прошивками можно скачать в конце статьи. Я намеренно не публикую тут прямые ссылки на свои проекты -вы их найдете в архиве.

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

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

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

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

Установка загрузчика на плату

Для быстрой смены прошивки, без сторонних программаторов можно установить загрузчик USBaspLoader.Официальная страница проекта USBaspLoader
К сожалению загрузчик отнимает 2 кб флеш памяти, но для большинства применений нам хватит оставшихся 6 кб.

Установка загрузчика:

Команда программирования используя Arduino как программатор:

Команда программирования через другую USBasp:

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

Для того, чтобы «залить» прошивку в устройство с установленным USBaspLoader необходимо установить перемычку JP3, которая переводит устройство в режим программирования и сбросить устройство, замкнув контакт ближний к перемычке выбора питания(JP1) на перемычке JP2 на землю.

Использование USBasp как макетную плату в Arduino IDE

Для прошивки в среде Arduino IDE (проверено на версиях 1.0.х) необходимо в файл board.txt вписать следущий текст:

После этого в среде Arduino IDE можно выбрать появившуюся плату ATmega8 USB 12 MHz. Прошивка осуществляется через меню «загрузка с помощью программатора».

Доступные пины по нумерации Arduino: 13 (SCK),12 (MISO),11 (MOSI,PWM),10 PB2(PWM) ,1 (TXD),0 (RXD).Так же доступны цифровые выводы 14 и 15 для управления светодиодами на плате.

Можно задействовать и интерфейс USB, используя библиотеку для Arduino V-USB, но возможностей тут меньше, чем на Си.

nRF24L01-USB

Позволяет обмениваться данными между nRF24L01/nRF24LE1 и компьютером с устройством nRF24L01-USB. Теоретически поддерживается до 22 клиентов(при пакете передачи 32 байта) на базе nRF24L01/nRF24LE1, но пока на практике проверено до 3. Ограничение связано с тем, что для приема и отправки данных используется буфер в ОЗУ устройства, а его как известно у Atmega8 всего 1кб.Размер приемного пакета может быть до 32 байт, а отправки — 4 байта, это ограничение связано со способом реализации работы с библиотекой V-USB.
Работа nRF24L01-USB адаптера основана на временном разделении, когда клиенты отправляют/принимают данные в разное время. При большом количестве клиентов время опроса должно быть бОльшим. Для обмена данными в реальном времени количество клиентов должно быть наименьшим. Пока у устройства имеются некоторые недостатки, но думаю это решаемо.
Клиентская утилита управления, чтения и отправки данных работает как в Linux, так и Windows, но пока, к сожалению, требуется компиляция для настройки принятых данных. Для удобства настройки и отладки через утилиту можно менять канал, скорость и включать/выключать аппаратное подтверждение, работать напрямую с регистрами радио модуля.
Устройство можно применить для беспроводных датчиков или управления в системах умного дома.
Кстати, ранее был разработан и испытан вариант беспроводных датчиков влажности и температуры на базе attiny13 на частоте 315 или 433 мгц, но это уже другая тема.

RS232-USB

На основе программатора USBasp можно создать устройство-переходник RS232-USB на базе проекта cdc-232.
Подойдет для программирования плат Arduino, на которых нет микросхемы FT232RL или другого преобразователя usb-uart.

PIO-USB

6 выводов, которые выведены на разъеме программатора могут использоватся как обычные PIO выводы, для «дерганья» светодиодами и релюшками, а так же считывания логического состояния порта. В архиве в конце статьи имеется мой вариант PIO-USB, который так же позволяет считывать датчик влажности DHT11/DHT22, а так же транслировать код для управления розетками/люстрами, если подключить радио перадтчик на 433/315 мгц. Планируется новая версия, в которой увеличится количество подключаемых датчиков влажности и исправлены ошибки.

DS18B20-USB

Программатор можно «научить» работать с несколькими датчиками температуры DS18B20.Например использовать проект USBTemp.
Возможны и другие варианты реализации схемы и прошивки устройства, а так же интеграция с PIO-USB.
К сожалению из-за размера прошивки загрузка не возможна через USBaspLoader.

I2C-USB

Устройство позволяет подключить практически любые устройства i2c к компьютеру.Проверено как на Linux так и в Windows XP.Прошивка основана на известном проекте i2c tiny usb.
Мои примеры использования устройства:
Чтение датчика давления BMP085.
Управление микросхемой расширителем портов MCP23017, получив тем самым почти тот же PIO на компьютере.
Вариантов применения масса: программирование EEPROM памяти, чтение спецефичных разных датчиков, управление FM приемником.

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

Все исходные коды сторонних проектов можно найти на их официальных сайтах. В архиве в конце статьи имеются прошивки, которые адаптированы под выводы платы USBasp.