Минимальная arduino своими руками atmega8. Arduino USB сделай сам (DIY)

На этот раз я поведаю о том, как сделать Ардуино своими руками, да еще и без паяльника. Схема этого простого Ардуино-клона называется 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 с прошитым загрузчиком. Чтобы залить на него какой-нибудь скетч, нам потребуется частично разобрать предыдущую схему, и дополнить её новыми элементами.В частности, добавляется кнопка сброса, и защитные цепи питания.

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

Давайте же приступим!

Шаг 1.Введение.


Вопросы,как и что сделать,а вообще зачем оно мне?

После серфа по тоннам информации об Arduino…от изготовления светодиодного кубика,до создания «Умного дома»,до изготовления летающих дронов…
вы,как и я,лихорадочно начали искать более-менее приемлимую инфу об изготовлении этой всемогущей платы.
«Черт возьми,хочу такую!» или «Я хочу сделать это.Прямо сейчас.»И в голове крутятся все возможные применения этого устройства,
руки сами начинают искать детали для платы,заходите в интернет,а там:
АРДУИНО.Всего за 25$.
И все.
Все комбинации выпали из головы.
Безнадега.
Не знаете,как жить дальше.
И тут вы натыкаетесь на этот сайт!
Вы спасены!
Ведь именно сейчас мы с вами соберем ARDUINO-совместимую плату за 15 минут и всего за примерно 300 рублей!

Шаг 2.Приобретите это немедля!


Вам необходимы эти компоненты:
-Макетная плата
-ATMega 328(примечание переводчика: можно использовать также ATMega 8,168)
-Готовая плата Arduino(*и снова переводчик-вместо ардуины можно использовать любой программатор,хоть «5 проводков»)
-1 резонатор на 16мГц
-3 резистора на 100Ом
-1 резистор на 10кОм
-2 конденсатора на 22pF
-3 светодиода(красный,желтый и зеленый)
-1 батарея типа»Крона»(9 вольт) с ответной частью
-USB-кабель
-1 стабилизатор напряжения «КРЕНка»
-Компьютер,ноутбук с установленной Arduino IDE.
И все.

Шаг 3.Начало сборки.


Возьмите макетку и закрепите микроконтроллер так,чтобы его ножки не были замкнуты(он должен стоять над «канавкой»)

Шаг 4.Подключение КРЕНки.

Поместите КРЕНку на макетку рядом с МК.
Распиновка КРЕНки:
-VCC(питание снаружи)
-GND(Земля.Общий контакт)
-Output(Выход)
Подсоедините черный провод к GND.Соедините его другой конец с шиной «GND» на макетке.
VCC подключите к шине питания+ на макетке.
И Output киньте туда,где будет питание чипа.

Шаг 5.Проводим питание к МК.


Хорошенько изучите распиновку АТМеги.
Соедините Output КРЕНки и GND макетки соответственно с Output(7 и 20 пин) и GND(8 и 22 пин) МК.

Шаг 6.Добавим точности.



Подключите конденсатор на 22pF между GND и 9 пином АТМеги.
И второй конденсатор между 10 пином АТМеги и,опять же,землей.
Добавьте резистор на 10кОм между 5v и RESET(1 пин).

Шаг 7.Добавляем светодиоды.

Воткните провод в любое место платы.
Подключите резистор 100Ом к одному из концов провода(см.картинку)
Длинную ножку диода (+) желтого диода подсоедините к другому концу резистора.
Короткую ножку(-) подключите к земле.
Повторите для красного и зеленого диодов.

Шаг 8.Подключаем все это к ARDUINO.
Далеко зашли мы,однако!

Подключите желтый диод к 9 пину Arduino.
Желтый диод отображает работу программатора.
Подключите красный диод к 8 пину Ардуины.
Он загорается,если что-то пошло не так.
И зеленый диод подключите к 7 пину.
Он показывает статус заливки bootloader’а.
Подсоедините 4 провода(на картинке-3 желтых и зеленый) к пинам АТМеги на макетке(см.рисунок).
А затем эти провода к 10-13 пинам Ардуино.
Не забудьте соединить 5 и GND Ардуины и макетки!

Шаг 9.Программирование.
Фух,добрались и до заливки бутлоадера.
Как,спросите вы?
АК вот так!
1)Запустите Arduino IDE.
2)Выберите Файл-Примеры-Arduino ISP.
3)Скомпилируйте скетч и залейте его в Ардуину.
После заливки скетча Вы увидите,что желтый диод начал мигать.
Теперь добавьте резистор на 100 Ом между землей и Reset Ардуины.

Шаг 10.Собственно заливка загрузчика.


В Arduino IDE выберите:
Tools-Board-Arduino Duemilkanove with AtMega 328(* Если вы используете не АТМегу 328,найдите в списке модель с тем контроллером,который установлен у вас)
Tools-Programmer-Arduino as ISP.
И снова в меню Tools.Зайдите и нажмитье «Burn Bootloader»
Прошивка начнется(займет около минуты)
На экране появится надпеись «Done Burning Bootloader»

Если что-то пойдет не так,загорится красный диод,то не получилось.Обращайтесь в личку или на [email protected] .
Вуаля!У вас есть свой Ардуино!
Счастливой работы!

Добрый день. С появлением 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-контроллера, если уж не самый простой, то уж наверняка самый доступный для самостоятельного изготовления. В основе - уже ставшая классической схема Arduino на контроллере ATMega8.

Всего разработано два варианта:

  • Модульный
  • Одноплатный

Модульный вариант

Этот вариант контроллера состит из трех плат:

Одноплатный вариант

Все тоже самое, только на одной плате:

Плата выполнена из одностороннего фольгированного текстолита и может быть повторена в домашних условиях с использованием, наприрмер, ЛУТ-технологии. Размеры платы: 95x62

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

После сборки платы - необходимо "прошить" контроллер, загрузить в него "bootloader" - загрузчик. Для этого потребуется программатор. Берем чистый контроллер типа ATMega8, устанавливаем его в программатор, подключаем к компьютеру. Я использовал программатор Программатор AVR ISP mkII c адаптером ATMega8-48-88-168 . Программируем с помощью Arduino IDE, она сама выставит необходимые fuse bits. Последовательность такая:

1. Выбор программатора (Сервис > Программатор > AVRISP mkII). Если этот программатор используется впервые - необходимо установить драйвер AVRISP-MKII-libusb-drv.zip . Если используется не AVRISP mkII, а другой программатор, то из списка нужно выбрать нужный.

2. Выбор платы для микроконтроллера (Сервис > Плата > Arduino NG or older w/ ATmega8). Если используется не ATmega8, а другой микроконтроллер, то и платку нужно выбирать соответствующую ему.

3. Запись bootloader (Сервис > Записать загрузчик).

4. Устанавливаем контроллер на плату, и все, Arduino готова к работе.