Есть такой сайт (RoboZone.su), который был моим стартом в схемотехнике (и роботостроении). Изюминкой сайта являются два универсальных робо-контроллера: MRC-28 (http://robozone.su/2008/02/29/universalnyjj-robo-kontroller-mrc28.html) для ATmega8 и MRC-40 (http://robozone.su/2008/06/01/universalnyjj-robo-kontroller-mrc-40.html) для Atmega16. Но вот для одного из самых простых и дешевых микроконтроллеров фирмы Atmel – Attiny2313 такого робо-контроллера там нет. Так сложилось, что многие свои проекты я делаю на ATtiny2313 (часто ее возможностей вполне достаточно даже для несложного робота) и решил сделать подобный робо-контроллер для ATtiny2313 (и других 20-выводных микроконтроллеров Atmel). По аналогии, назвал его MRC-20. Никаких дополнительных модулей (чем в первую очередь интересны MRC-28 и MRC-40) для этой платы пока нет, но может быть появятся в будущем. В любом случае, надеюсь, она окажется полезна не только мне, но и другим начинающим робото-строителям да и просто, как макетно-отладочная плата для ATtiny2313.
Описание Плата выполнена в одностороннем варианте, размерами 80х95 мм (чуть больше чем MRC-28 за счет более широких дорожек и большего расстояния между дорожками, для удобства ее изготовления методом ЛУТ). На плате присутствует стабилизированный источника питания 5 вольт, собранный на линейном стабилизаторе L7805 (который без переделки платы можно заменить на любой Low-Drop, в этом случае на плате предусмотрено достаточно места, чтобы его можно было прикрутить болтиком к плате так, чтобы тепло рассеивалось медной площадкой на обратной стороне, по аналогии с тем, как это сделано в MRC-28 и MRC-40) и интерфейс Com-порта на MAX232N. Как и на любой макетно-отладочной плате, выведено много разъемов для удобства подключения внешних устройств:
J1 – разъем внешнего питания (12 вольт)
J2 – стандартный 9-пиновый разъем Com-порта типа «папа»
J4 – разъем для подключения внешнего питания с блока питания от компьютера (+12V, GND, GND, +5V). В каждом блоке питания есть кабель, идущий на дисковод и имеющий расстояние между отверстиями как раз 2.5 миллиметра, который можно «напрямую» воткнуть в этот разъем обеспечив плату высокомощным стабилизированным внешним питанием безо всяких дополнительных переходников и без необходимости что-либо «подкручивать отверткой».
J5 – разъем интерфейса USART (не путать с Com-портом, т.к. эти контакты подключены напрямую к ножкам микроконтроллера и работают на напряжении TTL логики (0, 5V)), служит для связи нескольких устройств по USART.
J6 – Разъем стабилизированного питания (+5V, GND, GND, +5V). На плате представлен многократно (в виде двух разъемов со штырьками и одного с отверстиями). Используется для питания внешних устройств от платы микроконтроллера. Разъем с отверстиями можно использовать как дополнительную точку опоры при подключении внешних модулей по принципу «сандвича».
PORDB и PORD микроконтроллера выведены в виде двух разъемов (один штырьки, другой наоборот отверстия для штырьков). Если к штырькам удобно подключаться контактами PLS (http://robozone.su/2008/06/16/obzhimaem ... serii.html), то к разъему с отверстиями можно подключаться обычными медными проводами от компьютерного кабеля «витая пара» (они как раз имеют подходящий диаметр и жесткость), или в них вставлять дополнительные модули по типу «сандвича», по аналогии с тем, как это сделано для другим плат робо-контроллеров.
ISP – стандартный разъем внутри схемного программирования на 10 контактов (назначение контактов подписано на плате).
ATtiny2313 специфический микроконтроллер (как минимум потому, что ножек в нем мало и часто не хватает), поэтому для PORTA все ножки соединяются с внешними цепями через джемперы, что позволяет при необходимости снять/разомкнуть джемпер и использовать для доступа к пину обычный PLS контакт (джемперы RESET, XTAL1 и XTAL2). Кроме того, полностью регулируется джемперами подача сигналов с ISP (разъема внутри схемного прогрмаммирования):
PWR – разрешает (замкнут) или запрещает (разомкнут) подачу питания с ISP.
CLOCK – разрешает (замкнут) или запрещает (разомкнут) подачу таксирующих импульсов 1МГц с ISP (хотя на плате присутствует собственный кварц для «одоления» микроконтроллеров настроенных на внешнее актирование.
Джемпер JP1 – определяет источник питания +5V для платы: если замкнуты PWR+VCC, то питание подается со стабилизатора расположенного на плате, если замкнуты VCC+5V, то питание подается напрямую с разъема J4 (предполагается что это +5V с блока питания компьютера). Стабилизатор L7805 позволяет подключать нагрузку до 1 ампера, но для того чтобы «не греть зря воздух» (он очень греется от 12 вольт питания) или просто, если необходимо подключить нагрузку с большим током, можно подать питание с БП компьютера напрямую. Кнопка RESET – стандартный сброс микроконтроллера.
Замечания На плате предусмотрены достаточно большие области для крепления болтиками по краям платы. Их вполне достаточно для крепления платы болтиками M4 с широкой шляпкой (MRC-28 и MRC-40 можно было крепить максимум M3). Для удобства и большей «жесткости», разъемы PORTB и PORTD можно сделать из единых планок штырьков и гнезд, выняв (выдернув) из них один штурек посредине, т.к. расстояние между разъемами – 5 мм (т.е. ровно один пропущенный штырек). На фото плата сделана из двух отдельных планок, но если сделать из одной общей, то разъемы (особенно гнезда) будут гораздо меньше подвержены износу из-за больше жесткости (будут меньше расшатываться). Схема выполнена в Proteus ISIS, а разводка платы в Proteus ARES. Для тех у кого Proteus 7.7 SP2 не стоит (или файлы не открываются по любой причине), схема продублирована в виде простого изображения, а плата прилагается в виде готовых к печати изображений (200 dpi) или PDF файла (изображение верхней части платы с текстовыми подписями элементов уже зеркально отражено для нанесения методом ЛУТ). Плата была собрана, проверена и замечательно работает (на фото).
Michael_K писал(а):Как мы любим красивые слова... Каким местом эта платка - робоконтроллер?
Тем же, каким и MRC-28, MRC-40. Сделано по аналогии, только для ATtiny2313. Пока нет внешних модулей - она больше макетно-отладочная, с их появлением функциональность можно расширять. Сделано для таких же как и я, кто с MRC-28 (MRC-40) начинал или планирует начать.
Я совсем не гордый, название запросто можно поменять на "макетно-отладочная плата MRC-20" (если такое название более адекватно отражает ее назначение и возможности).
boez писал(а):А в чем вообще смысл 2313? Чем он лучше атмеги8?
avr123.nm.ru писал(а):Наверно тем что дороже в розницу. ATmega8 по 70 рублей и тини2313 в DIP-20 - как повезет.
У нас в городе ATtiny2313 почти в два раза дешевле чем Atmega8 (минимум в полтора).
Myp писал(а):красиво и бессмысленно
Не так уж и бессмысленно. Да, Atmega8 хватает для простенького робота аж с головой (с большим запасом), но и на ATtiny2313 я вполне успешно двух роботов собрал (без особых запасов по памяти, но ее вполне хватает, даже для некой "не самой тривиальной" программы). Кроме того на этой самой простенькой микросхеме люди делают достаточно интересные вещи (например почти все изделия на сайте http://www.getchip.net/ или например MP3 Player на ATTiny2313 http://toxygen.net/tmp/ - в будущем хочу себе такой собрать). Просто ATtiny2313 для многих задач "достаточно", но без особого "запаса". Непривычно и неудобно по началу работать с микроконтроллером, в котором твоя программа занимает 97% RAM, но с другой стороны RAM все же хватает, наличие такого микропроцессора в хорошем смысле дисциплинирует, да и перейти на более мощный никогда не поздно (это же макетно-отладжочная плата в конце-концов, она на то и нужна чтобы "примеряться" к устройству).
Фирма Atmel провела "пересмотр" Attiny2313 и собирается ее выпускать под маркой Attiny2313-APU еще достаточно долго. В любом случае, если собираешь собственную конструкцию, а не копируешь уже готовую и многократно проверенную, как-то и на чем-то ее желательно отлаживать. Эту платку я использую и как источник питания 5 вольт и как переходник на Com-порт, в общем, она у меня самый используемый и универсальный инструмент сейчас.
Я никого ни к чему не призываю. Выложил я ее только потому, что пол года назад я бы сам с удовольствием такую собрал, но ввиду отсутствия макетно-отладочной платы для Attiny2313 собрал MRC-28 (просто потому что она была хорошо документирована и мне полностью понятна). Прошло время, чему-то научился, сделал себе такую платку, как хотел и просто поделился ею с уважаемым сообществом. Может быть кому-то (начинающему, такому же как и я) она будет интересна.
Ну вдруг что-то упустили и что-то реально для роботов заточено. Не можем же мы сразу с ходу подозревать человека в том, что он просто так макетную плату робо-контроллером назвал?