Бюджетный USB Arduino своими руками. Development board ATMEGA8 анти-ардуино-одурино. Радиотехника, электроника и схемы своими руками Самодельный ардуино на atmega8

Добрый день. С появлением arduino робототехника, автоматика и другие радио изделия стали нам более доступными. Раньше представить было трудно что с такой простотой можно писать прошивки для микроконтроллеров, с появлением arduino заниматься робототехникой могут даже детишки. Простота платформы arduino позволяет забыть о побитовых операциях и регистрах avr которые использовались повсеместно. Но так как платформа универсальная то и микроконтроллер тоже выбран универсальный. Например в arduino uno предусмотрен atmel atmega328p что даволи излишне для простой обработки нажатий на кнопки, а если делать сразу партию устройств то придется заплатить за незадействованную мощь.

Но так как arduino ide свободно распространяемая, любой без труда может написать дополнения и библиотеки, зачастую они могут быть очень полезными. В данной статье пойдет речь о библиотеке плат на основе ATmega8, ATmega48, ATmega88, ATmega168 под названием Mini Core. Данная библиотека позволят писать скетчи arduino под более слабые микроконтроллеры чем atmega328p, а это позволяет удешевить стоимость устройства за счет рационального использования мощности.

Почему именно эти микроконтроллеры:

  1. Данные микроконтроллеры с теми же выводами и архитектурой и имеют минимальные отличия от atmega328p(заменяемые)
  2. Они дешевые и популярные(некоторые дешевле доллара)
  3. Они все имеют DIP и TQFP корпуса

Данная библиотека поддерживает все индексы микросхемы кроме PB (т.е. A, P, PA), например не стоит использовать ATMEGA168PB-AU.

Микросхемы по характеристикам:

Atmeg328 atmega168 atmega88 atmega48 atmega8
Flash 32 кб 16 кб 8 кб 4 кб 8 кб
ОЗУ 2 кб 1 кб 1 кб 512 б 1 кб
ПЗУ 1 кб 512 б 512 б 256 б 512 б
Каналы ШИМ 6 6 6 6 3

Пора от теории перейти к практике установим Mini Core, для установки понадобиться Arduino IDE версии 1.6.4 и выше. Если у вас нет Arduino или она старше качаем ее с оф. Сайта .

1. Для установки делаем следующее:

2. Запускаем Arduino IDE

3. Откройте меню « Файл» ⇒ «Настройки» .

4. После вышеупомянутых операций закрываем настройки и переходим в меню Откройте меню « Инструменты» ⇒ «Плата:"........."» ⇒ « Менеджер плат...».

5. В менеджере плат выбираем нашу библеотеку и нажимем установка:

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

После установки в меню « Инструменты» ⇒ «Плата:"........."» появятся варианты плат с нашими микроконтроллерами.

Самый удобный вариант для использование данных микроконтроллеров это взять arduino uno с микросхемой в корпусе dip и заменить на нужную. Также можно собрать плату с несложной обвязкой:

Для тех кому нужна распиновка микросхем фото ниже:

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

Настройки тактовой частоты:

  • 16 МГц внешний генератор (по умолчанию)
  • 20 МГц внешний генератор
  • 18.432 Mhz внешний генератор *
  • 12 МГц внешний генератор
  • 8 МГц внешний генератор
  • 8 МГц внутренний генератор **
  • 1 МГц встроенный генератор

Arduino своими руками

Ну вот и настало время освоить платформу для duino самостоятельно. Для начала разберемся, что нам может потребоваться. Для начал было бы не плохо определиться, на базе чего мы будем делать наш экземпляр отладочной платы. Чтобы упростить изначальную задачу, я предлагаю использовать USB-(UART)TTL адаптер для загрузки скетчей. Это упростит нам жизнь в разы. лично я буду использовать дешевенький адаптер, заказанный в ныне несуществующем интернет-магазине, но все также рабочий.

При построении нашей Duino будем стараться использовать минимальное количество элементов. По мере освоения будем добавлять необходимые компоненты.

Для ознакомления найдем схемы различных платформ на официальном сайте:

На мой взгляд схемы хорошие, но неплохо было бы посмотреть уже проверенные реализации "самоделок", мне очень понравились 3 варианта:

Соорудим минимальную обвязку нашему устройству.На первом этапе деталей необходимо минимум:

Собственно сам МК atmega328P (в моем случае, хотя может использоваться и 168 и 8)

Кварц 16 MHz

Конденсатор 22pF x 2шт.

Резистор 10k

Кнопка сброса (любая, кстати не обязательный элемент)

Вот в принципе и все, что минимально необходимо для работы микроконтроллера. Я предлагаю все наши работы иллюстрировать и проектировать в очень не плохой программке Fritzing:

Ну вот, давайте разберемся, зачем нужны данные элементы. Кнопка позволяет перезапустить микроконтроллер, резистор R1 является подтягивающим резистором для кнопки. Кварц, C1 и C2 являются внешним тактовым генератором для контроллера.


Это необходимая и достаточная обвязка, но лично я настоятельно Вам рекомендую установить керамический конденсатор 100nF параллельно основному питанию микросхемы.

Ну вот и готова наша минимальная Duino. Для того, чтобы удобнее было использовать данный отладочный инструмент, я предлагаю наклеивать на корпус подсказку с распиновкой "атмеги". Мой вариант реализован в Corel Draw:

Для начала соберем схему нашей Duino на беспаечной макетной плате, вот что получилось у меня:

Для загрузки скетчей мы будем использовать USB - TTL адаптер, на фото мой уже изрядно потрепавшийся адаптер на базе микросхемы CP2102:

Но перед загрузкой скетчей необходимо залить бутлоадер в МК, иначе, он "не поймет", что мы от него хотим. Есть масса способов, но мы будем использовать простейший. При помощи замечательного программатора USBasp:

Для начала подключим нашу Duino к программатору, это очень просто, достаточно соединить контакты программатора с Duino:

GND - масса (22 нога)

MOSI - MOSI (d11)

5V - питание "+" (7 нога)

Затем Arduino IDE -> Сервис -> "Записать загрузчик":

В процессе записи загрузчика придется подождать около 2 минут. После этого нам могут выпасть разнообразные "warning", типа "can not set SCK period" - не пугаемся и идем дальше.

Ну чтож, вот мы и готовы записать тестовый скетч "Blink" в наш новоиспеченный Duino, но есть один момент, и на нем я хотел бы остановиться. Как мы уже говорили для записи скетчей используется последовательный порт, но в "обычной" жизни МК это цифровые порты 0 и 1. Все очень просто, мы уже залили бутлоадер, он инициализирует запись новой прошивки при включении в течении нескольких секунд, после этого Duino начинает выполнять программу, которая записана у нее в памяти.

Чтобы перевести Duino в режим "приема", необходимо перезагрузить МК, для этого мы сделали специальную кнопку, но нажать ее нужно строго в определенный момент, это совсем не подходит для нас. К счастью на переходниках есть специальный вывод "RST", который достаточно подключить к 1 ноге МК, чтобы автоматически перезагружать Duino перед загрузкой скетча. Подключение очень простое, (переходник - Duino):

GND - масса (22 нога)

RXD - подключить к TXD (3 нога)

TXD - подключить к КXD (2 нога)

5V - питание "+" (7 нога)

Как Вы заметили контакты приема/передачи подключаются перекрестно. И все бы хорошо, но есть одно "но": существует огромное множество переходников, а для автоматической перезагрузки МК необходимо внедрить конденсатор на 100pF в разрыв цепи RST - перезагрузка (1 нога). В некоторых адаптерах он есть, а в некоторых - увы нет. Тут нужно только проверять, в моем экземпляре встроенного конденсатора не оказалось. В итоге схема немного "усложнилась":

Ну что же, теперь можно загрузить скетч в памяти Duino и попробовать провести несколько экспериментов =) (на фото добавлены светодиоды - индикаторы загрузки скетча):

Держа в руках оригинальную плату Ардуино, в голове зародилась мысль о сборке её клона. Посидев, подумав над проектом, было решено уместить все на односторонней плате, а для связи с компьютером снабдить плату микросхемой FT232RL. Во избежание вывода из строя USB порта компьютера, из-за превышения потребляемого тока, я решил пожертвовать возможностью питания от USB, но более детально об этом ходе чуть позже.

Итак, дорогие читатели, представляю вашему вниманию нашу версию клона Ардуино. Встречайте Paduino FT232RL

Как уже говорилось выше, плата имеет недостаток - лишена возможности питания от юсби порта. Однако, благодаря использованию микросхемы FT232RL, на плате присутствует выход 3.3В. Также к доп. функционалу хочется отнести наличие джампера автоматической загрузки (ENABLE), а также джампера (JP LED13), позволяющего отключить не всегда используемый светодиод подключенный к пину под номером 13.

Также, вдобавок к уже имеющемуся выходу Vin на Arduino, был добавлен выход VTG INPUT . На мой взгляд, стандартный вывод Vin имеет ряд недостатков, хотя с другой стороны плюсов. К недостаткам можно отнести потерю напряжения на диоде (0.6-0.8 вольта), также при запитывании Arduino не от разъема питания, а непосредственно от гребенок мы теряем защиту от переполюсовки т.к. выход Vin на схеме расположен после защитного диода. На выводе VTG INPUT мы же всегда имеем напряжение равное входному без каких либо потерь, а также при запитывании Arduino через гребенки функционал защиты от переполюсовки сохраняется т.к. на схеме выход расположен перед защитным диодом. К достоинствам вывода Vin можно отнести то, что при правильно поданном питании на нем всегда будет плюс, в противном же не будет ничего, в то время как на VTG INPUT либо минус либо плюс.

Смыслом данной модификации является возможность питания самодельных мотр шилдов представленных на этом сайте и нашего клона Arduino от одного источника питания без каких либо потерь питающего напряжения.

Так, как ФТшка в данной сборке использует только землю и сигнальные линии USB порта, то, полистав даташит, повесим на неё обвязку в следующей конфигурации:

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

Пару слов об FT232RL. Микросхемка довольно таки мелких размеров. Для того чтобы вы смогли оценить свои силы, привожу фото ФТшки на десятикопеечной монетке.

Приставляем Фтшку к плате, отцентровываем, смачиваем ножки флюсом, берем на жало паяльника припой в очень малом количестве, и быстро проходимся по каждой ножке. Если вы в пайке новичок, и еще не научились паять быстро, в одно касание, советую делать интервал в 10-15 секунд после каждой ножки.

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

Все, с изготовлением разобрались. Для работы в среде Arduino в память контроллера осталось лишь залить bootloader .

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

Для начала необходимо скачать среду Arduino. Скачать последнюю версию можно на сайте производителя .

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

Если при подключении драйвер на FT232RL не уcтановился в автоматическом режиме, тогда скачаваем драйвер на свою ОС с сайта производителя FTDI.

В комментариях к статье, человек указал на возможность конфликта новых драйверов на FT232RL с сайта производителя. В связи с этим лучше установить драйвер из среды Arduino IDE (arduino-1.0.5-windows\arduino-1.0.5\drivers\FTDI USB Drivers)

Открываем скачанную идешку и выбираем плату. Плата будет отображаться как Arduino NG or older w/ATmega 8 при использовании контроллера ATmega 8, либо как Arduino NG or older w/ATmega 168 при использовании ATmega168.

Затем выбираем COMport к которому подключена плата. У меня кабель определился под девятым номером.

Для проверки работоспособности зальем в контроллер тестовую программку-мигалку, выполнив следующие действия

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

Если все заработало, то поздравляю вас. Вы собственноручно собрали полноценный клон USB Arduino.

В архиве лежит шаблон под ЛУТ и список деталей.

Открываем изображение => Печать => Во всю страницу

Для облегчения распайки smd компонентов с обратной стороны платы, где нет маркировки, приведу картинку.

Хочется отметить, что на smd конденсаторах нет маркировки номиналов, но для облегчения распайки на картинке я их нанес. 104 - 0,1 мкФ, 22 - 22пФ.

EGYDuino – это клон Arduino, который можно изготовить самостоятельно, на односторонней печатной плате. Это простое и дешевое решение, которое можно изготовить в домашних условиях, причем на 100% совместимое с Arduino.

Описание

Микроконтроллер ATmega8 отвечает за последовательное подключение по USB. Он может быть запрограммирован с помощью . AVR-CDC создает виртуальный СОМ-порт на ПК после подключения устройства и устанавливает соответствующий драйвер. Микроконтроллер ATmega 8,168 следует запрограммировать с помощью загрузчика ArduinoNG boatloader . Данную операцию можно выполнить с использованием еще одной платы Arduino (выберите ISP программатор) и среды разработки Arduino IDE, или отдельного программатора (USB, последовательного или параллельного), например, USBasp с надлежащим программным обеспечением. Также вы можете использовать загрузчик Arduino Duemilanove для ATmega 168 или 328.

Плата имеет следующие характеристики:

Использует микроконтроллер ATmega8 как интерфейсную ИС
- USB-соединение с ПК
- Стандартная кнопка RESET
- 100% совместимость по выводам с Arduino
- Регулятор 5В
- Выход 3.3В
- Совместимый размер и конструкция
- Все компоненты вставляются в сквозные монтажные отверстия на плате
- USB или DC выключатель питания
- Светодиод для вывода PIN13 с перемычкой
- Светодиод питания
- ICSP-разъем
- Легко изготовляемая
- Микроконтроллеры ATmega8,168,328 с использованием загрузчика arduinoNG
- Стандартное гнездо DC питания

Плата EGYDuino может запитываться через USB-коннектор, или стабилизатор напряжения внешнего адаптера.

Схема

Полная схема устройства показана ниже

Печатная плата

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 Микроконтроллер ATmega8-P 1 В блокнот
IC2 МК AVR 8-бит

ATmega328

1 В блокнот
IC3 Линейный регулятор

LM7805

1 В блокнот
D1 Выпрямительный диод

1N4001

1 В блокнот
D2, D3 Стабилитрон 3.6 В 2 В блокнот
С1, С2, С5, С6 Конденсатор 22 пФ 4 В блокнот
С3 Конденсатор 1000 пФ 1 В блокнот
С4, С7, С10 Конденсатор 0.1 мкФ 3 В блокнот
С8, С9 Электролитический конденсатор 100 мкФ 2 В блокнот
R1, R2 Резистор

68 Ом

2 В блокнот
R3 Резистор

1.5 кОм

1 В блокнот
R4, R6 Резистор

10 кОм

2 В блокнот
R5 Резистор

1 кОм

1 В блокнот
R7 Резистор

470 Ом

1 В блокнот
Q1, Q2 Кварцевый резонатор 16 МГц 2 В блокнот
LED1 Светодиод Красный 1

На этот раз я поведаю о том, как сделать Ардуино своими руками, да еще и без паяльника. Схема этого простого Ардуино-клона называется Shrimp . Самодельный Shrimp полностью совместим с Arduino IDE, так что можно легко запускать на нем любые скетчи. Сразу следует отметить, что для создания Shrimp с нуля потребуется рабочая плата Ардуино. Она необходима для установки загрузчика на пустой микроконтроллер. Если под рукой нет Ардуино, то можно приобрести уже прошитый микроконтроллер и сразу прыгнуть к разделу 2. Для создания Shrimp нам потребуется:

  • микроконтроллер ATMEGA328P-PU;
  • резистор 10 кОм;
  • конденсатор 10-100 мкФ, электролитический;
  • конденсатор 22 пФ, керамический — 2 шт;
  • конденсатор 100 нФ, керамический — 4 шт;
  • кнопка тактовая;
  • кварц 16 МГц;
  • макетная плата;
  • набор перемычек для макетной платы;
  • USB — UART конвертер на основе FT232R, CP2102 или CH340.

1. Копирование загрузчика на чистый микроконтроллер

Обычно, чтобы записать программу в микроконтроллер требуется использовать отдельное устройство — программатор. Ардуино же хороша тем, что программатор ей не нужен. Вместо него, используется особая микропрограмма, называемая загрузчиком (bootloader). Этот загрузчик умеет принимать программы из вне и записывать их во флеш-память микроконтроллера. Так вот, загрузчик записывается в микроконтроллер на заводе. И чтобы заставить наш Shrimp работать, мы должны повторить эту процедуру. Вот здесь-то нам и потребуется другая плата Ардуино, о которой упоминалось в самом начале. Процедура установки загрузчика состоит из трёх шагов. Шаг 1. Установка на рабочую плату Ардуино специальной программы — OptiLoader Открытая программа OptiLoader позволяет прошить загрузчик optiboot в микроконтроллер нашего Shrimp. На момент написания статьи OptiLoader поддерживал микроконтроллеры: ATmega8, ATmega168, ATmega168P, ATmega168PB, ATmega328, ATmega328P, ATmega328PB. Качаем архив по одной из ссылок:
  • из официального репозитория: https://github.com/WestfW/OptiLoader
  • с нашего сайта:
Распаковываем архив и открываем скетч в Arduino IDE. Загружаем скетч в рабочую плату Ардуино. Отключаем Ардуино от питания USB. Примечание. Если скачать программу с github, то нужно будет переименовать папку «optiLoader-master» в просто «optiLoader» Шаг 2. Подключение чистого микроконтроллера Соединяем рабочую плату Ардуино с чистым микроконтроллером по приведенной схеме. Здесь все очень просто. Внимательно смотрим на картинку, вставляем проводки, семь раз проверяем. Принципиальная схема Внешний вид макета
Шаг 3. Прошивка загрузчика (bootloader) Теперь подключим Ардуино к питанию через USB. Сразу после включения, программа начнет копирование загрузчика на чистый микроконтроллер. При это будут активно мигать светодиоды RX и TX. Как только светодиоды перестанут мигать — копирование окончено. Если что-то пошло не так и светодиоды не мигают, можно открыть COM-монитор. OptiLoader отображает весь процесс копирования загрузчика. В случае успеха, отчет о процедуре будет выглядеть следующим образом.

2. Загрузка программ на Shrimp

Итак, теперь у нас есть самодельный Arduino с прошитым загрузчиком. Чтобы залить на него какой-нибудь скетч, нам потребуется частично разобрать предыдущую схему, и дополнить её новыми элементами.В частности, добавляется кнопка сброса, и защитные цепи питания.

Просмотров