Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Опыт использования KiCAD
Форум разработчиков электроники ELECTRONIX.ru > Печатные платы (PCB) > Разрабатываем ПП в САПР - PCB development > KiCAD
embddr
Здравствуйте!

Я уже давно пользуюсь KiCAD-ом (первое устройство в нем я сделал 10 лет назад), но в основном использовал его для рисования схем (платы разводили другие люди в более серьезных CAD-ах) или для совсем простых устройств.

С появлением новых возможностей решил попробовать развести что-то посложнее с дифпарами и выравниванием длин. Результат в прикрепленном файле.

Сразу скажу, что я не занимаюсь трассировкой, т.е. теорию знаю, но практикой не особо владею. По этому судите не сильно строго.

И собственно, вот то, чего мне не хватало:

Более гибкого задания правил трассировки. Например, хочется задать разную ширину дорожек на внешних и внутренних слоях. Сделать зоны на плате со специфическими параметрами трассировки (у меня есть корпус BGA с шагом 0.5, там нужны очень тонкие дорожки).

Не хватало раскраски цепей. Я видел в интернете наколеночный патч, но его не приняли в апстрим.

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

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

Очень полезной опцией было бы отключение неиспользуемых контактных площадок на внутренних слоях на переходных отверстиях (да и в обычных отверстиях тоже). В моем случае это позволило бы сократить количество слоев до 4-х.

Я не смог стандартными средствами сделать нормальный сборочный чертеж, потому что в редакторе компонентов нельзя добавить еще один экземпляр текста REFDES на другой слой. Пришлось править файл kicad_pcb вручную (не совсем вручную, с помощью скрипта в Emacs), чтобы сделать копии текста и линий с шелкографии на слой Fab с одновременным уменьшением размера и толщины.

Наверное это не всё, есть какие-то еще мелкие придирки, но они не существенны. Например, нельзя отключить связь между Pcbnew и Eeschema, когда выделяешь компонент на плате, и указатель на схеме тоже переносится на этот компонент.

Вот как-то так. Плата отправилась в производство, посмотрим, что из этого получится.

Чертежи:
Нажмите для просмотра прикрепленного файла
break
embddr
Я разводил DVI и LVDS с дифпарами. На разрешении 640х480 - всё было нормально, на большем пока не проверял. Переделаем матрицу, тогда проверю на 1024х768.
Выравнивание можно сделать в ручном режиме - длина проводника отображается. И "загогулины" тоже приходится рисовать вручную - штатный инструмент глючит. Не слишком удобно, но и денег (у некоторых пакетов запредельных) не стоит.
Для сборочного чертежа я пока нашёл такой способ: сгенерировать все нужные слои в формате SVG, отредактировать их в Inkscape, объединить в одну картинку и сохранить в нужном формате. Только при преобразовании в DXF масштаб меняется (а может при получении SVG).
Смысла в отключении связи Pcbnew и Eeschema не понял.
faa
Цитата(break @ Sep 1 2016, 17:34) *
Выравнивание можно сделать в ручном режиме - длина проводника отображается. И "загогулины" тоже приходится рисовать вручную - штатный инструмент глючит.


Макросы в гост-версии кикад помогают рисовать "загогулины". Из основного их успешно выпилили.

to embddr

Насчет скриптов - это правильный подход.
Форматы все открыты и текстовые -> чудить можно как угодно.

Я скриптами заношу задержки в чипе у плис по данным из файла производителя.

Насчет длин - ИМХО, надо еще учитывать толщину платы при переходах со слоя на слой, при двух переходах на 2мм плате до 25 псек набегает.
embddr
Цитата(break @ Sep 1 2016, 17:34) *
Смысла в отключении связи Pcbnew и Eeschema не понял.

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

Цитата(faa @ Sep 1 2016, 22:00) *
Насчет скриптов - это правильный подход.
Форматы все открыты и текстовые -> чудить можно как угодно.

Я скриптами заношу задержки в чипе у плис по данным из файла производителя.

Насчет длин - ИМХО, надо еще учитывать толщину платы при переходах со слоя на слой, при двух переходах на 2мм плате до 25 псек набегает.

Да, этим мне и нравится KiCAD. Особенно после того, как начали внедрять s-expressions, с ними очень удобно работать из лиспа.
У меня есть скрипт на scheme, который парсит схемные файлы в обе стороны. Я из этих даных делаю BOM и вношу какие-то изменения в схему (например, можно автоматически проставить футпринты, переименовать поля в элементах, и пр.).

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

Цитата(faa @ Sep 1 2016, 22:00) *
Макросы в гост-версии кикад помогают рисовать "загогулины". Из основного их успешно выпилили.

У меня 4.0.3-stable из репозитория ArchLinux, там есть макросы. В unstable выпилили? Зачем?
embddr
Вот еще что забыл: copper thieving - заполнение пустых пространств на внутренних слоях медными квадратиками (или кружочками).
Можно было бы это сделать на базе зон с заполнением квадратами, а не сплошняком. И еще прибавить к этому удаление квадратов меньше определенной площади.

Я делал вручную:
  1. нарисовал неподключенную зону;
  2. экспортировал в SVG;
  3. в Inkscape сложил это с шаблоном заполнения квадратиками;
  4. вручную удалил неполные квадраты;
  5. экспортировал в DXF;
  6. в QCAD'е заполнил квадратики заливкой линиями;
  7. импортировал DXF в KiCAD'е.

Не сложно, но много лишних телодвижений. Хотя, по большому счету, можно было вообще не делать, а залить сплошной зоной с большими зазорами.
embddr
Вот что получилось:
Нажмите для просмотра прикрепленного файла

А это микросхема, под которой проводники шириной 0.075мм:
Нажмите для просмотра прикрепленного файла

Были некоторые вопросы со стороны производителя, связанные со сборочным четрежом (который в KiCAD'е нельзя сформировать автоматически). Например, на некоторых элементах я не указал первый вывод, и пришлось ориентироваться по шелкографии. В остальном проблем не было.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.