Хочу представить вам свой проект-вариант широко известного контроллера Arduino.
Начну с короткой предыстории. Электроникой и радиотехникой я занимаюсь больше 10 лет. А вот интерес к микроконтроллерам появился не так давно. Изучал язык С, программировал микроконтроллеры от фирмы Atmel, успех был переменчивым. И как-то, изучая просторы интернета на тему программирования микроконтроллеров, попал на сайт www.arduino.ru. Их контроллеры мне понравились, захотелось такой себе. Поскольку паяльник «в руках держать умею», покупать контроллер отказался и начал искать в интернете информацию по самостоятельному его изготовлению, но ничего подходящего не нашел. Вариант платы, которую собирают на страницах http://robocraft.ru/blog/arduino/19.html сайта, мне не подходит, да и не сильно нравится. Хотелось с USB разъемом.
Скачал файлы схем оригинальных версий контроллера Arduino, даташит на микросхему FT232R, распечатал статью "Ардуино хоум мэйд" (ссылка выше) и думал как это все соединить, чтобы получилось то, что я хотел найти. И получилась вот такая схема:
Используемые в схеме детали:
Резисторы я использовал SMD типоразмером 0805:
- R1, R2, R4, R7 – от 300 Ом до 1 кОм (какие найдете);
- R3 – 10 кОм;
- R5, R6 – 1 кОм.
Конденсаторы:
- С2, С3, С5, С13, С8, С10, С11 – SMD (0805) номиналом 0,1 мкф;
- электролиты С1, С4, С9, С12 – я использовал по 22 мкф*50 В, мне они подошли по высоте. Номинал не особо важен, не ниже 10 мкф на напряжение не ниже 10 В, кроме С9, его напряжение должно быть больше не 20 % напряжения питания внешнего источника;
- С6, С7 – керамика по 22 пф.
Светодиоды любые (форма, габариты, цвет) на ток 15-20 мА. Диод D5 – 1N4007 тоже в SMD корпусе.
Кварц – 16 МГц.
Микросхемы:
- DA1 – L7805 в корпусе ТО220;
- DD1 – FT232RL (хорошая микра, но в большем корпусе не выпускают);
- DD2 – сам наш микроконтроллер, я использовал ATmega168, можно ATmega8, думаю, что и ATmega328 тоже подойдет, главное загрузить соответствующий загрузчик (bootloader).
По итоговой стоимости точно сказать не могу (SMD компоненты не покупались, нашлись в коробочках электронщика-радиолюбителя). А затраты были следующие (г. Ростов-на-Дону): FT232RL – 200 р., ATmega168 – 220 р., L7805 – 15 р., разъемы, предохранитель, гребенки, панелька, кнопка – около 100 р.
При подключении собранного устройства к компьютеру определится новое устройство, нужно установить драйвер, указав путь к директории «FTDI USB Drivers» (в скаченной программе Arduino IDE).
С печатной платой (ПП) были некоторые проблемы, но мне помогла картинка ПП в статье. Все распиновки и расстояния разъемов совпадают с оригинальной платой ардуино, можно будет подсоединять различные arduino-совместимые платы расширения.
Назначение этого контроллера может быть самое различное – от "учебника" по программированию до создания серьезных охранных систем. Информации по его применению в интернете очень много.
Работает контроллер просто. На компьютер устанавливается программа Arduino IDE, скаченная бесплатно с официального сайта www.arduino.cc. В ней Вы пишите свою программу (скетч) для исполнения контроллером. Потом, нажимая кнопку в среде Arduino IDE "загрузить", компьютер компилирует Вашу программу в язык понятный микроконтроллеру и через виртуальный com порт, созданный микросхемой FT232R, передает ее микроконтроллеру. После загрузки программы, она начинает сразу исполняться, если не отключено питание контроллера. Также микросхема FT232R имеет выходной сигнал для автоматического перезапуска микроконтроллера, необходимого при загрузке скетча. Плата контроллера может питаться как от usb, так и от внешнего источника питания (8-25 В) для чего установлен микросхемный стабилизатор L7805. Присутствует на плате предохранитель 500 мА по +5 В от usb, чтобы не повредить usb порт при неполадках в плате контроллера. С помощью разъема ICSP можно программировать микроконтроллер внешним программатором. Кнопка, установленная на плате, сбрасывает работу микроконтроллера, и он начинает исполнение загруженной программы заново. Диод D5 защищает микроконтроллер от переполюсовки питания.
Фото готового контроллера:
Расположение некоторых деталей на фото платы не совпадает с файлом ПП, по причине совершенствования на момент создания статьи. Файл ПП в программе Sprint-Layout 5.0 прилагается.
Правильно собранный и прошитый контроллер начинает работать сразу. Отмечу – что после первой (и возможно последующей) загрузки бутлоадера, начинает моргать с небольшой частотой светодиод D3.
Прошить бутлоадер готового устройства несложно. Самая сложность заключается в наличие программатора. Поскольку я имел опыт программировать микроконтроллеры, то у меня уже был собран программатор Prottoss AVR910. Лошадка рабочая, автору 5 из 5! Далее подключаем программатор к плате ардуино, открываем программу для программирования микроконтроллеров AVR (я использовал CodeVisionAVR), открываем окно прошивки микроконтроллера, нажимаем load flash, находим наш (для ATmega168) файл прошивки в скаченном дистрибутиве «…arduino-1.0.1\hardware\arduino\bootloaders\atmega\ ATmegaBOOT_168_diecimila.hex. Далее необходимо выставить lock и fuse биты так, как показано на рисунке:
Узнать фьюз- и лок-биты для своего микроконтроллера можно посмотреть в файле: «…arduino-1.0.1\hardware\arduino\boards.txt», использовав калькулятор фьюзов для AVR (можно легко найти в интернете).
Если же у Вас нет программатора, но есть программатор у друга, соседа.., то есть другой, более быстрый и полезный способ прошить загрузчик. Для этого нужно собрать программатор по этой схеме. Схема рабочая и проверенная мной. Простота этого метода заключается в том, что не нужно искать прошивку микроконтроллера, выставлять фьюз и лок-биты. При подключении этого программатора к компьютеру с установленными драйверами и подключенным программируемым МК, Вы, выбрав в программе Arduino IDE порт, на котором «сидит» программатор и свою прошиваемую плату и подключенный программатор, просто нажимаете на кнопку во вкладке сервис «прошить загрузчик» и радуетесь.
Если же у Вас присутствует проблема "яйца и курицы", то я посоветую собрать вот этот программатор (сам его не собирал, но думаю вешь хорошая). Или погуглить интернет на тему AVRISP-mkII. Еще вложу архив с информацией по этому программатору с файлами и описанием.
Про альтернативный метод прошивки бутлоадера можно почитать здесь.
Теперь (с устанвленными драйверами на компьютере, открываете программу Arduino IDE, во вкладке «Сервис» наводим курсор на вкладку «плата» и выбираем свое устройство (в моем варианте это – Arduino Diecimila or Duemilanove w/ ATmega168). Далее, там же, выбираем порт к которому подключен контроллер (можно посмотреть в диспетчере устройств компьютера). Реализуем свои мысли в скетче и радуемся работе контроллера!
Все возникшие вопросы присылайте в личку.
Плату контроллера разработал и успешно использует ростовский радиолюбитель Ананьев Валерий. Логин на сайте: kaznachej
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
DD1 | ИС USB интерфейса | 1 | Поиск в магазине Отрон | |||
DD2 | МК AVR 8-бит | ATmega168 | 1 | Поиск в магазине Отрон | ||
DA1 | Линейный регулятор | L7805AB | 1 | ТО220 | Поиск в магазине Отрон | |
D1-D4 | Светодиод | 4 | Любые на ток 15-20 мА | Поиск в магазине Отрон | ||
D5 | Выпрямительный диод | 1N4007 | 1 | SMD | Поиск в магазине Отрон | |
Q1 | Кварцевый резонатор | 16 МГц | 1 | Поиск в магазине Отрон | ||
С1, С4, С9, С12 | Электролитический конденсатор | 22мкФ 50В | 4 | Поиск в магазине Отрон | ||
С2, С3, С5, С8, С10, С11, С13 | Конденсатор | 0.1 мкФ | 7 | SMD (0805) | Поиск в магазине Отрон | |
С6, С7 | Конденсатор | 22 пФ | 2 | Керамический | Поиск в магазине Отрон | |
R1, R2, R4, R7 | Резистор | От 300 Ом до 1 кОм | 4 | SMD (0805) | Поиск в магазине Отрон | |
R3 | Резистор | 10 кОм | 1 | SMD (0805) | Поиск в магазине Отрон | |
R5, R6 | Резистор | 1 кОм | 2 | SMD (0805) | Поиск в магазине Отрон | |
F1 | Предохранитель | 1 | Поиск в магазине Отрон | |||
USB | USB разъем | 1 | Поиск в магазине Отрон | |||
SB1 | Кнопка | 1 | Поиск в магазине Отрон | |||
Скачать список элементов (PDF)
Прикрепленные файлы:
- diy_arduino.rar (2357 Кб)
Комментарии (27) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
При загрузке любого кода получаю ошибку:
Using Programmer : arduino
Overriding Baud Rate : 57600
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Recv:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude done. Thank you.
А в ручном режиме имеет смысл собрать переходник с Arduino Nano на Arduino Uno.
С правилами публикации комментариев ознакомлен, но будет очень обидно, если человек в попытках сэкономить, потратить время на самостоятельную сборку, а потом выяснится, что он переплатил, причем многократно.
Да и время затраченное на сборку и отладку может быть потрачено на проектирование и сборку конечного продукта. Не ради ардуино люди собирают ардуино, а ради конечного проекта, где ардуино всего лишь очередной компонент.
При закорачивании TX-RX с МК ответа нет, без МК все норм возвращается.
У меня уже даже мысль появилась, может быть, это еще одно возможное место установки конденсатора С8?