Авторазмещение элементов и автотрассировка печатных плат

Всем привет! На написание статьи меня подтолкнула программа, на которую я наткнулся в поисках способов автоматизации разработки печатных плат (а упоминаний, тем более статей про неё я на хабре не нашёл). Но, обо всём по порядку.Итак, конструкция разработана, собрана на макетной плате, проверена в действии. Дальше — печатная плата. Если верить форумам, то многие (в том числе и мои знакомые) используют Sprint-Layout. Но ведь это ручная работа, тот же карандаш и бумажка, только в электронном виде. Зачем все эти ядра процессора и гигабайты памяти, если приходится всё равно работать ручками? Признаюсь, меня это всегда коробило.Сейчас я расскажу, как добился удовлетворительного для меня результата в автоматическом режиме.171b01574472405082bf24a4224be007.pngКрасивая картинка для привлечения вниманияА использовал я связку Proteus плюс TopoR Lite.Сразу скажу, что к данным продуктам имею отношение лишь как пользователь и ни в коем случае не рекламирую их. Тем более, что Proteus можно спионерить найти на просторах интернета (конечно же в ознакомительных целях), а TopoR Lite бесплатен (с некоторыми ограничениями).Почему именно эти программы? Изначально пользовался Proteus. Не помню, с чего началось, но меня вполне устроило: можно рисовать схемы, моделировать работу, разводить платы. Первые два получались хорошо, последнее не нравилось, искал идеал.Я пытался рисовать схему в Eagle. Но то ли я рукожопый, то ли нужны особые привычка и сноровка, в общем, мне не понравилось. Сначала я долго не мог понять, как добавить элемент. Потом оказалось, что нужно подключать библиотеки с необходимыми элементами. А откуда я знаю, как называется библиотека, если я и названия элемента-то не знаю (например, разъёмы я ищу исключительно по картинкам). В Eagle по умолчанию не оказалось нужных мне Attiny2313 и Atmega328. Пришлось гуглить/скачивать/копировать нужную библиотеку. Ну и шины питания в Proteus подключены сразу (и даже эти пины у микросхем скрыты, чего внимание отвлекать), а тут пришлось раскидывать их явно. Итогом через полчаса тыканий оказалась одна микросхема, подключенная к питанию.Я пытался рисовать в DipTrace. В принципе, рисовать удобно. Однако нет (или не нашёл) симуляции работы, мне это нужно и для отладки схемы, и для отладки программ МК. Взгруснул и вернулся в ISIS.Зачем внешний трассировщик TopoR, если в ARES есть встроенный? Он уныл. Те цепи, которые не может развести, он просто бросает. Если с двусторонней разводкой этого почти не происходит, при односторонней и минимальных габаритах платы получается ужас. А поскольку текстолит у меня односторонний, да и делать двусторонние платы сложнее, я решил — хочу с одной стороны плюс перемычки.Авторазмещение в ARES тоже ужас, но альтернатив я не нашёл, а вручную делать ничего не хочется. Как говорится, на безрыбье и щуку раком.Итак, предлагаю рассмотреть средства автоматизации на стандартном примере из Proteus 8 — Thermo.Схема: 5ab51cee41a24238a43b816fdc7d0f60.png Переходим в ARES, удаляем всю ту красоту, что наделали хитрые создатели Proteus и нажимаем на Auto-placer. Тут открывается ещё один недостаток этого инструмента: он умеет помещать компоненты только на одну сторону платы (я полчаса потратил в поисках решения, пока в справке не прочёл, что это невозможно). Т.е. если вы используете и SMD корпуса, и обычные и хотите, чтобы они были с разных сторон платы — придётся ручками перемещать компоненты с одной стороны на другую, причём каждый по-отдельности.Итогом авторазмещения становится такая картина: aa9b483235f74103880c779b2853b75b.pngДабы посмотреть, как в ARES работает автороутер, идём в Design Rule Manager, выставляем дороги POWER и SIGNAL только с одной стороны (у меня Top Copper), ширину T25 (чтоб с ЛУТ проблем не было) и запускаем Auto-router.Вот что получается: 7543fbd7c1d04473ae11084c2bc88e78.pngТо есть 43 дорожки он не развёл и придётся делать перемычки.Что ж, давайте опробуем TopoR.Опять же нажимаем Auto-router, там Export Design File и сохраняем. В TopoR Импорт → Specctra и открываем файл. Теперь надо немного настроить. В Параметрах дизайна (F4) удаляем лишние 14 слоёв, в Ширине проводников ставим от 0,3 до 0,6 мм. Нажимаем кнопку Автотрассировка, в настройках галки Переназначить функционально эквивалентные контакты компонентов (на всякий случай: мне показалось, что данная опция не совсем работает или даже совсем не работает), Однослойная трассировка и жмём кнопку Запустить. Трассировщик автоматически сохраняет лучшие варианты, которые потом можно добавить в проект. Трассировка закончится только после нажатия кнопки Остановить. Обращу внимание, что перемычки расставляются автоматически, и даже размещаются контактные площадки под них. Я дождался, пока количество переходов не достигло 30 (т.е. 15 перемычек): 7512ea30722c4704a92d6a8ec1a93dad.png15 перемычек против 43 в ARES — гораздо лучше! Потратив 5 минут и чуть переместив компоненты/раздвинув границы платы можно получить 10 переходов (5 перемычек), что уже допустимо: a8dff6fdb76346d899e5bd34d4951959.pngА как по мне — 5 минут перемещать уже накиданное гораздо веселей, чем с нуля всё раскладывать по плате.Белые кружочки — нарушения DRC (дорожки/компоненты расположились слишком близко). Не беда — вручную чуть передвинем эти самые компоненты и дорожки и нажмём F7 — они аккуратно перепроложатся, ошибки устранены (впрочем, я видел, как эта самая F7 глючит: после очередного нажатия ложит одну из дорог поверх нескольких других, а потом ругается об ошибке).Специфичная для TopoR кривизна дорожек веет тёплой ламповостью и напоминает про времена, когда платы разводили карандашом на листочке в клеточку, а на текстолите рисовали нитрокраской/нитролаком и иголкой/шприцем/пастиком гелевой ручки. Лично меня это прёт.Когда результат получится удовлетворительный, можно либо экспортировать плату, либо распечатать прямо из программы (есть даже галочка Зеркальное отображение, видимо специально для ЛУТ).Пример реальной платы: 2c59e96d705c4b3e80fc59980ea392da.jpgПолигоны в TopoR рисовать можно, причём сплошные/штрих/сетка, но я про них забыл. На этой плате нарисовал их маркером для дисков. Штрихованные пятачки — как раз перемычки.Буду рад, если статья помогла кому автоматизировать нудные процессы. Буду благодарен, если расскажете про более удобные инструменты для авторазмещения и автотрассировки (особенно авторазмещения).

© Habrahabr.ru