Все таки, поговорка «Век живи — век учись!» придумана неспроста! В свое время, начав интересоваться микроконтроллерами семейства 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).
Вот готовое изделие:
!!! ВАЖНЫЙ МОМЕНТ!!! Очень рекомендую установить панельки с цанговыми контактами!
Итак, все у нас готово для проведения «ходовых» испытаний. Подключаем наш шилд к ЗАРАНЕЕ «прошитую» Ардуино .
Для «гурманов», зеленой полоской я выделил соответствующие параметры для консольного варианта :)
Обращаю ваше внимание на правильный выбор типа программатора и типа соединения. Уточнить можно в IDE (выше приведен скриншот для самопальной COM-портовой платы).
Ниже картинки для варианта с CraftDuino (у меня CraftDuino общается через виртуальный COM N14. Естественно, у Вас может быть другой)
Все хорошо!!! Радуемся и хлопаем в ладоши :) (честно говоря, получившаяся плата мне ОЧЕНЬ нравится. Я пишу эту статью и верчу ее в руках).
Пара полезных ссылок, о том, как подружить микроконтроллеры Attiny со средой программирования Arduino: Attiny13 Attiny2313
Ну а дальше уже сами :) Как говорится, Google Вам в помощь!
Весь материал проекта забираем ТУТ.
Все удачи и хорошего настроения!
С учетом всего написанного для Вас непроблема было бы собрать устройство и чуть посерьезнее.
Я, например, собрал программатор вот от сюда: bascom.at.ua/publ/zif_avr_3_v_odnom_usb_asp_avrdoper_prottoss/1-1-0-68
А дуину использовал для первоначальной прошивки самого программатора. Теперь имею удобный программатор, независимый ни от чего. Доволен как слон!
Совершенно с Вами согласен. Собрать такой — не проблема. Тут же вся «фишка» в том, что (я лично знаю нескольких таких) у людей УЖЕ есть плата Ардуино. Кто-то ей пользуется, кто-то шагнул дальше и пишет серьезные вещи для мк. А Ардуина пылиться в полочке стола. Так вот, эта плата, на изготовление которой я потратил часа два (и то, большую часть времени — на «красоту»), практически ничего не покупая — разве не решение вопроса насчет программатора?!?! Да и еще с тремя адаптерами для ходовых мк «на борту». Наверное дешевле только программатор Громова :)
Кстати, у меня валяется тоже купленная по принципу «хрен с ним, четыре бакса — не большие деньги» плата LaunchPad от Техас Инструмент. Ломаю голову, какое ей найти применение… Но есть наметки.
А уменя она тоже пылится :(
Дело в том, что иногда нужно что-то быстро попробовать, тут ардуина в самый раз, но она используется как программатор, значит ее надо временно конфисковать. Вот тут и начинаются пляски, то программатором прошил, то под тесты конфисковал, то обратно. Потому, получается удобнее, есди дуинка берется, только когда нужна.
А в приведенном мной программаторе используется универсальная панелька, для смены контроллеров, что в разы удобнее.
Бесспорно у Вас качественный шилд получился.
Вот у меня пара лаунчпадов простаивают, даже для тестов каких ни разу не использовал, вот это обидно…
О, клевая мысль. Было бы здорово, из ЛаунчПада сделать такой программатор. Я думаю, что у многих людей они валяются без дела. А тут и польза Огромная, и освоение другой платформы. Да и вроде, есть а-ля Ардуиновская среда разработки. (Я что-то про разработку шилдов для ЛаунчПадов пока не встречал ничего...)
Америкосы по ходу активно на них что-то ваяют. У них полно всего, где-то были ссылки на их ресурсы вроде текущего, где все выкладывают проекты на лаунчпадах.
Что-то типа www.instructables.com/id/msp430-Launchpad-Projects/?
Может где-то и поинтереснее и побогаче, но я пока не нашел. Единственное, что останавливает, так это распространенность этих МК. AVR и PIC- почти на каждом углу :)
Вау! Доброго дня! даже удивился появлению нового комментария к данному опусу :)
А со сверлами — все очень просто. Я во всех (практически) своих поделках обхожусь двумя сверлами: 0.8 мм для выводных элементов (резисторы, конденсаторы, светодиоды, панельки под м/с и т.п.) и 1 мм для больших диодов, штырьков и т.п.
Комментарии (12)
RSS свернуть / развернутьЯ, например, собрал программатор вот от сюда:
А дуину использовал для первоначальной прошивки самого программатора. Теперь имею удобный программатор, независимый ни от чего. Доволен как слон!
dtvims
Кстати, у меня валяется тоже купленная по принципу «хрен с ним, четыре бакса — не большие деньги» плата LaunchPad от Техас Инструмент. Ломаю голову, какое ей найти применение… Но есть наметки.
Ghost_D
Дело в том, что иногда нужно что-то быстро попробовать, тут ардуина в самый раз, но она используется как программатор, значит ее надо временно конфисковать. Вот тут и начинаются пляски, то программатором прошил, то под тесты конфисковал, то обратно. Потому, получается удобнее, есди дуинка берется, только когда нужна.
А в приведенном мной программаторе используется универсальная панелька, для смены контроллеров, что в разы удобнее.
Бесспорно у Вас качественный шилд получился.
Вот у меня пара лаунчпадов простаивают, даже для тестов каких ни разу не использовал, вот это обидно…
dtvims
Ghost_D
dtvims
Может где-то и поинтереснее и побогаче, но я пока не нашел. Единственное, что останавливает, так это распространенность этих МК. AVR и PIC- почти на каждом углу :)
Ghost_D
dtvims
Chepaev
Aleksei1533
Stefan
А со сверлами — все очень просто. Я во всех (практически) своих поделках обхожусь двумя сверлами: 0.8 мм для выводных элементов (резисторы, конденсаторы, светодиоды, панельки под м/с и т.п.) и 1 мм для больших диодов, штырьков и т.п.
Ghost_D
Stefan
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.