Делаем железку, часть 2: рисуем схему и плату
После того, как мы определились с деталями, из которых будем делать железку, надо садиться и рисовать сначала схему, а потом плату.
Коротко рассказать, как рисуется схема, разумеется, невозможно — этой теме посвящены книги по несколько сотен страниц толщиной, начиная с «Искусства схемотехники» Хоровица и Хилла («ХиХ»), далее везде. Впрочем, если в принципе вы понимаете, зачем нужны разные детальки, но не работали раньше с микроконтроллерами — советую посмотреть проект Arduino, это хороший и простой пример использования микроконтроллера, в котором нет никаких трудных для понимания наворотов. Тем более, что и программировать контроллер дальше мы будем с помощью Arduino. Да, большой плюс цифровой электроники — работа по чётким алгоритмам, так что разобраться, что делает та или иная схема, обычно сравнительно просто.
Кстати, если вы хотите повозиться с микроконтроллером, особо ничего не паяя, стоит взять саму плату Arduino и экспериментировать с ней. В России ими торгует Линуксцентр, правда, прямо сейчас там только специфические платы, обычного Arduino Duemilanove нет. Ну, желающие могут купить из-за бугра, например, в Adafruit (там же есть тележка всяких аппаратных расширений).
Мне, впрочем, готовая плата не нужна — всё едино придётся делать свою обвязку, так что проще собрать всё на одной плате собственной разработки. Так что берём в руки EDA-программу, рисуем схему, а потом по ней — плату.

В качестве EDA у меня идёт CadSoft Eagle. Выбор обусловлен, естественно, соотношением цена-качество: я пробовал пару-тройку совсем бесплатных EDA — с точки зрения удобства использования они кошмарны; Altium и OrCAD, конечно, прекрасны, но цены на них начинаются тысяч от десяти за рабочее место. Не рублей.
У Eagle есть бесплатная версия, позволяющая работать с двухслойными платами размером до 80x100 мм (для большинства самоделок этого хватит), да и коммерческие версии сравнительно недороги. Eagle очень популярен среди самодельщиков и студентов, а значит, в сети есть куча руководств по его использованию (совсем начинающие могут начать, например, с руководства Sparkfun). Для Eagle есть много готовых библиотек компонентов, а чего нет — легко нарисовать самому. Единственное, чего совсем нет в Eagle — трёхмерного вида готовой платы, но вам он вряд ли и будет нужен.
Некоторые странные люди советуют использовать для разводки плат программу Sprint Layout. Господа! В Sprint Layout можно разводить разве что плату симметричного мультивибратора (два транзистора, два конденсатора, четыре резистора); делать в нём что-то более сложное можно только ради демонстрации окружающим склонности к мазохизму. В этой программе нет привязки платы к схеме, поэтому затрахаетесь вы по-настоящему: сначала вы будете разводить дорожки, бормоча под нос «от второй ножки этой микросхемы к раз... два.. три... десять... одиннадцатой ножке вон той... и ещё два резистора не забыть...», потом будете так же вручную их поштучно проверять, потом на готовой плате будете резать и перепаивать то, что пропустили при проверке, и, наконец, через полгода обнаружите, что вспомнить, где что на этой плате, а тем более, внести какие-то изменения — не проще, чем заново всё сделать. Нормальная же EDA сначала покажет вам, с чем соединяется каждая конкретная ножка, потом не даст провести дорожку там, где нет соединения, а под конец проверит, не забыли ли вы чего.
В Eagle создание проекта всегда начинается со схемы. После того, как вы нарисовали схему — можно начинать рисовать плату: Eagle автоматически перенесёт на неё все использованные в схеме детали и покажет соединения между ними, останется только расставить детали по плате и нарисовать собственно дорожки. Последнее можно поручить автоматическому разводчику, но он часто делает странные и неоптимальные вещи, так что проще в общем-то всё сделать руками. Любое дальнейшее изменение устройства также начинается с принципиальной схемы, из неё изменения уже транслируются на плату.
По завершении разводки остаётся только экспортировать плату в какой-нибудь формат, понимаемый конторой, которой вы собственно изготовление плат поручите. Наиболее распространённый — это Gerber для чертежа дорожек и Excellon для разметки отверстий. Чтобы упростить себе задачу, можно взять у Sparkfun CAM-файл, который позволяет генерировать и набор Gerber’ов, и Excellon одним щелчком мыши. Готовые файлы можно проверить в бесплатном просмотрщике Viewplot — посмотреть, всё ли совпадает, обозначены ли границы платы и монтажные отверстия, и т.п.
Да, перед тем, как экспортировать плату в Gerber, стоит, во-первых, запустить DRC — Design Rule Check, проверку корректности разводки платы. DRC представляет собой набор формальных правил расположения элементов, и выдаст вам перечень нарушений: пересечения дорожек или слишком близкое их расположение, попадание дороже в запретные зоны вокруг монтажных отверстий и по краям платы и т.п. В DRС можно заранее прописать нормативы на ширину дорожек, размеры отверстий и прочие параметры из правил фирмы, у которой вы будете заказывать плату. Во-вторых, стоит нажать кнопочку «Ratsnest» и убедиться, что данная команда выдаёт результат «Nothing to do!» — это значит, что у вас не осталось непроложенных дорожек. Если же они остались, стоит повыключать лишние слои платы — тогда станет видно, где эти дорожки. И проложить их.
Платы я делаю в «Резоните» — адекватное, сравнительно недорогое и быстрое производство. Обратите внимание, что отдельных денег стоит собственно подготовка платы к печати, которая оплачивается один раз независимо от того, сколько плат вы потом закажете. Энтузиасты делают платы сами, как правило, с помощью «лазерно-утюжной технологии» — плата распечатывается на лазернике в зеркальном отображении, потом с помощью горячего утюга тонер переносится на заготовку, и последняя вытравливается: там, где на ней был тонер, останется слой меди — но это подходит для односторонних плат и любителей ручного труда, двусторонние же делать методом ЛУТ, мягко говоря, геморройно.
Из дополнительных опций при заказе платы обычно значатся маска и шелкография. Первую стоит делать однозначно — это слой краски (обычно зелёного цвета), закрывающий те части платы и дорожек, к которым ничего припаивать не надо; маска делает пайку заметно проще, а вероятность замкнуть что-нибудь не то при отладке — заметно ниже. Шелкография — это нанесение на плату поясняющих надписей; в маленьких проектах, которые не предполагается тиражировать, шелкография обычно не нужна. На больших платах, напротив, она помогает не только правильно подключить разъёмы, но и ускоряет процесс сборки и наладки платы — если, конечно, вы пометили расположение деталей.
С момента заказа до приезда курьера с готовыми платами у «Резонита» обычно проходит 3—5 дней.


Круто, давно все хочу попробовать что-то наваять в Eagle, но как-то откладывал. В Diptrace тоже все просто, но я упарился рисовать некоторые элементы, которые для Eagle в огромном количестве уже давно выложены в интернете. Eagle вообще, если посмотреть, просто стандарт де-факто (хотя, цена коммерческой версии, даже самой дешевой — немалая).
Что касается Arduino, то это все-таки просто голый микроконтроллер (сейчас) с чипом FT232 в комплекте (ну и минимум обвязки), так что можно хоть на коленке и без платы Arduino баловаться с софтом от Arduino. Ибо цены на Arduino и иже с ним в России великоваты как-то (проще уж на Ebay с доставкой купить).