Теперь мы знаем достаточно, что бы приступить к созданию своей первой полноценной печатной платы. У нас уже есть учебный проект с готовой схемой симметричного мультивибратора и мы продолжим с ним работать. Надеюсь, вы сохранили его.
Поскольку проект учебный, печатная плата тоже будет учебной. Мы будем использовать и выводные компоненты, и SMD. Конечно, для такой простой платы в этом нет необходимости, это сделано лишь для наглядности. Но в реальных проектах такое бывает.
И уже в процессе трассировки платы мы познакомимся с интерактивным трассировщиком. В KiCad нет собственного полностью автоматического трассировщика. Я знаю, что это может сильно расстроить некоторых читателей. Но в реальности, даже при использовании автоматической трассировки, все равно не удается избежать ручной трассировки.
Нет в KiCad и авторазмещения компонентов на плате. Безусловно, компоненты из схемы на плату переносятся автоматически. Но они просто "свалены в кучу". Оптимизации размещения компонентов в пределах платы нет.
Перенос компонентов из схемы на печатную плату. Размещение компонентов
Давайте запустим KiCad и откроем наш учебный проект. Как я уже говорил, для наглядности будет использоваться смешанный набор компонентов. Вот такой
Транзисторы BC547 выводные, в корпусе TO92, я выбрал вариант с расположенными в один ряд выводами. Конденсаторы тоже выбраны выводные, в данном случае, дисковые. А вот резисторы выбраны для поверхностного монтажа, размера 1206. Еще раз повторюсь, это сделано лишь для примера. Ну а для разъема использовано "самодельное" посадочное место.
У вас компоненты могут быть совсем другие. Например, могут использоваться только SMD, или только выводные компоненты. Соответственно, и печатная плата будет получаться другой. Это совершенно нормально. Ведь статья не о том, как правильно трассировать печатные платы. Статья о том, как это можно делать используя KiCad.
Теперь запустим редактор печатных плат. Не важно, как именно это будет сделано, из редактора схем или через менеджер проектов. Поскольку у нас еще нет файла печатной платы, мы увидим окно с подтверждением создания новой печатной платы.
И вот тут мы сталкиваемся с несколько нелогичным поведением KiCad. Если редактор печатных плат запущен из менеджера проектов, то при нажатии кнопки "Нет" редактор не будет запущен. Это логично и ожидаемо. Но если мы будем запускать редактор печатных плат из редактора схем, то совершенно неважно, какую кнопку нажимать, редактор печатных плат все равно будет запущен. И это уже нелогично.
Более того, на самом деле файл печатной платы в каталоге проекта создан при этом не будет. И это отлично видно в менеджере проектов. Файл печатной платы будет создан только при сохранении результатов редактирования.
Когда редактор печатных плат запустится, вы увидите знакомое по предыдущим статьям окно с черным фоном и рамкой чертежа. Впоследствии, когда вы будете запускать редактор с уже созданной платой, пусть и незаконченной, она будет автоматически загружаться из файла. Но пока окно пустое.
Теперь настроим параметры печатной платы. В данном случае настроек будет совсем немного. По умолчанию, печатная плата имеет два медных слоя с размещением компонентов на обеих сторонах. У нас плата будет однослойная, но в KiCad нет возможности задать только один медный слой. Это нам совершенно не помешает. Поэтому оставляем все, как есть.
Но вот ширина дорожки по умолчанию 0.25 мм несколько маловата. Предположим, что изготавливать и паять плату будет новичек, поэтому открываем вкладку "Классы цепей" и задаем ширину дорожки 0.5 мм, и зазор 0.5 мм. Остальные параметры не трогаем. Разумеется, вы можете выбрать и другие ширину и зазор. Это становится параметрами платы по умолчанию.
Давайте теперь перенесем на плату компоненты из схемы. Для этого воспользуемся соответствующим инструментов из верхней панели инструментов
Результат, если нет ошибок, будет таким
Если для некоторых компонентов посадочные места не были назначены, или назначенное посадочное место было удалено из библиотеки, в этом окне будут сообщения об ошибках. Разумеется, в этом случае нужно будет нажать кнопку "Закрыть" и исправить ошибки. Перед этим список ошибок можно сохранить в текстовом файле.
Когда все ошибки устранены мы можем нажать кнопку "Обновить плату". Внешне, изменений на экране будет мало. Но в верхней части окна появятся компоненты из нашей схемы. Вот так
Размер компонентов (видимый) будет зависеть от установленного масштаба. Но само окно переноса компонентов не закроется. Нужно еще нажать кнопку "Закрыть". Теперь наши компоненты, как будто мы использовали блочное выделение и перемещение, окажутся "приклеенными" к курсору мыши и будут перемещаться вместе с ним.
Вы можете изменять масштаб с помощью колеса мыши и выполнять панорамирование при нажатом колесе. Все как обычно, как мы уже знаем и умеем. Компоненты остаются "приклеенными" к курсору.
Выберите подходящее место на экране и нажмите левую кнопку мыши. Я сделал это в центре листа. Компоненты "отклеиваются" от курсора. Но они остаются выделенными! Это блочное выделение. И мы можем перемещать блок, если нас что то не устроило. Клавиша M, как и ранее, позволяет выполнять перемещение. А клавиша R вращение. Всего блока в целом. Полный список действий можно увидеть нажав на правую клавишу мыши.
Что бы снять выделение кликните мышкой в любом свободном месте окна. Результат будет таким
Просто изменился цвет, пропала белесость. Это показывает, что выделение снято.
На экране расположение компонентов больше похоже на беспорядок, даже бардак. Тем не менее, уже можно посмотреть на 3-х мерную модель платы. Это совершенно необязательно делать именно сейчас, но я, только для примера, покажу, как все выглядит
Все компоненты расположились с одной стороны. 3-х мерной модели разъема нет, я создал посадочное место, но не стал создавать 3-х мерную модель. И хорошо видно, что далеко не все слои редактора печатных плат располагаются на печатной плате. В частности, слой F.Fab, с которым мы уже сталкивались ранее, в редакторе виден, а на плате действительно отсутствует.
Давайте отключим слои F.Fab и B.Fab и в редакторе (снимем галочки видимости в списке слоев справа), что бы уменьшить объем отображаемой на экране информации
Стало немного нагляднее, а информация о номиналах компонентов нам сейчас и не нужна. Слой B.Fab пока ничем не был занят, мы просто отключили его заранее.
У нас печатная плата будет однослойная. Поэтому SMD компоненты не могут размещаться на верхней стороне, там не будет медного слоя. Давайте перенесем резисторы на нижнюю сторону платы. Для этого наводим курсор на резистор (не на его позиционное обозначение!) и нажимаем клавишу F. Контактные площадки становятся зелеными, а позиционное обозначение фиолетовым и зеркальным, а его положение меняется. Выполняем это для всех резисторов. Результат будет таким
Тонкие белые линии отображают связи меду выводами компонентов. Эти связи заданы нашей схемой. Управлять отображением связей можно с помощью инструмента "Скрыть/Показать связи" на левой панели инструментов.
На правой панели инструментов есть удобный инструмент "Подсветить цепь". Вот как он работает
Нужно просто выбрать этот инструмент и кликнуть на каком либо выводе или дорожке. Что бы снять подсветку нужно кликнуть на любом свободном месте окна. Во время прокладывания дорожки цепь автоматически подсвечивается, поэтому пользоваться инструментом не требуется. Но при размещении компонентов на сложных платах инструмент может оказаться полезным.
Давайте теперь разместим, передвинем, компоненты примерно так, как они будут размещаться на готовой плате. Почему примерно? Потому что при трассировке может потребоваться дополнительно "подвигать" некоторые компоненты.
Буквально пару слов нужно сказать о сетке. В отличии от редактора схем, здесь нет жестких требований к шагу сетки. Можно выбрать любой, какой вам больше нравится. Я выберу шаг 0.254 мм.
Перемещать можно как сам компонент, так и его позиционное обозначение и значение. Отображение значений (слои Fab) мы отключили. Да и позиционными обозначениями займемся позже. Будем перемещать собственно компоненты.
Точно так же, как мы переносили компоненты на другую сторону платы, наводим курсор на компонент или его контактную площадку и нажимаем клавишу M. Если под курсором окажется несколько элементов, то можно увидеть окно выбора
как и в редакторе схем. Выбираем "Посадочное место" и нажимаем левую кнопку мыши. Посадочное место "приклеивается" к курсору и мы можем его перемещать. При этом возможно и вращение с помощью клавиши R. Повторное нажатие на левую кнопку мыши размещает посадочное место на новом месте. Вращение с помощью клавиши R можно выполнять и отдельно. Можно использовать и блочное выделение.
Например, на первый взгляд, неплохо выглядит вот такое размещение
Практически так же, как на схеме. Однако, пересечение связей в середине платы создаст трудности при трассировке. У нас достаточно широкие дорожки, а медный слой всего один. Но можно поменять местами R2 И R3
Так лучше. Кстати, обратите внимание на тонкое контуры вокруг контактных площадок. Они показывают размер зазора.
Начинаем трассировку. Интерактивный трассировщик
В предыдущей статье мы занимались параметрами платы, а вот параметры трассировщика остались "за кадром". Давайте кратко их рассмотрим.
Настройки "прячутся" в двух местах. Первая часть настроек доступна через меню "Настройки" и его пункт "Настройки...".
Нас интересует вкладка "Pcbnew". Все настройки я не буду рассматривать, только несколько основных, нам интересных.
Прежде всего, это "Притягивающиеся точки". Во время трассировки, при приближении курсора к соответствующей контактной площадке, к которой дорожка и должна подключаться, курсор может автоматически перепрыгивать, "примагничиваться", на контактную площадку, в ее центр. Аналогично, при приближении к соответствующей дорожке.
Доступные варианты
- Никогда. Прилипания, примагничивания, нет
- Всегда. Курсор всегда перепрыгивает на контактную площадку.
- При создании дорожки. Курсор перепрыгивает на контактную площадку только при прокладывании дорожки.
Дело в том, что прокладывание дорожки считается законченным только при ее доведении до центра контактной площадки. И включенное "притягивание" помогает при трассировке. Мне больше нравится именно последний вариант. Но иногда приходится притягивание отключать, временно, что бы дорожка шла именно так, как надо.
Следующая группа параметров "Параметры трассировку устаревшим инструментарием". Не так давно, все параметры этой группы оказывали влияние на трассировку. Но в текущей версии, 5.1.12, на эти параметры можно не обращать внимания.
Собственно параметры интерактивного трассировщика можно найти через пункт "Настройки интерактивного трассировщика..." в меню "Трассировать"
Это параметры по умолчанию.
Интерактивный трассировщик автоматически ведет дорожку за курсором мыши от ее начала. И может работать в трех режимах.
- Подсвечивание препятствий. В этом режиме можно и разрешить не соблюдать правила проектирования. То есть, эта настройка заменяет параметры "устаревшего" инструмента. Вот так выглядит режим подсвечивания
Я повел дорожку от среднего вывода транзистора VT1. Видно, что правильная цепь подсвечена, это левый вывод конденсатора С2. Цепь включает в себя и нижний вывод резистора R3, он тоже подсвечен. Но в режиме "подсветки препятствий" интерактивный трассировщик просто ведет дорожку за курсором не обращая внимания ни на что. При этом у нас оказался нарушенными зазор до вывода "1" транзистора, поэтому он подсвечен (яркий зеленый). Подсвечена и дорожка, которую вновь проводимая дорожка пересекает, так как они не должны пересекаться.
Если разрешено несоблюдение правил проектирования, то можно эту дорожку подключить к любой контактной площадке, даже не входящей в цепь. И, в любом случае, можно спокойно завершить дорожку в любом месте. Тут все полностью в ваших руках.
- Расталкивание. В этом режиме интерактивный трассировщик пытается переместить уже проложенные дорожки. Выглядит это примерно так
Обратите внимание, что дорожка, которая нам мешается, теперь не подсвечена, а перепроложена. Причем с соблюдением правил проектирования. Интерактивный трассировщик делает это автоматически, с любой мешающейся дорожкой. Однако, он не умеет автоматически переходить на другой слой меди. Дорожки перепрокладываются только в пределах текущего слоя.
- Обход препятствий. В этом режиме интерактивный трассировщик пытается сам выбрать путь дорожки от ее начала до курсора мыши. Выглядит это примерно так
Я просто отметил начало дорожки и переместил курсор в конечную точку. Теперь мешающая дорожка осталась нетронутой. А прокладываемая дорожка автоматически обошла препятствия.
Интерактивный трассировщик заметно облегчает трассировку, хоть и не является полным автоматом. Остальные параметры подробно рассматривать не буду, можете сами поэкспериментировать.
Но кратко, без иллюстрации, расскажу о параметре "Удалять лишние дорожки". Это аналог автоудаления старых дорожек устаревшего инструмента. Если вы проложили новую дорожку между двумя точками, которые ранее уже были соединены дорожкой (идущей иным путем), то старая дорожка будет автоматически удалена.
А теперь, давайте наконец займемся трассировкой! Для этого нужно выбрать инструмент "Трассировать дорожки" на правой панели инструментов. При этом автоматически включится и притягивание к контактным площадкам и дорожкам, если это разрешено в настройках.
Устанавливаем курсор на точку начала дорожки. Причем это может быть не только контактная площадка, но и любое место. Нажатие левой кнопки мыши обозначит точку как начало дорожки. Теперь дорожка будет следовать за курсором мыши. Дорожку ведет интерактивный трассировщик по тем правилам, которые мы только что изучили.
Можно просто установить курсор на точку окончания дорожки, например, контактную площадки или дорожку, и снова нажать левую кнопку мыши. Если это контактная площадка, которая входит в цепь, то прокладывание дорожки будет автоматически завершено.
Если же клик мышки пришелся на свободном месте платы, то это создает промежуточную точку, а дорожка считается проложенной от начальной точки до промежуточной. При этом прокладывание дорожки не завершается, а промежуточная точка становится новой начальной. Это позволяет вести дорожку в полу-ручном режиме, явно задавая точки, через которые она проходит
Если дорожка просто должна завершиться в произвольном месте платы, нажмите клавишу Esc, это прервет прокладывание дорожки.
Поскольку интерактивный трассировщик ведет дорожку за курсором, вы можете просто вести мышь так, как примерно должна идти дорожка. Это окажет дополнительную помощь трассировщику. И в любой момент можете вернуть мышь в начальную точку и начать ее перемещать по любой другой траектории. Вы увидите, как это влияет на прокладывание дорожки интерактивным трассировщиком.
Учтите, что путь, по которому прокладывается дорожка, может зависеть от того, какую точку вы используете как начальную. Если отрезок дорожки между начальной точкой не совсем однозначен, то можно повлиять на выбор трассировщика с помощью клавиши / (слэш, дробная черта). Вот небольшой пример
Поскольку мы уже задали умолчание ширины дорожки и зазора (класс default), все дорожки будут шириной 0.5 мм и минимальная величина зазора будет 0.5 мм.
Ну а теперь, вперед! Начинайте трассировку! Дорожки нужно проводить в слое B.Cu, это нижний слой меди. Для однослойных печатных плат с выводными компонентами это именно так. Для однослойных плат с SMD компонентами, естественно, дорожки нужно прокладывать в верхнем слое.
У меня получилось как то так, очень быстро, в режиме обхода препятствий
Плата готова? Не совсем. Мы еще не задали границы платы. Делается это в помощью инструмента "Добавить графическую линию". Рисовать линию нужно в слое Edge.Cuts. Линия должна быть обязательно замкнутой! Проводить горизонтальные и вертикальные линии помогает зажатая клавиша Ctrl. А то, что мы попали точно в точку начала/конца другого отрезка, помогает определить небольшой появляющийся кружок
Границы платы теперь есть, но у нас не наведен порядок с позиционными обозначениями, которые будут на плате в слое шелкографии. Несмотря на то, что плата однослойная, слоев шелкографии все равно два. Давайте сначала разберемся с верхним.
В списке слоев редактора выберите слой F.Silks. Предварительно нужно отменить любой выбранный ранее инструмент. Обратите внимание, когда выбран определенный слой, все элементы, лежащие в этом слое, поднимаются на передний план.
Теперь, наводя курсор на позиционные обозначения, можно их перемещать (М) и вращать (R). Дорожки нижнего слоя нам не мешают, но вы можете выключить их отображение. Обозначения транзисторов расположены удачно, а вот обозначение разъема и конденсаторов нужно передвинуть. Получилось так
Теперь займемся нижним слоем шелкографии. Для этого выберем слой B.Silks. Обратите внимание, надписи снова оказались на переднем плане, а не под дорожками.Это не влияет на расположение слоев на плате, это влияет только на отображение в редакторе. Давайте перенесем обозначения резисторов на правую сторону, что бы они не были близко к краю платы. Вот результат
Вот теперь плата готова! И можно полюбоваться на результат.
Вид сверху, со стороны размещения выводных компонентов
Обозначения конденсаторов оказались под компонентами, что не очень хорошо. Вы можете переместить их так, как вам больше нравится. Я не буду этого делать.
И вид снизу, стороны монтажа
У нас получилась полноценная печатная плата, пусть и очень простая и односторонняя. С паяльной маской и шелкографией. В принципе, уже сейчас ее можно изготовить в домашних условиях с помощью ЛУТ или фоторезиста. А вот для передачи на производство готово еще не все. Но об этом уже в следующий раз. Статья и и так получилась очень большая.
Заключение
Сегодня мы сделали очередной, очень важный и большой шаг. Теперь вы умеете создавать печатные платы, пусть пока простые, из принципиальных схем. И уже в состоянии почти полноценно использовать KiCad в своих проектах, если изготавливаете платы самостоятельно.
В следующий раз мы продолжим знакомство с редактором печатных плат. Научимся создавать многослойные печатные платы, использовать переходные отверстия и зоны запрета, медные полигоны и термобарьеры. Будет много интересного!