Обновить

Доверяй и проверяй: подход к проверке схем и печатных плат

Время на прочтение6 мин
Охват и читатели32K
Всего голосов 32: ↑29 и ↓3+26
Комментарии67

Комментарии 67

У меня проекты небольшие, поэтому проверяю сам. 3Д тоже нет.
Из того, что делаю обязательно перед отдачей платы на производство — распечатываю сторону компонентов в масштабе 1:1 с проводниками на бумаге и тупо пинцетом устанавливаю на нее все компоненты.
Очень помогает проверить футпринты и если компоненты мешают друг-другу.
НЛО прилетело и опубликовало эту надпись здесь
Расклейка на бумагу более информативна, тк позволяет посмотреть, как куда подлезать инструментом, прокладывать кабель и тд. особенно, если присутствуют всякие штуки типа micro-usb, которые трудно рисовать с высокой точностью.
На сложные детали можно посмотреть модели у производителя. Сейчас даже «китайцы» их начали поставлять.
Чаще всего рисовать самому ничего не надо, какой-нибудь добрый человек уже всё нарисовал и выложил, только качай

www.3dcontentcentral.com
grabcad.com/library

Если же нужной модели нигде нет — стоит потратить на неё время, заодно навык прокачать. А потом тоже поделиться с сообществом.

Это все классно, если автор не ошибся и если китайцы отгрузили вам именно то, с чего рисовалась модель.
То ж понятно, но, например, этап с бумагой отлично сработал, когда схемотехник (я) выдал перечень элементов снабженцу (мне) и он (то есть я) закупил все компоненты, а когда начал устанавливать их на бумаге, оказалось, что футпринты не совпадают. Те же SOPXX, или не помню какой тип, бывают разные — чуть, чуть шире, чуть чуть уже и на 3D модели фиг заметишь разницу, а компоненты сейчас обзываются чем-то вроде 74AC245NHBDTAMK — и тут легко проморгать разницу при заказе.

И это со мной, а если это два разных человека, то ошибка может возникнуть и 3D модель тут не поможет.
Смысл в дополнительной возможности проверки, абсолютной гарантии, конечно, нет даже с использованием 3D. Однако видно всё замечательно, любой сдвиг и несимметрия сразу бросаются в глаза.
Интересно, и кого же потом больше ругал шеф (Вы)? Подозреваю, премии лишили всех :)
Для того, чтобы снабженец не ошибся, партномер должен содержать все буквы, обозначающие корпус.
Это хорошо и правильно, но не всегда оно есть лучшая альтернатива распечатке на бумаге (скорее дополняют друг друга).

Не всегда оправданно тратить на 3Д-модели время. Распечатка на бумаге и проверка занимают всего несколько минут.
В 3Д-модели можно тоже ошибиться. Например, сделать с небольшим смещением отверстия в радиаторе на плату, IGBT-модуле или в чём-то ещё достаточно крупном. На модели это не будет бросаться в глаза. Даже несколько проверяющих влёгкую пропускают иные баги. Иногда всплывают несоответствия чертежам размеры уже закупленных реальных деталей (сторонние модули, корпуса, например). Бумажка бывает очень быстрым и халявным дебаггером.
Мир несовершенен, люди тоже, нам часто приходится это учитывать)))
НЛО прилетело и опубликовало эту надпись здесь
А если делать футпринты с 3d моделями, не надо будет потом на бумаге расставлять.
«Помогает проверить футпринты», если Вы ошиблись с футпринтом (взяли не тот, или ошиблись с размерами при создании) — поставив на него реальный компонент ошибка обнаружится наглядно.
Я обычно делаю так:
— схема оформляется как гибрид схемы и блок-схемы — удобно проверять и трассировать; схема сделана — сразу проверили; только после этого трассировка.
— трассировка по блокам, потом компоновка, вычищение всех мелочей, день перерыва, свежим взглядом проверка и тогда проверяет коллега.
— проверка компонентов (соответствие УГО футпринту и шагу между ножек).
— вывод герберов и проверка по ним.
Вот честно, никогда никаких траблов не было кроме шага между ножками и шириной корпуса. Например, SOIC есть узкий и широкий (а называются они одинаково) или QFN с шагом 0.5 и 0.65.
— схема оформляется как гибрид схемы и блок-схемы — удобно проверять и трассировать; схема сделана — сразу проверили;
Вы имеете в виду иерархические схемы с первым листом в виде блоков?
— трассировка по блокам, потом компоновка,
Почему не сначала компоновка, потом трассировка?
— вывод герберов и проверка по ним.
Что и как проверяете по герберам?
Много ли разных устройств делаете?
Вы имеете в виду иерархические схемы с первым листом в виде блоков?
Проще на примере (блок — рамочка вокруг группы компонентов, с подписью функционального назначения блока). Схема читается слева направо, сверху вниз, все входы слева, выходы справа. 1й блок разъем питания, 2й блок преобразование 12В в 6В, 3й блок — 12В в 5В (очень условно). Блок с МК, блок с драйверами, блок с разъемами под моторы, например. Если в друг что-то случится с командой, то любой новый человек легко поймет что происходит =)
Почему не сначала компоновка, потом трассировка?
Часто есть рекомендуемая топология, сначала опираюсь на нее, потом корректирую в зависимости от габаритов и технологических требований.
Что и как проверяете по герберам?
Много ли разных устройств делаете?
Просматриваю на наличие лишних перегибов, как пролились полигоны, отверстия, маску (некоторые отверстия закрываю маской, некоторые нет), в принципе. Ну и плюс, правильность формирования герберов. Давно конечно, но было, что не совпали гербера и сверловка. Или что выводили гербера без меня, а овальные почему-то не вывелись (у альтиума они отдельно от круглых).
Много, самые разные (бытовая электроника, носимая, лед, мед, неразрушающий контроль, иот), мелкие и крупные партии, местное производство, Китай и Европа =)
Я несколько лет назад работал программистом в институте, где разрабатывали микроэлектронику. Воркфлоу был примерно такой — программисты писали модель проектируемых модулей на Haskell, потом железячники реализовывали ее на Verilog, записывали в FPGA вместе с процессором LEON (свободный Spark-совместимый) и снова отдавали нам, что бы мы писали тесты (начали на C, но быстро перешли на ассемблер). Иногда к FPGA в соседнем отделе разрабатывали плату с дополнительным железом, например I2S. И с этими платами постоянно возникали проблемы, типа перепутанной полярности RESET. Программистов это очень расстраивало, и мы думали как бы статическую типизацию из Haskell прикрутить к описанию платы. Такого рода ошибки легко бы обнаружились. Но до реализации идеи руки так и не дошли.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Могу только позавидовать вашей удаче! Если у вас появятся коллеги — как будете контролировать качество? САПР проверяет очень поверхностно, к сожалению.
НЛО прилетело и опубликовало эту надпись здесь
Статья как раз о системном подходе. К сожалению (или к счастью), опытных и не ошибающихся инженеров нельзя заказать сразу пяток, с доставкой в офис. Они получаются из неопытных, путём совершения ошибок. Иногда — очень дорогих ошибок.

Проверяя чужую работу и давая пояснения Рецензент учится сам. А перечень — просто способ упорядочить процесс, облегчить передачу знаний. И немного сэкономить на переделках.
Вы или очень везучий, или очень талантливый человек! Я как ни стараюсь, даже понимая что личные деньги уходят на производство платы, окончательная версия только к третей плате созревает. Я даже с этим смирился…
Возможно 50-60 часов в неделю дают результат, потому как у меня получается 3-5 плат в год разводить, на большее число проектов времени не хватает.
НЛО прилетело и опубликовало эту надпись здесь
У меня вся беда в том, что редко случаются проекты с узлами, которые можно дернуть из предыдущих проектов. А еще моя головная боль — Оркад 9.2, принятый за стандарт на нашей конторе. Там DRC просто вообще никакой.
Для остальных проектов использую Kicad — вот там ошибок на порядок меньше. Главным образом схемотехнические косяки. А по платам — только в плане размещения компонентов бывает. С виду вроде все хорошо, а по факту SMD конденсатор чтобы поменять нужно разъем снимать.
И да, почти всегда для аналоговых схем провожу моделирование а LTSpice. Он почему то больше всех приглянулся. Даже если работа схемы кажется очевидной, все равно моделирую. Вылазят интересные моменты по поводу устойчивости работы.
А не подскажите, есть ли в KiCad что-то наподобие сниплетов? Задумывался над тем чтобы использовать части разведенных плат из предыдущих проэктов, но не очень понятно реализована ли такая возможность в кикаде вообще?
Я не встречал. Скорее всего нет. У меня даже не было необходимости таким инструментом воспользоваться.
Интересно было-бы почитать о том как отлаживать готовую плату.
Берешь плату, берешь план тестирования, берешь подготовленные тесты (ПО и т.д.), берешь нужное оборудование. Идешь последовательно по плану. Если что-то не работает как ожидалось — первым делом осматриваешь визуально плату на случай некачественной сборки. Далее смотришь схему на наличие явных проблем. Потом вооружаешься тестером/осциллографом/спектроанализатором и пытаешься найти корень проблемы. Все очень индивидуально в зависимости от устройства, интерфейса и т.п.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
В общем, да, nerudo описал верно. У нас отладка новых плат начинается без софта — проверяются питания, соответствие диапазонов требованиям ТЗ, а затем, если у программиста что-то не поднимается — начинается совместное творчество. Самое интересное — локализация ошибок и выдвижение гипотез, тут вряд ли можно дать готовый план. У нас многие проекты совместные, когда заказчик проектирует свою часть(СВЧ), а мы — свою(управление и питание) — отладка крайне увлекательна, я вам доложу.
Был свидетелем классической ошибки, доведенной до эпичности. Две больших сложных платы, стыкуются специальными многорядными разъемами через которые тащатся скоростные параллельные интерфейсы. Когда все изготовили, собрали и включили выяснилось что входы включены на входы, а выходы на выходы. Поскольку сигналы разъемов назывались *_in и *_out, но один разработчик имел system-centric, а другой board-centric взгляд на устройство. Ну а тщательно готовить и читать документацию никто не хотел.
Ну и как-бы провода на картинках намекают не столько на проверку схем и плат, сколько на проверку схемотехнических решений, прежде чем рисовать свою схему с ними. То есть перед тем, как применять микросхему или модуль в своей схеме, посмотри на reference design, и если твой вариант применения хоть чуть-чуть от него отличается — не ленись, закажи пару семплов, или даже отладочную плату, проверь, поэкспериментируй, спаяй прототип на коленке, сделай демо и только потом переноси в свою схему.
Во первых стоимость ошибки по мере рисования и разводки платы возрастает многократно и все эти эволюционные платы и затраты на прототипирование будут стоить копейки на фоне последующего исправления косяков, а во-вторых всегда будет иметься в наличии референтная рабочая схема, с которой можно будет потом сравнить и проконсультироваться, если что-то не работает на своей плате. Без нее поиск ошибок иногда приводит к танцам с бубном и беганью по форумам.
Действительно, так мы и поступаем! Не помогает! Отладка с одним дисплеем, вам надо другой, другое питание, куча всего ещё сверху, сборка таких макетов будет занимать очень много времени. Мы макетируем только рискованные узлы, дальше — экспериментальная плата.
А не проще подключи питания и пусть плата сделает диагностику сама на каждый блок верифицирует, по возможности можно отрубить отдельно чтоб не кушал питание при выходе из строя. Ведь схема то всеравно отлажена и плата грамотно проработана и компонент лежит на своем посадочном месте
Плата может в принципе не включиться, до передачи программисту её надо протестировать.
Привет Пьеру Жаке Дро или кремнию в схемотехнике
Как говорит народная конструкторская мудрость «Сколько в первую плату не смотри, а косяки всегда найдутся»
Не страшно, если какую то цепь не провел, хуже когда с футпринтом ошибся, например графический компонент под DIP8, а присоединил SO-16 (микросхема бывает в двух корпусах).
Графический компонент нарисовал в одно время, а плату разводил через неделю, и корпус выбирал по распространенности в продаже.
А статья отличная! Все четко систематизировано. Автору большое спасибо.
Спасибо!
У нас ключевым полем в базе компонентов является партномер, поэтому разные корпуса — разные компоненты.

И это все равно не спасет от ситуации, когда ставишь, например, силовой драйвер, потом начинаешь отлаживать, а он греется как сковородка на частотах ШИМ даже в 10 раз ниже разрешенных по ДШ. Начинаешь гуглить — ан нет, норм, у всех греется. Грустно вздыхаешь и идёшь перепроектировать с нормальным драйвером. Реальность — лучший проверяющий. Все равно версии 1.1.2 будут и никуда от них не деться

Сейчас для «тренировки» делаю так:
1) Всю схему моделирую в FPGA. Постоянно проверяю на наличие глитчей и прочего из-за асинхронных частей схемы;
2) Как модель ALL-IN-FPGA отлажена, выношу основные компоненты (память, интерфейсы) на макетную плату, подключаемую к FPGA и продолжаю отлаживать с реальными таймингами этих частей;
3) И только после этого рисую схему по проекту из FPGA, по которой потом рисуется и плата.
Но у меня и проекты не сильно-то и большие — укладываются в 2к ALM, на мелкой логике и старых процессорах получается около 100 корпусов. Сейчас, например, моделирую ретро-компьютер Орион-128, сейчас уже на этапе 2, часть схемы уже на этапе 3 (видео-подсистема, с выходом на VGA, с поддержкой 4-х видеорежимов (по разрешению, и ещё 8 по цветности).
Пару лет назад начальник отдела обещал премию тому разработчику, у кого уже после запуска платы в производство не всплывет какого-либо «нюанса». До сих пор никто не получил…
Слишком расплывчатое понятие «какой-либо ньюанс» так можно докопаться и до маркировки на 1мм правее. тоже ведь ньюанс. Критерием должно быть прохождения определённого набора тестов, в которые можно включить к примеру сборку самого устройства.
В данном случае имелась ввиду именно работа разработчика схемы и вновь разрабатываемые схемы, платы другой отдел разводит. Ну и последующие итерации схемы с учетом выявленных косяков в расчет уже не принимаются.
Когда делала свою вторую в жизни плату, сделала ее зеркальной. Вот обидно то было, столько времени потрачено. А ведь предварительно распечатала на бумажке, разложила все детальки и радуюсь, что удачно получилось. Раскладывать то надо было на зеркальной копии, а я под утюг и в продакшон.
Не расстраивайтесь, я знаю не мало разработчиков, которые свои первые платы зеркалили, или, что почти одно и то же, перепутывали слой компонентов со слоем монтажа. Тоже было все так красиво, а платы в итоге только на стенку в рамочку.
Да что там первые, к нам на отладку приезжал заказчик с платой, оказалось, внутренние слои не заказали)
В общих чертах: ERC, DRC, DFM + много опыта по личной сборке и наладке устройств.

Если что-то сложное, то блок-схема в yEd с уточнением интерфейсов и связей.

В схемах — проверенные макро блоки и предварительные консультации с программистами, смогут ли они сделать так, как я планирую.
Какие-то новые не совсем понятные схемы — макеты и отладки с доработками под себя.
Если что-то есть для того же LTSpice'а, то в нём, но и на старуху, как оказалось…
Если компоненты от TI — то обязательно изучение всех вопросов по компоненту в их e2e форуме. А то была чудесная микруха преобразователь pcie-4xUSB3 у которой в даташите и апноуте одно, в эррате чуток другое и на прямой вопрос техасу, дык, делать как в апноуте или эррате, был ответ вида «ну если у вас не работает, то сделайте как в эррате».

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

После этого вывод в герберы и уже изучение герберов на предмет правильного вывода всего и вся. Не помню, где именно когда-то прочитал: «тополог не должен перекладывать на плечи инженера завода свои проблемы». Т.е. если в САПР правила настроены на 4 класс, а по герберам вдруг в некоторых местах получается 5-й, то нельзя лениться, надо корректировать.

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

С механикой по-хорошему надо сначала компоновать, отдавать механику 3d, потом править и так до бесконечности. И только потом трассировка. Но чаще получается в виде «вот тебе объем, тут и тут у нас винты, размещай всё вот здесь». Особенно порадовало на новой работе делать односторонние платы из-за особенностей изделий.

Чтобы не было путаницы в компонентах — все посадочные именуются по IPC. Все УГО называются с учетом конкретного корпуса (это чтобы выводы не попутать). Фактически, один компонент, одно УГО, одно посадочное.

Как правило это помогает со второй итерации получить работоспособное устройство.

А вообще, как показала практика, гарантия хорошей работы почти без ошибок — это стабильная ситуация с зарплатой, отсутствие нервяков и постоянного дерганья. И тогда «состояние потока» проходит с очень большой пользой.
Выделять TI как особый случай я бы не стал, это общая практика.
отсутствие нервяков и постоянного дерганья. И тогда «состояние потока» проходит с очень большой пользой

Верно подмечено! Жаль, что жизнь вносит свои корективы и подёргивать — таки приходится иногда.
Напишите, пожалуйста, подробнее о DFM
Смотрите, есть вот это, это и это.

Что еще? :)
Т.е. если в САПР правила настроены на 4 класс, а по герберам вдруг в некоторых местах получается 5-й, то нельзя лениться, надо корректировать.
Не подскажете подходящий инструмент для такого анализа?
Дык, CAM350.
Спасибо, выглядит неплохо. А под линкс ничего нет?
Не знаю. У меня всё под виндой :)
Фактически, один компонент, одно УГО, одно посадочное.

Вот кстати, я как на фирме работала, так отвечала за всю библиотеку. Когда каждый инженер ведет свою, друг другу проект футболят, то такая каша. Особенно улыбало, когда у компонента вручную правят параметры.
У меня каждый номинал — отдельный компонент, даже в резисторах/кондерах. Исключаем по максимуму человеческий фактор.
Создание электрических схем и трассировка печатных плат становятся всё более простыми делами.


Распространение такого мнения не может не пугать. «Копипаст решения от производителя» и «разработка уникального устройства» — немного разные по сути задачи.

Так что фразу следует читать так: «сегодня все больше задач получают готовые решения, которые достаточно всего лишь аккуратно скопировать».

А как вы проверяете свои платы?


Поскольку у меня не стоит задача разрабатывать триста шестьдесят пять устройств в год (решения в основном штучно-специального плана), я даю каждому проекту «вылежаться» дня три перед тем, как отправлять его в производство, даже если к концу всех проверок непосредственно после окончания трассировки стопроцентно уверен, что ошибок нет. Далее снова проверяю плату. Если мне все еще кажется, что ошибок нет, то отправляю ее в производство.

А так все стандартно — DRC, ERC, проверка соответствия платы схеме, проверка электрического соединения цепей, ручная проверка топологии.
Так что фразу следует читать так: «сегодня все больше задач получают готовые решения, которые достаточно всего лишь аккуратно скопировать».

Всё верно, это и имелось в виду. Для большинства задач в промышленной/потребительской электронике этого достаточно.
Вы в одиночку делаете штучно-специальное?
В некотором смысле да. Мной «усиливают» в плане разработки электроники команду, состоящую из специалистов в предметной области (физиология/физика). Они понимают, что нужно сделать, а я — как. :) Разумеется, разработкой занимаюсь не я один; кроме меня есть конструкторы механики, это отдельные люди; при необходимости к нам присоединяются программисты Android и т.д. Но схемы/платы/прошивки электроники на мне.

Да, забыл сказать. Я тоже практикую распечатывание на бумаге макета платы в размере 1:1 и примерку критичных (или тех, которые использую впервые) компонентов. Выглядит не супер-профессионально, зато такой способ, при своей простоте, может сэкономить деньги на перезаказе плат. :)
Поскольку часто при проверке таких вещей мозг упускает 1 из 20-30 пунктов я для себя составил список проверок, такой как бы человеческий DRC, такой же как в САПР, но составленный в том числе из правил которые нельзя или сложно заскриптовать в DRC САПР.

1) Проверка удовлетворения системными решениями
— Требований ТЗ
— Параметров выбранных электронных компонентов, влияющих на требуемые в ТЗ характеристики
— Удовлетворяемости системы и ее составляющих условиям эксплуатации
— Соображений целесообразности
— Соображений экономичности и выгоды
— Удовлетворения себестоимости
— Общих правил проектирования электронных систем
2) Проверка схемы
— Проверка наличия всех названий и каких-либо комментариев на схеме
— Проверка соответствия подписей выводов их номерам
— Проверка правильности установленных типов выводов (Input, Output PushPull, Opendrain, HiZ, Analog, etc...)
— Проверка проводниковых соединений всех УГО между собой согласно их даташитам и согласно ТЗ
— Проверка на непреднамеренные соединения, недосоединения и КЗ
— Проверка удовлетворения рабочих параметров элементов после соединения их между собой
— Проверка удовлетворения ограничений рассеяния мощности из даташитов компонентов
— Проверка согласования импедансов если нужно
3) Проверка платы
— Общая проверка DRC по выбранным нормам завода-изготовителя
— Проверка коллизии компонентов
— Проверка на баланс термосопротивлений паяемых площадок компонентов
— Проверка на способность окружающей обстановки (полигонов, радиаторов, корпуса и т.д.) теплорассеивающих элементов эффективно рассеивать их тепло согласно данным даташита
— Проверка контура платы на наличие участков неоптимальной формы, либо легколомких участков
— Проверка правильности заливки полигонами платы
— Проверка правильности разводки земель
— Проверка согласования импедансов если нужно
— Проверка выравнивания высокоскоростных цепей если нужно
— Проверка целостности сигналов (если необходимо — SI симуляция) и качества разводки сигнальных цепей
— Проверка целостности питания и качества разводки шин питания
— Проверка возможности монтажа и удовлетворения правилам монтажа выбранного изготовителя
— Проверка эргономичности расположения управляющих и электроустановочных элементов
— Проверка возможности порчи легкоплавких частей компонентов при запайке рядом с ними компонентов с тугоплавким припоем с высокой температурой

Кажется, ничего не упустил. Берите, нахаляву.
Спасибо! А что вы проектируете, если не секрет?
Все что угодно, в данный момент работаю там где нужно заниматься поддержкой и модификацией встраиваемого ПО комплектов контроллера входа-выхода и бортового компьютера для управления гидроприводными системами устанавливаемыми на грузовиках и тракторах наподобие бульдозерного трала или мусоровозной камеры, всего что можно навесить на грузовик.
Тебе просто дают схему и печатку нарисованную в кореле или спринт лайотуе и тебе хочется всех убить.
В такие моменты не надо себя сдерживать
Я боюсь Брейвик тут ребенком покажется. А в наших тюрьмах интернеты не дают, даже ограниченно. А Я видел целые конструкторские отделы, работающие ТАК.
Ну надо менять работу тогда. Если же люди не задумывались о сохранении возможности сменить работу, или как то повлиять на текущий ход работы, то сочувствую, потому что довольно часто в начальстве (да и среди коллег) сидят люди которым пофиг на работников. То есть это эгоисты. Это означает необходимость каждодневного слежения и планирования жизни, куда входит и создание возможности смены работы/пассивного дохода и т.д. Просто потому что среди нас подлые эгоисты, для которых покушение на другого либо наплевательство на другого если он не имеет защиты — каждодневная привычка. Поэтому когда «хочется всех убить» — то значит, на вас кто-то наварился.
Ну мне работу сменить сложно. Я сам на себя работаю. А поддерживать приходится проекты которые беру на доработку. Я конечно за такое говно заряжаю конский ценник. Но от этого всех убить мне меньше не хочется.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
thirdpin.io
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия