16 янв. 2011 г.

Разводим печатные платы топором


Сегодня я расскажу о том, как использовать САПР Eagle в связке с топологическим трассировщиком печатных плат TopoR. Для обеих программ доступны Freeware и Lite версии, допускающие бесплатное и законное их использование.
Допустим, что у нас уже есть нарисованная в Eagle схема печатной платы. Если ее нет, то  создадим ее. Как - превосходно описано в цикле статей про Eagle CAD на easyelectronics.ru: часть 1, часть 2 и часть3.
Я же буду использовать простенькую схему программатора Uniprof, который умеет прошивать огромное множество Atmel'овских чипов:
Uniprof - принципиальная схема
Теперь ткнем в File->Switch to board и покидаем в пределы черного прямоугольника наши компоненты:
Темно-желтыми отрезками обозначены соединения между компонентами. Беспокоиться о том, что компоненты расположены неоптимально и между проводниками есть пересечения пока что не стоит.
TopoR не понимает игловский формат файлов *.brd, поэтому экспортируем нашу "плату" в *.dsn при помощи этого скрипта. Скрипт нужно поместить в подкаталог ./ulp/ в каталоге с Eagle. Затем тыкаем File->Run..., выбираем наш скрипт и сохраняем куда-нибудь получившийся *.dsn файл.
На этом работа с Eagle закончена, начинаем мучать TopoR.

Вначале пара слов о самом TopoR'е  и о методе топологической трассировки печатных плат.
На текущий момент (по данным журнала "Электронные компоненты" [http://www.eurointech.ru/products/TopoR/Let_Speak_About_Routers.pdf] ) применяются в основном три метода трассировки печатных плат - сеточный, бессеточный и топологический.
В сеточном методе проводники прокладываются через узлы сетки, "наложенной" на плату. В бессеточных методах (например метод прямоугольников) используются различные фигуры, по соприкасающимся сторонам которых и проходят проводники.
Оба этих метода имеют некоторые ограничения, например проводники могут быть только отрезками, "поворачивающими" под углами 45 и 90 градусов. Вместе с технологическими требованиями (ширина дорожек и расстояние между дорожками и дорожкой и компонентом не должны быть меньше определенной величины и т.д.) приводят иногда к тому, что трассировщик не может развести печатную плату на заданном количестве слоев и прочим неприятностям.
Третий метод - метод топологической трассировки лишен подобных недостатков. В нем, в качестве фигур, по сторонам которых проводятся дорожки, могут быть использованы любые фигуры, например треугольники. К тому же, у фигур нет ограничений на форму и величины углов - как следствие, форма получающихся проводников может быть абсолютно произвольной.
Благодаря подобной "гибкости", топологические трассировщики способны развести плату гораздо лучше программ-аналогов, использующих другие методы.
Одной из программ, использующих такой метод трассировки, является TopoR (бывший FreeStyle Router), созданный группой разработчиков из Санкт-Петербурга.

Перейдем теперь непосредственно к самому TopoR'у. Создадим в нем новый проект и импортируем туда наш *.dsn файл (Файл->Импорт). Откроется плата, "составленная" в Eagle:
Беспокоиться о пересекающихся проводниках на этом этапе тоже не стоит.
Для начала, подправим кое-какие настройки топора, чтобы наша плата вышла однослойной. Нажмем F4 и в открывшемся окне состава дизайна проделаем следующие изменения:

  • В пункте "Автотрассировка->Назначение цепей на слои" назначим все цепи на слой 1#Top.
  • В параметрах автотрассировщика выберем однослойную трассировку (слой нижний нетрассировочный), разрешим соединять планарные контакты напрямую и укажем форму проводников - "Дуги".
  • В пункте "Редактирование->Размещение" разрешим применять автоматическое размещение ко всем незафиксированным компонентам.
  • В пункте "Редактирование->Проводники" разрешим создавать "капельки" (плавное расширение проводника при подходе к контактной площадке) и разрешим плавное сужение проводников.
Теперь, в панели "Управление отображением" (Ctrl+D) отключим отображение всех нижних (Bottom) слоев, всех переходов и укажем, что компоненты располагаются на верхней стороне.
Запустим пробную трассировку (F5 и если надо F10). Топор нарисует нам примерную схему размещения проводников:
А сейчас запустим автоматическое размещение элементов. После завершения процедуры проводники не будут пересекаться (в идеале) и их суммарная длина будет уменьшена. К сожалению, какого-либо индикатора завершения процедуры в топоре нет. Если по прошествии 15 минут размещение элементов  больше не меняется, то можно останавливать процедуру автоматического размещения - топор разместил все наилучшим образом. То есть вот таким:
Естественно, для домашнего изготовления (методом ЛУТ) подобная плата непригодна. Да и неудобная она - контактные площадки расположены где попало...
Немного подвигаем компоненты, не нарушая общего взаимного из расположения. Для удобства включим сетку, чтобы компоненты располагались более-менее ровно:

Получилось уже что-то более симпатичное:

Теперь запустим процедуру автотрассировки (F6). Перед нами появится вот такая таблица:
Останавливать процедуру можно, когда отношение длины проводников на одном слое к количеству переходов станет больше 25 (последний столбец таблицы). Переключаться между таблицей и трассируемой платой можно по F10. После остановки процедуры выберем самый нижний вариант трассировки - он, как правило, наилучший.
В итоге, мы получаем вот такую вот красивенькую плату:
В принципе, ее можно уже сейчас отправлять на производство. Но у нас нет дома производства, а есть распечатка с лазерного принтера и утюг. Вполне возможно, что некоторые "узкие места" на плате не будут протравлены и замкнутся. И уж несомненно, что эти места вызовут трудности на этапе отлипания нагретой распечатки от печатной платы.
На нашей плате такими местами являются:
  • Проводник между контактом GND и резистором R6 - он слишком близко проходит от последнего и заходит на контактную площадку из под резистора.
  • Проводник между R6 и R5 - проходит между контактными площадками двух резисторов. Слишком маленький зазор.
  • Проводник от R5 к контакту №2 - проходит между контактными площадками резистора №4, слишком близко к одной из площадок.
Исправим полученные недочеты. Для этого перейдем в "Редактор топологии" (F7) и начнем двигать проводники как нам надо. Получим вот такую схему:

Такую плату уже можно отправлять на печать.
Немного о печати. Вначале я использовал экспорт в Gerber и Drill файлы, которые затем скармливал gerbv для экспорта в PDF. Но оказалось, что gerbv до сих пор экспортирует Gerber в любой другой формат с нарушением масштаба (увеличивает плату примерно в 2 раза). Данный баг был, как мне известно, в версии 2.2 и до сих пор (версия 2.4) его не исправили...
Но PDF для ЛУТа можно получить и в самом TopoR'е. Сначала надо поставить PDF-принтер :-), например бесплатный PDFCreator.
Для печати изображений печатных плат топор использует те же цветовые схемы, что и в окне редактора. Выберем схему "Печать" (на панели "Управление отображением"), допишем к ней несколько символов ("ПечатьLUT") и сохраним новую схему. Во вкладках выше зададим белый цвет фона и сделаем черными цвета слоев. Также отключим отображение верхнего и нижнего механических слоев, чтобы они не мешались.
Теперь жмем на "Файл->Печать" и в открывшемся окне выбираем нашу цветовую схему ("ПечатьLUT") и текущую схему отображения. Также ставим галку "Зеркальное отображение", выбираем действительный размер при печати. На вкладке "Дополнительно" ставим все три галки. Выбираем принтер "PDFCreator" и жмем на печать. На выходе мы получим PDF пригодный для ЛУТ'а: