TOPOR

Сегодня я расскажу о том, как использовать САПР Eagle в связке с топологическим трассировщиком печатных плат TopoR. Для обеих программ доступны Freeware и Lite версии, допускающие бесплатное и законное их использование.

Допустим, что у нас уже есть нарисованная в Eagle схема печатной платы. Если ее нет, то создадим ее. Как — превосходно описано в цикле статей про Eagle CAD на easyelectronics.ru: часть 1, часть 2 и часть3.

Я же буду использовать простенькую схему программатора Uniprof, который умеет прошивать огромное множество Atmel’овских чипов:

Uniprof circuit scheme
Uniprof - принципиальная схема

Теперь ткнем в File→Switch to board и покидаем в пределы черного прямоугольника наши компоненты:

PCB on Eagle

Темно-желтыми отрезками обозначены соединения между компонентами. Беспокоиться о том, что компоненты расположены неоптимально и между проводниками есть пересечения пока что не стоит.

TopoR не понимает игловский формат файлов *.brd, поэтому экспортируем нашу "плату" в *.dsn при помощи этого скрипта. Скрипт нужно поместить в подкаталог ./ulp/ в каталоге с Eagle. Затем тыкаем File→Run…​, выбираем наш скрипт и сохраняем куда-нибудь получившийся *.dsn файл.

На этом работа с Eagle закончена, начинаем мучать TopoR.

Вначале пара слов о самом TopoR’е и о методе топологической трассировки печатных плат.

На текущий момент (по данным журнала "Электронные компоненты") применяются в основном три метода трассировки печатных плат — сеточный, бессеточный и топологический.

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

Оба этих метода имеют некоторые ограничения, например проводники могут быть только отрезками, "поворачивающими" под углами 45 и 90 градусов. Вместе с технологическими требованиями (ширина дорожек и расстояние между дорожками и дорожкой и компонентом не должны быть меньше определенной величины и т.д.) приводят иногда к тому, что трассировщик не может развести печатную плату на заданном количестве слоев и прочим неприятностям.

Третий метод — метод топологической трассировки лишен подобных недостатков. В нем, в качестве фигур, по сторонам которых проводятся дорожки, могут быть использованы любые фигуры, например треугольники. К тому же, у фигур нет ограничений на форму и величины углов — как следствие, форма получающихся проводников может быть абсолютно произвольной.

Благодаря подобной "гибкости", топологические трассировщики способны развести плату гораздо лучше программ-аналогов, использующих другие методы.

Одной из программ, использующих такой метод трассировки, является TopoR (бывший FreeStyle Router), созданный группой разработчиков из Санкт-Петербурга.

Перейдем теперь непосредственно к самому TopoR’у. Создадим в нем новый проект и импортируем туда наш *.dsn файл (Файл→Импорт). Откроется плата, "составленная" в Eagle:

Eagle PCB

Беспокоиться о пересекающихся проводниках на этом этапе тоже не стоит.

Для начала, подправим кое-какие настройки топора, чтобы наша плата вышла однослойной. Нажмем F4 и в открывшемся окне состава дизайна проделаем следующие изменения:

  • В пункте "Автотрассировка→Назначение цепей на слои" назначим все цепи на слой 1#Top.

  • В параметрах автотрассировщика выберем однослойную трассировку (слой нижний нетрассировочный), разрешим соединять планарные контакты напрямую и укажем форму проводников — "Дуги".

  • В пункте "Редактирование→Размещение" разрешим применять автоматическое размещение ко всем незафиксированным компонентам.

  • В пункте "Редактирование→Проводники" разрешим создавать "капельки" (плавное расширение проводника при подходе к контактной площадке) и разрешим плавное сужение проводников.

Теперь, в панели "Управление отображением" (Ctrl+D) отключим отображение всех нижних (Bottom) слоев, всех переходов и укажем, что компоненты располагаются на верхней стороне.

Запустим пробную трассировку (F5 и если надо F10). Топор нарисует нам примерную схему размещения проводников:

Sample PCB

А сейчас запустим автоматическое размещение элементов. После завершения процедуры проводники не будут пересекаться (в идеале) и их суммарная длина будет уменьшена. К сожалению, какого-либо индикатора завершения процедуры в топоре нет. Если по прошествии 15 минут размещение элементов больше не меняется, то можно останавливать процедуру автоматического размещения — топор разместил все наилучшим образом. То есть вот таким:

Auto setting components

Естественно, для домашнего изготовления (методом ЛУТ) подобная плата непригодна. Да и неудобная она — контактные площадки расположены где попало…​

Немного подвигаем компоненты, не нарушая общего взаимного из расположения. Для удобства включим сетку, чтобы компоненты располагались более-менее ровно:

PCB net

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

Manually set details

Теперь запустим процедуру автотрассировки (F6). Перед нами появится вот такая таблица:

Autorouting

Останавливать процедуру можно, когда отношение длины проводников на одном слое к количеству переходов станет больше 25 (последний столбец таблицы). Переключаться между таблицей и трассируемой платой можно по F10. После остановки процедуры выберем самый нижний вариант трассировки — он, как правило, наилучший.

В итоге, мы получаем вот такую вот красивенькую плату:

Autorouted PCB

В принципе, ее можно уже сейчас отправлять на производство. Но у нас нет дома производства, а есть распечатка с лазерного принтера и утюг. Вполне возможно, что некоторые "узкие места" на плате не будут протравлены и замкнутся. И уж несомненно, что эти места вызовут трудности на этапе отлипания нагретой распечатки от печатной платы.

На нашей плате такими местами являются:

  • Проводник между контактом GND и резистором R6 — он слишком близко проходит от последнего и заходит на контактную площадку из под резистора.

  • Проводник между R6 и R5 — проходит между контактными площадками двух резисторов. Слишком маленький зазор.

  • Проводник от R5 к контакту №2 — проходит между контактными площадками резистора №4, слишком близко к одной из площадок.

Исправим полученные недочеты. Для этого перейдем в "Редактор топологии" (F7) и начнем двигать проводники как нам надо. Получим вот такую схему:

Manually edited PCB

Такую плату уже можно отправлять на печать.

Немного о печати. Вначале я использовал экспорт в Gerber и Drill файлы, которые затем скармливал gerbv для экспорта в PDF. Но оказалось, что gerbv до сих пор экспортирует Gerber в любой другой формат с нарушением масштаба (увеличивает плату примерно в 2 раза). Данный баг был, как мне известно, в версии 2.2 и до сих пор (версия 2.4) его не исправили…​

Но PDF для ЛУТа можно получить и в самом TopoR’е. Сначала надо поставить PDF-принтер :-), например бесплатный PDFCreator.

Для печати изображений печатных плат топор использует те же цветовые схемы, что и в окне редактора. Выберем схему "Печать" (на панели "Управление отображением"), допишем к ней несколько символов ("ПечатьLUT") и сохраним новую схему. Во вкладках выше зададим белый цвет фона и сделаем черными цвета слоев. Также отключим отображение верхнего и нижнего механических слоев, чтобы они не мешались.

Теперь жмем на "Файл→Печать" и в открывшемся окне выбираем нашу цветовую схему ("ПечатьLUT") и текущую схему отображения. Также ставим галку "Зеркальное отображение", выбираем действительный размер при печати. На вкладке "Дополнительно" ставим все три галки. Выбираем принтер "PDFCreator" и жмем на печать. На выходе мы получим PDF пригодный для ЛУТ’а:

LUT ready PCB