Часть — 1. Начало
Изначально я использовал две беспаечные макетные платы на 840 точек. На одной я разместил семисегнметный индикатор, светодиоды и кнопки, вторая использовалась по необходимости. Первая из них выглядела так

Затем , спустя год, я собрал одну большую плату, которая описана в моем цикле статей про робота. Конечно же идея оказалась неудачной, поскольку робот все же немаленький и все время ради платы не будешь его таскать с собой. А откручивать и закручивать каждый раз плату тоже удовольствия мало. Сама идея созревала давно. Но как обычно нужен был толчок :) Кроме платы робота была простая платка, куда в случае необходимости допаивались нужные элементы (естественно об аккуратности и речи не шло). В какой-то момент мне все это надоело и я надумал собрать себе конструктор, который бы минимизировал необходимость пайки и позволил сразу собирать нужную схему. Просмотрев в интернете кучу вариантов я пришел к тому что необходимо делать модульную конструкцию. Преимущества данного подхода:
- Упрощается процесс разработки и изготовления, поскольку один модуль проще изготовить и отладить
- Возможность дополнения конструктора новыми модулями с новыми функциями
- Возможность изменения какого-либо модуля без переделки остальных
- Компактность при работе, поскольку неиспользуемые модули всегда можно отключить и убрать
- Мобильность, то есть можно спокойно обмениваться с другом различными модулями
После этого я прикинул что мне необходимо и начал разрабатывать модули. Для разработки использовался Diptrace, который к тому времени уже был хорошо освоен. Итак что имеем (качество фотографий далеко от совершенства)

Опишу что здесь представлено, далее о каждом модуле будет написано подробнее. Верхний ряд: модуль ввода-вывода, модуль питания и расширитель портов, USB-программатор. Средний ряд: модуль с транзисторами, модуль с ATtiny2313, модуль RGB-светодиодов. Нижний ряд: модуль часов реального времени на DS1307, модуль с ATmega32, модуль согласования уровней 3,3-5 В.
Начнем по порядку. Все названия модулей носят условный характер. Модуль ввода-вывода включает в себя
- 3 группы разных цыетов по 5 светодиодов, включаемых логической 1
- 6 кнопок выдающих логическую единицу по нажатию (подтянуты к земле)
- 2 переменных резистора на 1кОм и 10кОм
- 5 пинов подтянутых 10 кОм-ными резисторами к плюсу питания (VCC)
- 5 пинов подтянутых 10 кОм-ными резисторами к земле (GND)
- фототранзистор, у которого оба вывода выведены на штыри (никуда не подключены)
- 2 мощных светодиода, управляемых транзисторами
- 2 порта для 1-Wire c подтяжкой линии данных к VCC резистором на 4.7 кОм
- 2 интегрирующих цепочки

Модуль с RGB-светодиодами и модуль преобразователя уровней 5-3,3 В (слева). В первом просто два светодиода с резисторами. Второй модуль собран по известной схеме на полевых транзисторах из документации на I2C шину. Модуль часов реального времени (RTC) DS1307 (справа). Тут все просто. Линии SCL, SDA, SQW подтянуты к VCC 10 кОм-ными резисторами. На плате установлена батарейка CR2032.


Модуль питания и расширитель портов. Данный модуль выдает напряжения 5 и 3,3 вольта. Построен на микросхемах NCP1117 и питается либо от mini-USB, либо от блока питания от жесткого диска (у меня еще зарядник от нокии переделанный с таким разъемом). Наличие напряжения индицируется светодиодами. Предусмотрена защита от КЗ (диодами Шоттки), а также возможноть переключения между источником входного напряжения. Дополнительно можно отключить любой из стабилизаторов от входного напряжения и подать на его вход напряжения с другого источника. Также на плате было размещено 10 4х-контактных штыревых линейки, для расширения линий при конструировании.


Транзисторный модуль. Включает в себя 8 n-p-n транзисторов на 100 mA и 4 n-p-n транзистора на 500 mA для управления различными нагрузками. Включены по схеме с общим эмиттером. Управляются логической 1. Для удобства плюс питания нагрузки подключен к плюсу питания схемы джампером. То есть можно снять джампер и питать одну нагрузку от 12 В, а другую от 9В. Главное транзисторы не спалить :)


Модуль 4х-разрядного 7-сегментного индикатора с общим катодом. Разряды управляются транзисторными ключами (выдаем лог. единицу на цифру и на сегменты). Довольно-таки простой и удобный в работе модуль.

Модули с микроконтроллерами. Два модуля на ATtiny2313 и ATmega32, на обоих модулях все выводы выдедены на штыревые линейки, имеется разъем для программирования (10-контактов), установлена кнопка сброса и светодиод питания. На модуле с ATmega32 установлен отключаемый кварц (джамперы) и отключаемая подтяжка выводов I2C (PC0 и PC1) резисторами к VCC.


Некоторые уже заметили наверное отсутствие в наборе ЖК-дисплея. Просто у меня его нет) да и необходимости в нем никогда не было, поэтому и модуль не разводил. Все модули соединяются с помощью кучи вот таких вот проводков которые легко изготовить самому (у меня их около 20 штук).

В итоге получился удобный конструктор, для разработки устройств на контроллерах. Причем многие модули можно использовать не только с AVR-ками, но и с любыми другими микроконтроллерами (STM32, MSP430, PIC) или с той же платой Arduino. О программаторе будет написано ниже отдельно.
В архиве все платы со схемами и разводкой. Отмечу, что тут перечислены не все модули, несколько модулей дальше Diptrace просто не ушли :( изготовлю их при необходимости :)
Часть — 2. Доработка
Прошел месяц с момента реализации моей идеи с отладочным конструктором для AVR. Ну и тут, как говорится всплыли все ошибки и неудобства. Основным минусом было то, что модулей было много (в плане количества плат) и к каждому из них необходимо было каждый раз тянуть как минимум 2 провода (VCC и GND). Также обнаружено несколько ошибок в разводке платы (сейчас в старых файлах все исправлено), которые исправлялись на месте МГТФ-ом. Датчики для 1-wire подключались по проводам, хотя можно было их просто вставлять в гнездо (те что PBS).
Ну вдобавок к этому я начал работать с радиомодулями NRF24 (на тему умного дома) и перспектива цеплять по 8 проводов на каждый модуль меня не впечатлила :) А кроме них у меня давно лежал вот такой вот дисплей для часов, термометра и прочего всего на больших 7-сегментных индикаторах FYS-8011AUG-21 (ысота 27.7 мм, зелёные, общий катод).

Сзади были выведены два ряда штырей: для сегментов и для цифр (разряды управляются транзисторными ключами).

Информация выводилась при помощи динамической индикации. Данный дисплей требовал опять же 13 проводов и 13 линий ввода-вывода :( Поэтому было решено изготовить для него платку со сдвиговыми регистрами . Идея оказалось глупой. Кстати в первой версии планировалась плата со сдвиговыми регистрами (Led shifter), однако изготавливать я ее тогда не стал. Для дисплея на светодиодных индикаторах была изготовлена плата-адаптер на двух сдвиговых регистрах 74HC595. Один управлял сегментами, а второй разрядами (цифрами). Также на плате были отдельно выведены все выходы регистров для использования без дисплея в других конструкциях. Выглядело это так


Идея ноказалась провальной, так как хоть модуль и работал, но всплыли проблемы с динамической индикацией, поэтому впоследствии был разработан другой модуль, где каждый разряд управлялся своим сдвиговым регистром. Итого с новым модулем у нас 6 проводов по одному на каждый разряд. Можно было также каскадировать сдвиговые регистры и тогда данные бы отправлялись по одному проводу, но эта идея пришла мне в голову позже. Фото нового модуля ниже (колхоз со стороны индикаторов из-за лени делать двухстороннюю плату ради 5 дорожек).


Проблема большого количества модулей была решена следующим образом. Все модули были разделены на две платы. На первой плате я объединил модуль ввода-вывода (доработав его), модуль с DS1307, модуль преобразователя уровней 5 — 3,3 В и модуль с RGB-светодиодами. Теперь под датчики 1-wire выделены штыревая линейка и гнездо, куда втыкается сам датчик. А на штыревой линейке к выводу DQ идет провод. Также на эту плату перекочевали штыревые линейки расширителя. Причем добавились контакты в форме петли (взяты с материнских плат, они обычно прижимают радиаторы мостов к плате) — очень удобные для подключения щупами осциллографа. Их на плате 2 и оба подключены к земле. Также 1 из 5 штыревых разъемов с каждой стороны поключен к земле (как к наиболее необходимому контакту на плате). Определить какой разъем куда подключен можно просто перевернув плату. У преобразователя уровней теперь по 2 линии на стороне 3,3 В. То есть если МК выдает 5 В, то можно к преобразователю подключать два устройства без сторонних проводов. Также былаа улучшена разводка участка платы с DS1307. Плата показана ниже.


На второй плате разместились модуль питания и модуль с транзисторами. В транзисторный модуль было добавлено 4 полевых транзистора, управляемых логической 1 и два полукруглых контакта, подключенных к земле (для осциллографа). На фото первая плата показана слева (фотография модуля крупным планом также была выше), а втора справа.


Модули с ATtiny2313 и ATmega32 так и остались. В дополнение к ним были изготовлены два модуля с разъемами под NRF24: один на ATmega16 и второй также на ATtiny2313. На фото слева старые модули, справа новые. Модули особо ничем не отличаются, на каждом установлен стабилизатор на 3.3В для NRF24, линия 3.3В также выведена на штыри (жёлтые).






Соединяется это все также как и раньше при помощи кучи проводков. Для удобства я изготовил провода различных цветов
Часть — 3. Всё в одном
После использования изготовленных плат, пришла мысль попробовать также объединить их на одной плате. Выкладыаю что из этого получилось. Размеры платы 12 на 10 см. Плата односторонняя, с несколькими перемычками. Поскольку места много то были добавлены следующие элементы:
- Генератор прямоугольного сигнала на инверторах на основе 74HC00. При R=10кОм и C=22пФ реальная частота составила 2.15 MHz (расчетная частота 2.27 MHz). В случае чего можно затактировать AVR'ку с кривыми фьюзами.
- Два инвертора, из оставшихся логических элементов
- 2 D-триггера микросхемы 74HC74
- 4 буферных элемента микросхемы 74HC125
- сдвиговый регистр 74HC595 с отключаемыеми светодиодами
- звуковой излучатель с транзитором (без встроенного генератора)
- на линии питания установлены самовосстанавливающиеся предохранители
Получилось довольно-таки компактно и удобно. Фото платы ниже. Ещё часть старой информации можете посмотреть в этом материале отладочные платы для микроконтроллеров

Часть — 4. Схемотехника
В данной части будут выкладываться схемы модулей, периодически буду добавлять схемы оставшихся модулей.
Транзисторный модуль
Модуль часов реального времени (DS1307)
Модуль кнопок
Модуль 7-сегментного индикатора