Usbasp i2c: Превращаем программатор USBasp в I2C-USB переходник

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 как программатор:

avrdude -c avrisp -P COM1 -b 19200 -p m8 -U flash:w:boot_m8.hex -U hfuse:w:0xc0:m -U lfuse:w:0x9f:m -U lock:w:0x2f:m

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

avrdude -c usbasp -p m8 -U flash:w:boot_m8.hex -U hfuse:w:0xc0:m -U lfuse:w:0x9f:m -U lock:w:0x2f:m

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

avrdude -c usbasp -p m8 -U flash:w:имя_файла. hex

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

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

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

 atmega8usb.name=ATmega8 USB 12 MHz
 atmega8usb.upload.protocol=arduino
 atmega8usb.upload.maximum_size=6144
 atmega8usb.upload.speed=19200
 atmega8usb.bootloader.low_fuses=0x9f
 atmega8usb.bootloader.high_fuses=0xc0
 atmega8usb.bootloader.path=atmega8
 atmega8usb.bootloader.file=boot_m8.hex
 atmega8usb.bootloader.unlock_bits=0x3F
 atmega8usb.bootloader.lock_bits=0x2F
 atmega8usb.build.mcu=atmega8
 atmega8usb.build.f_cpu=12000000L
 atmega8usb.build.core=arduino
 atmega8usb.build.variant=standard

После этого в среде 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.

Архив с прошивками: usbasp_fw.zip

Программаторы

  • Программаторы и преобразователи интерфейсов
  • Программаторы

Новинки

Полетный контроллер Matek F405-miniTE

 Полетный контроллер Matek F405-miniTE  — высокопроизводительный полетный контроллер от Matek с процессором F405 работающим на частоте 168MHz для установки на дроны с под. .

2 600.00грн

Полетный контроллер Matek H743-SLIM

 Полетный контроллер Matek H743-SLIM  — оснащен сверхбыстрым современным процессором H7, работающим на частоте 480MHz и оперативной памятью 1Mb. Так же как и более крупны..

4 500.00грн

Набор SMD конденсаторов в книжке 0805 92 типа

  Набор SMD конденсаторов в книжке 0805 92 типа по 50шт  50В. Общее количество конденсаторов — 4600 шт. Типоразмер  SMD 0805 На..

1 100.00грн

Отладочная плата STM32F030F4P6

 Плата для разработки и прототипирования на 32-битном ARM микроконтроллере STM32F030F4P6 Cortex-M0 с тактовой частотой  48 МГц и встроенной памятью 16 КБ F..

120.00грн

Неодимовый магнит 12х5

  Неодимовый магнит D12H5 с отверстием под винт, шуруп или саморез с потайной головкой.   Диаметр отверстия 4 мм. Сила сцепления более 2 кг. Комплектация: 1 ..

16.00грн

Силовой модуль на двух MOSFET AOD4184

 Одноканальный силовой модуль на двух паралельных N-канальных полевых MOSFET транзисторах AOD4184 для управления нагрузками с максимальным напряжением 36 В и то..

35.00грн

Силиконовый провод черный 22 AWG 1м

Медный луженый провод в высокотемпературной силиконовой изоляции черного цвета. Рабочая температура силиконового провода: -50…180°C. Максимальное напряжение 600 В. Продается ..

15.00грн

Силиконовый провод красный 22 AWG 1м

Медный луженый провод в высокотемпературной силиконовой изоляции красного цвета. Рабочая температура силиконового провода: -50…180°C.Максимальное напряжение 600 В. Продается ..

15.00грн

Рекомендуем

Arduino Uno R3

  Arduino Uno R3 — это наиболее популярная плата из серии Arduino Стандартный форм-фактор платы Uno позволяет подключать к ней огромное количество различных шилдов -.

.

12

380.00грн

Беспаечная макетная плата на 400 точек

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

1

45.00грн

LCD Keypad Shield

 Шилд DFRobot LCD Keypad Shield  является удобным средством для вывода информации, построения меню и других целей в проектах на базе Arduino.  Включает в с..

5

120. 00грн

5 мм RGB LED общий катод (ОК )

 Трехцветный светодиод  RGB LED с диаметром линзы 5мм. Модель — F51BW9RGB-C. Четырехвыводной с общим катодом. Линза прозрачная. Рабочий ток ..

4.00грн

220 Ом (Ohm) 500В 0,25 Вт 5%

 Резистор металлопленочный 220 Ом (Ohm)  500В 0,25 Вт 5% Сопротивление 220 Ом Максимальное напряжение 500 В Рабочая те..

0.50грн

Сортировать: По умолчаниюПо имени (A — Я)По имени (Я — A)По цене (возрастанию)По цене (убыванию)По рейтингу (убыванию)По рейтингу (возрастанию)По модели (A — Я)По модели (Я — A)

Показывать: 15255075100

Адаптер для прошивки микроконтроллеров Atmel AVR DIP и SMD

 Адаптер для прошивки микроконтроллеров Atmel AVR в DIP и SMD корпусах через ISP интерфейс. Плата разработана для работы с программатором USBASP V2.0 и другими программаторами..

9

215.00грн

AVR910 — совместимый Atmel AVR программатор

 AVR910 — совместимый программатор для внутрисхемного программирования микроконтроллеров Atmel AVR через 10-ти пиновый ISP разъем.&nbsp..

145.00грн

K150 USB PIC программатор

Программатор K150 PICPRO MINI USB PIC Programmer for Microchip PICs предназначен для программирования микроконтроллеров PIC через USB. Питание также осуществляется через USB п..

310.00грн

MiniPro XGecu TL866II Plus универсальный программатор

 XGecu MiniPro TL866II Plus — многофункциональный программатор, поддерживающий более 15000 типов микросхем, в том числе ROM, EPROM и EEPROM память с последовате. .

3

2 050.00грн

PICkit 3 PIC программатор

 PICkit 3 – внутрисхемный программатор-отладчик от Microchip для использования при разработке устройств на PIC  и dsPIC микроконтроллерах через среду..

960.00грн

SP200S USB программатор ATMEL/MICROCHIP/SST/ST/WINBOND

Программатор SP200S предназначен для программирования EEPROM и микроконтроллеров ATMEL (AVR), MICROCHIP, SST, ST, WINBOND через USB. Питание также осуществляется через USB порт. На..

295.00грн

SPI / I2C программатор на чипе Ch441A

 USB программатор на чипе Ch441A для прошивки микросхем EEPROM и FLASH памяти серий 24-й и 25-й серий через интерфейсы I2C и SPI, соответственно.

Микросхемы памяти в DIP ..

2

105.00грн

ST-LINK V2 SWIM программатор STM8 STM32

ST-LINK V2 — это компактный программатор/отладчик для микроконтроллеров серий STM8 и STM32. Отлично работает как с STVD, так и с IAR. Внимание: иногда маркировка на корпусе и на..

7

175.00грн

STK500 — совместимый Atmel AVR программатор

 STK500 — совместимый программатор для внутрисхемного программирования микроконтроллеров Atmel AVR через 10-ти пиновый ISP разъем. Ф..

5

145.00грн

USBASP AVR 10 pin to 6 pin ISP AVR переходник

 Переходник для AVR программаторов USBASP, AVRISP, STK500 со стандартного 10-ти пинового разъема ISP на 6-ти пиновый.  Безкорпусный вариант.    Распи..

20.00грн

USBASP USBISP AVR

Программатор USBASP USBISP AVR предназначен для внутрисхемного программирования микроконтроллеров AVR через стандартный 10ти пиновый разъем ISP. Питается от USB порта. Безкорпусный..

1

110. 00грн

USBASP USBISP AVR V2.0

Программатор USBASP V2.0 предназначен для внутрисхемного программирования микроконтроллеров AVR через 10-ти пиновый разъем ISP. Питается от USB порта. Безкорпусный вариан..

11

120.00грн

USBASP USBISP AVR в корпусе

Программатор USBASP USBISP AVR предназначен для внутрисхемного программирования микроконтроллеров AVR через стандартный 10ти пиновый разъем ISP. Питается от USB порта. Вариант с ко..

3

125. 00грн

J-LINK V9 JTAG программатор / эмулятор

 J-LINK V9 — это популярный программатор/отладчик с JTAG интерфейсом. Поддерживается такими IDE, как IAR, Keil, Rowley и т.д. В число поддерживаемых мик..

4

435.00грн

Создайте свой собственный клон программатора USB-ASP

Используя больше микроконтроллеров на базе ATMEGA в моих последних проектах и ​​не используя готовые платы Arduino ни для одного из них, возникла необходимость инвестировать в специальный программатор ASP для прошивки микроконтроллеров. Огромные задержки с электронными компонентами, подтвержденные заказы загадочным образом отменяются из-за проблем с поставщиками, а также высокая стоимость «оригинальных программаторов OEM ASP» заставляют меня искать программатор в стиле «сделай сам», такой как старый «NOPPP» Программист) в старые добрые времена…

Персональные компьютеры сильно изменились, и хотя чипы ATMEGA — это не PIC, я чувствовал, что это можно сделать. Учитывая тот факт, что вы также можете использовать Arduino UNO в качестве интернет-провайдера, и немного покопавшись, я наконец нашел очень привлекательную альтернативу…

Томас Фишл , на его веб-сайте https://www.fischl.de /usbasp, имеет проект аппаратного обеспечения с открытым исходным кодом, который, похоже, был именно тем, что мне было нужно. Его устройство способно программировать 5-вольтовые устройства на различных скоростях, включая сверхмедленную. Он также написал прошивку для устройства, и хотя последнее обновление было в 2011 году, оно все еще работает хорошо, по крайней мере, насколько я могу судить…

Тем не менее, я решил внести свой собственный штрих в конструкцию и встроить преобразователь логических уровней, чтобы можно было также программировать устройства на 3,3 В…

Модифицированная схема приведена ниже: решил сделать свою собственную разводку печатной платы, чтобы включить изменения, перечисленные ранее, а именно преобразование логического уровня с 5 В в 3 В, а также добавление стабилизатора напряжения LDO 3,3 В для подачи 3,3 В к цели в случае необходимости.

PCB TopsidePCB Bottom Side3D визуализация печатной платы

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

Прошивка может быть прошита с помощью любого ASP-программатора, Arduino как ISP, но с оговоркой, что вы должны использовать AVRDude из командной строки… Подробнее об этом в следующем посте… (Я хотел бы показать реальные скриншоты процесса, а не теории..). Ссылки на прошивку доступны на https://www.fischl.de/usbasp, любезно предоставлено Thomas Fischl , которого я хотел бы поблагодарить за то, что он сделал этот аппаратный проект с открытым исходным кодом бесплатным, а также за написание и поддержку прошивки.


Печатную плату можно заказать или загрузить файлы дизайна (бесплатная загрузка) со страницы моих проектов на PCBWay в ближайшее время…

Эта печатная плата была изготовлена ​​на PCBWAY. Файлы Gerber и спецификация, а также все схемы скоро будут доступны в виде общего проекта на их веб-сайте. Если вы хотите, чтобы компания PCBWAY произвела один из ваших собственных проектов или даже эту конкретную печатную плату, вам необходимо сделать следующее…
1) Нажмите на эту ссылку
2) Создайте учетную запись, если у вас ее еще нет.
Если вы воспользуетесь приведенной выше ссылкой, вы также мгновенно получите купон на 5 долларов США, который вы сможете использовать в своем первом или любом другом заказе позже. (Отказ от ответственности: я получу небольшую реферальную комиссию от PCBWay. Эта реферальная комиссия не повлияет на стоимость вашего заказа, и вы не будете оплачивать какую-либо ее часть.)
3) После того, как вы зашли на их веб-сайт и создали учетную запись, или войдите под своей существующей учетной записью,

4) Нажмите «Мгновенное предложение печатной платы»

5) Если у вас нет особых требований к вашей печатной плате, нажмите «Быстрый заказ печатной платы»

6) Нажмите «Добавить файл Gerber» и выберите файлы Gerber из твой компьютер. Большинство деталей вашей печатной платы теперь будут выбраны автоматически, вам останется только выбрать паяльную маску и цвет шелкографии, а также удалить номер заказа или нет. Вы, конечно, можете настроить все точно так, как вы хотите.

7) Вы также можете выбрать, хотите ли вы SMD-трафарет, или плата будет собрана после изготовления. Обратите внимание, что услуга сборки, а также стоимость ваших компонентов НЕ включены в первоначальную цену. (Цитата будет обновляться в зависимости от того, какие параметры вы выберете).

8) Если вы довольны выбранными параметрами, вы можете нажать кнопку «Сохранить в корзину». Отсюда вы можете перейти в верхнюю часть экрана, щелкнуть Корзину, сделать любой платеж или использовать любые купоны, которые у вас есть в вашей учетной записи.

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

Автор makeriot2020Опубликовано Рубрики Дизайн печатных плат на заказ, Электроника, Дизайн печатных платМетки Arduino, ASP программист Maker и IoT Ideas используют модули AITinker

Высококачественные модули для прототипирования

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

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

Идеальным модулем прототипирования, на наш взгляд, является модуль, который:

– Работает из коробки, каждый раз, без вопросов.
— Обеспечивает доступ ко всем периферийным устройствам конкретного чипа/устройства
— Отличная документация в легкодоступном месте
— Рабочие и надежные примеры кода
— Эффективная поддержка клиентов в случае возникновения проблем
— Ценность за деньги

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

Cytron Maker Nano с ATMEGA328p
Cytron’s Maker Nano

Клон Arduino Nano, но многое другое… Светодиоды на линиях GPIO (можно отключить), встроенный зуммер и пользовательская кнопка, а также уникальный способ Cytron сделать что-то простое действительно великим.

Cytron Maker Nano

Производитель Cytron Uno (ATMEGA328P)
Cytron’s Maker UNO

Специально разработанный для использования в классе, этот клон Arduino Uno обладает всеми функциями Arduino Uno, а также всеми функциями Cytron Maker Nano. Он также идеально подходит для производителей и других любителей.

Cytron Maker Uno

Cytron Maker Nano RP2040
Cytron Maker Nano RP2040

Микроконтроллер Raspberry Pi Pico (RP2040) застал всех нас врасплох. Опираясь на свою очень успешную серию Maker, Cytron недавно выпустила Maker Nano RP2040. Он имеет все функции оригинального Raspberry Pi Pico, но с добавленными вкусностями Cytron, похожими на Maker Nano… Светодиоды на линиях GPIO, зуммер, а также два светодиода RGB. Плата поддерживает Arduino IDE, а также поддерживает Circuit Python и Micropython.

Cytron Maker Nano RP2040

Cytron Maker Pi RP2040
Cytron Maker Pi RP2040

Начать работу над робототехническим проектом очень просто. Платформа разработки Cytron Maker Pi RP2040 Robotics поможет вам. Два контроллера двигателя, встроенное зарядное устройство LiPo, зуммер, порты Grove и все остальные полезные функции серии Maker. Хорошо спроектированная плата для разработки, с которой легко начать работу прямо из коробки.

Cytron Maker Pi RP2040

Комплект программатора USBASP AVR Atmega 48 88 128 Tiny AT90 51 3,3 В 5 В – Flux Workshop

Безымянный/Универсальный