Как немного облегчить себе жизнь при проектировании электроники?
Я пишу эту заметку с целью поделиться некоторым опытом, который, на мой взгляд, позволит упростить заинтересованному читателю последующие отладку и обслуживание разрабатываемого электронного изделия.
Тут не будет каких-то секретных знаний или откровений. Просто опишу ряд приёмов, помогающих сэкономить на отладке немного времени и еще чуточку собственных нервов. Всё это по отдельности, очевидно, можно найти в сети в том или ином виде.
Всё нижеизложенное — ни в коем случае не истина в последней инстанции, а всего лишь частное профессиональное мнение автора.
И ещё. Если вы признаёте только ЭПСН-40, твёрдую канифоль и паяльный жир, накладываете колбаски герметика руками и трассируете в спринтлэйауте, скорее всего некоторые советы и идеи вам не подойдут, так что смело пропускайте их мимо и не тратьте своё время и нервы на доказывание того, что и так всё работает.
На самом деле, по любому обозначенному ниже вопросу можно написать от целой статьи до монографии, я постараюсь ограничиться разумным минимумом. Пытливый читатель вполне сможет продолжить изыскания на интересующие темы самостоятельно.
Много часов спустя: пока я писал эту статью, понял, что всё одной простынёй будет, наверное, слишком утомительно и стоит всё же немного разбить то, о чём я хотел поведать.
Посадочные места и трёхмерные модели
В чём основная боль разработчика электроники? В основном в том, что даже если вы работаете по эджайл методологии (спринты, бэклоги и прочее), всё равно все ваши процессы сильно растянуты по времени и начинают напоминать водопад с точки зрения сложности исправления проблем. Не будем рассматривать очевидные проблемы с неправильной схемотехникой. Обратимся к базовой вещи.
А что является таковой для печатных плат?
Правильно. Посадочные места ЭРИ!
Прежде всего, забудьте про такую вещь, как чужие посадочные места из непонятной (или понятной) библиотеки из интернета. Только своё, только хардкор! Да, это сложно, особенно, когда проектирование электроники — не ваша основная область деятельности. Но если вы хотите делать действительно качественную электронику — начните делать футпринты самостоятельно. Так в них будут ваши и только ваши ошибки, а не чьи-то чужие. Это не так сложно, особенно если пользоваться адекватными генераторами. Например, с недостатками бесплатной версии PCB Library Expert вполне можно мириться. Зато вы получаете посадочные по IPC из коробки. Вместе с адекватными трёхмерками. При этом, создавая свою библиотеку ЭРИ, вам лучше заранее договориться, как будут называться файлы. Логично, если вы рисуете посадочные по IPC, и называть их так же по методологии IPC. Вы ведь в курсе (да?), что те же конденсаторы, одинаковые по размерам в плоскости, могут иметь совершенно разную высоту, и иногда это может иметь решающее значение.
RESC100×50X40L25NПочему это так важно? Следование рекомендациям IPC позволяет в большинстве случаев получить гарантированно адекватную пайку (для многих стандартных корпусов). Потому что люди старались, вкладывали свой опыт и знания в информацию, которая содержится в IPC-7351B и прочих документах этой замечательной организации (долой почти два с половиной часа времени и мои уши слегка подвяли от акцента Роберта, но оно того стоит, рекомендую!). Сколько моих плат было спаяно что вручную, что на конвейере в печи оплавления — практически не было проблем. При этом посадочные по IPC вполне годятся и для ручной пайки. Может при помощи ЭПСН вы их и не спаяете (на самом деле, сильно зависит от жала), но каким-нибудь клоном серии T12 — запросто!
Есть еще распространенный вариант: рисовать посадочное место по рекомендации производителя. Я так поступаю, если корпус не принадлежит к каким-либо стандартным и для него нет адекватного генератора.
Типичный пример нестандартного трындеца от TIДля совсем ленивых есть такие сервисы, как SnapEDA, Ultra Librarian и прочие, которые предоставляют вам услуги генерации посадочных мест, УГО и трёхмерок интересующих вас ЭРИ. Поскольку эти сервисы ориентированы на массовость экспорта, как правило, они не учитывают некоторых особенностей конкретных электрических САПР. Например, в SnapEDA невозможно выдать посадочные с площадками с закруглёнными углами. А переделывать сгенерированные из таких сервисов посадочные — то ещё удовольствие. Если берёте оттуда трёхмерки, обязательно проверяйте размеры. То же самое касается и 3D ContentCentral и GrabCAD. Сколько ни пытался оттуда что-то использовать в неизменном виде, всегда были расхождения по размерам.
Паяльная маска (слева) и импортированные из pdf контуры (справа)Если производитель ЭРИ даёт в документации нормальный векторный чертёж своего изделия (вы же умеете на глаз отличать векторную картинку в pdf от растровой?), бывает чрезвычайно полезно перевести его в, например, dxf, который уже потом, как правило, можно импортировать в вашу любимую САПР, чтобы убедиться, что всё то, что вы понарисовали, соответствует действительности. Это альтернативный безбумажный (а не как советует замечательный Роберт) метод проверки адекватности вашего посадочного места. В комментариях к видео еще предлагают печатать для проверки не на бумаге, а на прозрачной плёнке, но это тоже такое себе. Что делать со статикой? Как быть, если компоненты ещё только в закупке и приедут недель через десять? В общем, спорно. Кстати, импортируя dxf, всегда хорошо проверять, а соответствуют ли расставленные размеры реальным (и дело не только в чудесных словах not to scale на чертеже из документации). Я так и не разобрался, откуда возникают ошибки в импортированных из pdf размерах, но это бывает. Поэтому проверяйте, проверяйте и еще раз проверяйте! На фото ниже дорогущий компас почему-то не работал. Интересно, почему?
Реальный косяк разработчика (выбран неправильный шаг площадок) с размерами из моей практики. И ведь было припаяно. Александр, если вы узнали свой дизайн, не обижайтесь, пожалуйста! И на старуху, как говоритсяЗачем вообще заморачиваться с трёхмерками в библиотеке? Всё очень просто: чтобы облегчить себе и коллегам проектирование корпуса и вообще любой сопутствующей механики. Намного проще при создании компонента сразу привязывать к нему модель, чем после трассировки всей платы натужно сопоставлять примененные посадочные места с имеющимися моделями. И опять же, не ленитесь использовать конкретные трёхмерные модели, а не единый условный конденсатор »0603» на всю пассивку 0603. К тому же, многие производители предоставляют трёхмерки своих изделий, по которым в том числе можно проконтролировать адекватность создания посадочного места.
Почти все современные электрические САПР умеют в том или ином виде генерировать трёхмерку. Её бывает полезно показывать сборщику перед монтажом. Иногда одного взгляда на неё хватает, чтобы понять какие-то нюансы.
Шёлк
Некоторые считают следующий совет колхозом, но лично я ничего колхозного в этом не вижу: делайте разный шёлк для резисторов и конденсаторов. Разумеется, это касается SMD комплектующих.
Догадаетесь, где у этого источника питания резисторы обратной связи?
Не идеальная плата, но работаетОчевидно, что если на плате нет шёлка, то это не поможет. В основном такой шёлк полезен, когда осуществляется ручная пайка. Бывает, глаз монтажника замыливается, и площадки для установки путаются между собой. Или некоторые путают конденсаторы и резисторы (да-да, бывают и такие монтажники). На этапе отладки опытных образцов подобная маркировка существенно облегчает первичную диагностику сборки.
Ещё один совет по шёлку — старайтесь всегда и везде при необходимости расставлять дополнительный признак первого вывода. Будь это разъем, микросхема или транзистор, обозначение первого вывода всегда полезно. Причём, с годами я пришел к выводу, что наиболее удобным символом для этого является равносторонний треугольник, а не точка, плюсик или что там еще иногда рисуют.
Вот смотрите:
Шёлковые треугольникиВполне очевидно из фотографии, где первый вывод у разъемов и транзистора. А если бы это были просто три точки? Ну… может быть и было бы понятно, но шёлк не всегда бывает хорошего качества и иногда намеренную точку можно спутать просто с условной кляксой.
opt3001Что делать, когда шёлк нет смысла заказывать, а показать первый вывод хочется? А всё просто. Переносите треугольник в слой меди (или вскрытия маски). Разумеется, если окружающее пространство позволяет. Ещё один удобный приём, когда вы планируете заказывать шелкографию: рисуйте на многоногих разъемах не только первый вывод, но и с определённым шагом номера других выводов. При отладке устройства это очень облегчает тыканье осциллографом, поскольку вам не приходится вручную отсчитывать какой-нибудь семьдесят третий вывод от начала или считать, какой он там будет по порядку с конца, если в разъеме у вас 120 контактов.
Как было спроектировано и как получилось. Напаянное всё уже в работе, но смысл понятенЭто разъем для UART. Сами разберётесь, почему земля в центре, а не сбоку?Т.е. вам, практически, не требуется монтажная схема. Достаточно будет только электрической принципиальной с подписанными номерами контактов. Что делать со сквозными разъемами? Меня очень расстраивают печатные платы, на которых первый контакт в разъемах никак не обозначен отличающейся по форме медью. Ведь сразу очевидно, где тут первый контакт. Это бывает очень полезно при отладке в полях, когда плата установлена в корпусе, вы в форме буквы зю изогнулись со щупом осциллографа и еле подлезаете к разъему, а шёлк-то остался с другой стороны и вы, подсвечивая себе зиппой, думаете -, а где же тут первый вывод в разъеме? С таким никогда не запутаетесь. Кстати, буду очень признателен, если кто-нибудь в комментариях объяснит мне смысл овально-вытянутых eagle-style площадок для выводных разъемов. Я вот как-то до сих пор этого не понимаю.
Порядок слоёв
Как было и как сделалиВполне понятно, что если вы делаете двухслойку, то скорее всего герберы (я очень надеюсь, что в производство вы отдаёте герберы, а не проекты) имеют имена для меди вида TOP\BOT или Верх\Низ и тому подобное. А как убедиться, что вашу заметку о том, в каком порядке идёт медь, технолог прочитал? Или что банально слои не перепутали местами? У меня было несколько раз такое. Благодаря описанному ниже способу, завод без особых проблем и проволочек признавал брак и переделывал всё за свой счёт. Приём прост и эффективен. Добавляйте номера слоёв прямо в медь. Вот очередной пример слева. Вверху показано то, как это спроектировано, а далее вид сверху и снизу. Не забывайте делать вскрытие маски в месте размещения такой маркировки. При необходимости для просвечивания пользуйтесь фонариком. Да, разумеется, всё зависит от толщины слоёв диэлектрика, но, как правило, всё достаточно хорошо видно на четырёхслойках. На шестислойках просто с цифрами всё уже гораздо хуже. Что делать в таком случае? Лесенку. Типа вот такой:
Лесенка из меди (https://dornerworks.com/blog/pcb-stacking-stripes-could-change-the-way-you-look-at-hardware)И вот как это выглядит на реальной плате:
Вид торца печатной платы (https://resources.altium.com/p/pcb-design-test-test-structures-and-types-tests-part-1)Очень рекомендую прочитать статью в блоге Altium и посмотреть видео из другой статьи. Сам пока что такие лесенки не делал, поскольку в основном всё, что делаю, — двухслойки и четырехслойки. Очевидный минус таких лесенок заключается в том, что многие производители крайне не любят фрезеровать медь той фрезой (тупится, видать, и задиры остаются), которой выгрызают контур печатной платы. И отдельно пишут о том, что между фрезеруемым контуром и ближайшей медью должно быть определённое минимальное расстояние. Но, полагаю, если обратить внимание технолога на то, что в проекте так специально заложено, никто особо возражать не будет.
Инженеры из Gigabyte (http://www.xtremesystems.org/forums/showthread.php?267340-Sandybridge-for-overclocking-two-solutions-review) одобряют. Такую же маркировку я наблюдал и на некоторых материнках AsusВыравнивание
Хотя сам монтаж — это совсем отдельная тема, стоит упомянуть про вещь, которая может его немного облегчить.
В идеальном мире есть схемотехник, тополог, SI, PI и многие другие инженеры, которые по-хорошему должны работать над проектом. Но, жизнь часто вносит свои коррективы, и иногда паять, трассировать, моделировать и многое другое делать приходится самому (да-да, колхоз как он есть!). А когда в проекте есть ЭРИ, которые из-за размеров, веса или технологии пайки не смогут нормально гарантированно самоцентрироваться из-за поверхностного натяжения припоя, хочется изначально установить их максимально точно. Хорошо, когда есть специальный манипулятор для установки компонентов. А что делать, когда есть только пинцет, да и тот вовсе не вакуумный?
А есть вот такой приём:
Вскрытие маски по углам под корпусом (слева), оно же с периметром корпуса (центр), как это выглядит в ортографической проекции в 3D (справа)Идея очень проста: в углах компонента делаем вскрытие паяльной маски (если позволяет окружающая топология, очевидно). Ширины линии вскрытия в 0,15 мм вполне достаточно. Поскольку точность совмещения при производстве печатной платы слоёв маски с медью существенно лучше точности совмещения меди и шёлка, то можно надеяться, что вскрытые уголки будут на своём месте. С шёлком такое иногда не прокатывает, особенно на многорядных BGA корпусах, когда сместил всё на 0.5 мм и уже промахнулся на целый ряд. Очевидно, что надо понимать, для какого т.н. material condition вы делаете свои модели и посадочные места, для nominal или maximum (я всё делаю для nominal) и, соответственно, можно ожидать, что уголки будут работать не всегда идеально.
В жизни это выглядит примерно так. Мой микроскоп не делает ортографическую проекцию (странно, да?), поэтому показан только один уголКак с этим работать в реальности? А очень просто. Вы нанесли пасту через трафарет (не экономьте на трафарете, кстати!) и начинаете расставлять комплектующие. Вместо того, чтобы с одного захода сразу опускать и придавливать компонент на пасту, аккуратно опускайте его на поверхность пасты и, обсматривая с углов, добивайтесь максимальной симметричности расположения. И только после этого прижимайте компонент к пасте, тоже не усердствуя, чтобы не сдвинуть. Как правило, если паста третьего типа, не просрочена и не бодяжилась самодельным флюсом, суспензия будет совсем слегка пачкать площадки компонента. При необходимости до прижима можно даже снять компонент и не перенаносить пасту и не чистить площадки компонента.
И последнее, но далеко не последнее
А то будет как тут https://www.eevblog.com/forum/projects/silk-screen-on-exposed-pcb-padsПроверяйте герберы, которые отправляете на завод, не ленитесь! Я не буду советовать конкретный софт здесь, поскольку есть много разных просмотрщиков с разной сложностью использования и задачами, которые они могут решать. Лучше, если вы смотрите герберы не в той же программе, которая их генерирует. Ну так, на всякий случай. Наверное, очень здорово, если в таком просмотрщике можно что-то измерить (те же минимальные зазоры и толщины, например, чтобы убедиться, что ваша плата соответствует определенному классу точности). Сверка герберов даже чисто визуально помогает избежать глупых ошибок. Вы инженер, который проектирует печатную плату. Технолог на заводе в общем случае не обязан за вас думать. Его задача — изготовить вам плату максимально близко к тому, что вы прислали. А уж что вы там напроектировали, это не его забота. Может вам так надо.
Надеюсь, получилось не слишком скучно, и вы смогли почерпнуть для себя что-нибудь полезное.
Об остальных фишечках, которыми я стараюсь пользоваться, я попробую рассказать в следующий раз.
Stay tuned, как говорится!