У Вас есть Arduino? Значит у Вас есть программатор!


Все таки, поговорка «Век живи — век учись!» придумана неспроста! В свое время, начав интересоваться микроконтроллерами семейства AVR (и в частности, Arduino) я забеспокоился об инструменте для программирования оных. Т.е., программаторах. А ведь программатор (ну, может не в столь явном виде) у меня всегда был под рукой. Это плата Arduino.
ISP (In-system programming) — это способность микроконтроллера получать прошивку находясь уже непосредственно в собранной схеме. Программатором (устройством передающим прошивку от компьютера в контроллер) в нашем случае будет выступать Arduino.
Аргументы для сомневающихся (делать/не делать)
За:
1) этот шилд даст вторую жизнь «морально устаревшим» платам Arduino на Atmega8
2) У Вас появиться прекрасная возможность писать программы для микроконтроллеров серии Attiny в привычном Arduino IDE
3) это самый «копеечный» программатор (при условии наличия у Вас Arduino)
4) этот шилд ОЧЕНЬ прост в изготовлении, не содержит дефицитных деталей и не требует настройки
5) позволяет (в какой-то мере) сохранить порядок на Вашем рабочем месте 🙂

Против:
— я не нашел

Если готовы, то поехали.
Чтобы Arduino стала ISP программатором на нее необходимо залить специальную прошивку. Эта прошивка поставляется вместе с Arduino IDE. Напомню. Еще без какой-либо периферии Arduino подключаем к компьютеру и загружаем Arduino IDE. Выбираем [File] -> [Examples] -> [ArduinoISP]

Ну и далее, люди делают что-то примерно такое:

Кстати, я тоже так делал :). Собственно, после чего и появилась эта задумка. Вариант «клубкового» соединения, естественно, имеет право на жизнь. Но, скажем так:

-> Неудобно
-> ненадежно
-> некрасиво и все такое 🙁

Логично было бы предположить, что умные люди смекнули «что к чему» и наладили выпуск готовых ARDUINO ISP Shield-ов. Вот парочка примеров:

Я тоже хочу такую вещь! Но, «Это не наш метод! Мы все сделаем сами!!!»
Итак, я вспомнил все микроконтроллеры, с которыми мне приходилось сталкиваться. Это были Atmega8 (168/328), Atmega16, Attiny2313(4313), Attiny13(45/85). Итого, (для меня, по крайне мере) ограничимся корпусами DIP8, DIP20 и DIP28. Здоровенная Atmega16 — «пока нервно курит в сторонке». Поставим дополнительно стандартный ICSP разъем на 10 контактов, для возможности подключения внешнего адаптера. И для красоты установим светодиоды, отображающие текущее состояние программатора. Распиновку берем из скетча ArduinoISP:

// This sketch turns the Arduino into a AVRISP
// using the following arduino pins:
//
// pin name:    not-mega:         mega(1280 and 2560)
// slave reset: 10:               53
// MOSI:        11:               51
// MISO:        12:               50
// SCK:         13:               52
//
// Put an LED (with resistor) on the following pins:
// 9: Heartbeat   - shows the programmer is running
// 8: Error       - Lights up if something goes wrong (use red if that makes sense)
// 7: Programming - In communication with the slave

Схема. Хм, конечно сложно это назвать схемой, но все же:

Разводка печатной платы много времени не заняла. Я фактически расположил нужные корпуса и разъемы на плату, подписал нужные выводы и тупо их соединял 🙂 Вот, что получилось:

Лут:

После запайки:

Вторая сторона:

Обращаю Ваше внимание, на наличие трех SMD перемычек (резисторы 0R).

Вот готовое изделие:

!!!ВАЖНЫЙ МОМЕНТ!!! Очень рекомендую установить панельки с цанговыми контактами!

Итак, все у нас готово для проведения «ходовых» испытаний. Подключаем наш шилд к ЗАРАНЕЕ «прошитую» Ардуино
.

Проверяем работоспособность с помощью GUI оболочки для AVRDUDE:

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

Обращаю ваше внимание на правильный выбор типа программатора и типа соединения. Уточнить можно в IDE (выше приведен скриншот для самопальной COM-портовой платы).

Ниже картинки для варианта с CraftDuino (у меня CraftDuino общается через виртуальный COM N14. Естественно, у Вас может быть другой)

Все хорошо!! Радуемся и хлопаем в ладоши 🙂 (честно говоря, получившаяся плата мне ОЧЕНЬ нравится. Я пишу эту статью и верчу ее в руках).
Пара полезных ссылок, о том, как подружить микроконтроллеры Attiny со средой программирования Arduino:
Attiny13
Attiny2313
Ну а дальше уже сами 🙂 Как говорится, Google Вам в помощь!

Весь материал проекта забираем ТУТ.
Все удачи и хорошего настроения!


0 комментариев на «“У Вас есть Arduino? Значит у Вас есть программатор!”»

  1. С учетом всего написанного для Вас непроблема было бы собрать устройство и чуть посерьезнее.
    Я, например, собрал программатор вот от сюда: bascom.at.ua/publ/zif_avr_3_v_odnom_usb_asp_avrdoper_prottoss/1-1-0-68
    А дуину использовал для первоначальной прошивки самого программатора. Теперь имею удобный программатор, независимый ни от чего. Доволен как слон!

    • Совершенно с Вами согласен. Собрать такой — не проблема. Тут же вся «фишка» в том, что (я лично знаю нескольких таких) у людей УЖЕ есть плата Ардуино. Кто-то ей пользуется, кто-то шагнул дальше и пишет серьезные вещи для мк. А Ардуина пылиться в полочке стола. Так вот, эта плата, на изготовление которой я потратил часа два (и то, большую часть времени — на «красоту»), практически ничего не покупая — разве не решение вопроса насчет программатора?!?! Да и еще с тремя адаптерами для ходовых мк «на борту». Наверное дешевле только программатор Громова 🙂

      Кстати, у меня валяется тоже купленная по принципу «хрен с ним, четыре бакса — не большие деньги» плата LaunchPad от Техас Инструмент. Ломаю голову, какое ей найти применение… Но есть наметки.

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

    • О, клевая мысль. Было бы здорово, из ЛаунчПада сделать такой программатор. Я думаю, что у многих людей они валяются без дела. А тут и польза Огромная, и освоение другой платформы. Да и вроде, есть а-ля Ардуиновская среда разработки. (Я что-то про разработку шилдов для ЛаунчПадов пока не встречал ничего…)

    • Америкосы по ходу активно на них что-то ваяют. У них полно всего, где-то были ссылки на их ресурсы вроде текущего, где все выкладывают проекты на лаунчпадах.

    • Что-то типа http://www.instructables.com/id/msp430-Launchpad-Projects/?
      Может где-то и поинтереснее и побогаче, но я пока не нашел. Единственное, что останавливает, так это распространенность этих МК. AVR и PIC- почти на каждом углу 🙂

  2. Тук — тук — тук!!! Тут есть кто нить ????? У меня проблема со скачиванием файлов. Может кто нить подсказать, как скачать прикреплённые файлы?

  3. Вау! Доброго дня! даже удивился появлению нового комментария к данному опусу 🙂
    А со сверлами — все очень просто. Я во всех (практически) своих поделках обхожусь двумя сверлами: 0.8 мм для выводных элементов (резисторы, конденсаторы, светодиоды, панельки под м/с и т.п.) и 1 мм для больших диодов, штырьков и т.п.

    • Доброго вечера, спасибо большое за информацию. Я по этой статье делаю практическую часть дипломной работы.

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Arduino Bluetooth CraftDuino DIY Google IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение