Правила и рекомендации по рисованию хороших схем

Здесь много плохо нарисованных схем. Несколько раз люди действительно просили критиковать свои схемы. Этот вопрос задуман как единый репозиторий правил и рекомендаций по схематическому рисованию, на которые могут указывать люди. Вопрос в том

Каковы правила и рекомендации по рисованию хороших схем?

Примечание. Речь идет о самих схемах, а не о схемах, которые они представляют.

Ответы (8)

Схема — это визуальное представление цепи. Таким образом, его цель - передать схему кому-то еще. Схема в специальной компьютерной программе для этой цели также является машиночитаемым описанием схемы. Об этом использовании легко судить в абсолютном выражении. Либо соблюдаются надлежащие формальные правила описания схемы и схема определена правильно, либо нет. Поскольку для этого существуют жесткие правила, и результат может быть оценен машиной, это не является предметом обсуждения здесь. Эта дискуссия посвящена правилам, руководствам и предложениям по созданию хороших схем для первой цели, которая состоит в том, чтобы передать схему человеку. В этом контексте будут судить о хорошем и плохом .

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

У некоторых людей есть свое глупое мнение, но вот правила (на самом деле, вы, вероятно, заметите широкое согласие между опытными людьми по большинству важных моментов):

  1. Используйте обозначения компонентов

    Это происходит почти автоматически с любой программой для ввода схем, но мы по-прежнему часто видим здесь схемы без них. Если вы рисуете схему на салфетке, а затем сканируете ее, не забудьте добавить обозначения компонентов. Это значительно облегчает обсуждение схемы. Я пропустил вопросы, когда на схемах не было обозначений компонентов, потому что мне не хотелось возиться со вторым резистором 10 кОм слева у верхней кнопки . Гораздо проще сказать R1, R5, Q7 и т. д.

  2. Очистить размещение текста

    Программы создания схем обычно подбирают имена и значения деталей на основе общего определения детали. Это означает, что они часто оказываются в неудобных местах на схеме, когда рядом располагаются другие детали. Почини это. Это часть работы по рисованию схемы. Некоторые программы для создания схем делают это проще, чем другие. В Eagle например, к сожалению, может быть только один символ для детали. Некоторые детали обычно размещают в разных ориентациях, горизонтально и вертикально, например, в случае резисторов. Диоды можно размещать как минимум в 4 направлениях, поскольку они тоже имеют направление. Размещение текста вокруг детали, такого как обозначение компонента и значение, вероятно, не будет работать в других ориентациях, чем то, в котором он был первоначально нарисован. явно принадлежит этой части и не конфликтует с другими частями чертежа. Вертикальный текст выглядит глупо и затрудняет чтение схемы.

    Я делаю в Eagle отдельные повторяющиеся части, которые отличаются только ориентацией символов и, следовательно, размещением текста. Это больше работы заранее, но упрощает рисование схемы. Однако неважно, как вы добьетесь аккуратного и четкого конечного результата, важно лишь то, что вы сделаете. Нет оправдания. Иногда мы слышим жалобы типа «Но CircuitBarf 0.1 не позволяет мне этого делать» . Так что получите что-то, что делает. Кроме того, CircuitBarf 0.1, вероятно, позволяет вам это сделать, просто вы были слишком ленивы, чтобы прочитать руководство, чтобы узнать, как это сделать, и слишком небрежны, чтобы заботиться об этом. Нарисуйте его (аккуратно!) на бумаге и отсканируйте, если нужно. Опять же, нет оправдания.

    Например, вот некоторые части в разных ориентациях. Обратите внимание, что текст находится в разных местах по отношению к частям, чтобы все было аккуратно и понятно.

    Не позволяйте этому случиться с вами:

    Да, это на самом деле небольшой фрагмент того, что кто-то вывалил на нас здесь.

  3. Базовая компоновка и поток

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

    Одним заметным исключением из этого правила являются сигналы обратной связи. По самой своей природе они возвращаются «обратно» от нисходящего потока к восходящему, поэтому следует показать, что они отправляют информацию противоположно основному потоку.

    Соединения питания должны подниматься до положительного напряжения и опускаться до отрицательного. Не делайте этого:

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

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

    После некоторой расшифровки вы понимаете: «О, это усилитель с общим эмиттером. Почему этот #%&^$@#$% просто не нарисовал его как один с самого начала!?» :

  4. Нарисуйте булавки в соответствии с функцией

    Покажите контакты микросхем в положении, соответствующем их функции, а не в том, КАК ОНИ ВЫСТУПАЮТ ИЗ ЧИПА. Попробуйте поместить положительные контакты питания вверху, отрицательные контакты питания (обычно заземление) внизу, входы слева и выходы справа. Обратите внимание, что это соответствует общей схеме, описанной выше. Конечно, это не всегда разумно и возможно. Детали общего назначения, такие как микроконтроллеры и ПЛИС, имеют контакты, которые могут быть входными и выходными в зависимости от использования и даже могут меняться во время выполнения. По крайней мере, вы можете поместить выделенные контакты питания и заземления вверху и внизу и, возможно, сгруппировать вместе любые близко связанные контакты с выделенными функциями, такими как соединения драйвера кварцевого кристалла.

    ИС с выводами в физическом порядке трудно понять. Некоторые используют оправдание, что это помогает при отладке, но если немного подумать, то можно увидеть, что это неправда. Когда вы хотите посмотреть на что-то в прицел, какой вопрос чаще встречается: «Я хочу посмотреть на часы, что это за булавка?» или «Я хочу посмотреть на контакт 5, что это за функция?» . В некоторых редких случаях вы можете захотеть обойти микросхему и посмотреть все выводы, но первый вопрос встречается гораздо чаще.

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

  5. Прямые связи в разумных пределах

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

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

  6. Дизайн для бумаги стандартного размера

    Времена, когда инженеры-электрики имели чертежные столы и были готовы работать с чертежами размера D, давно прошли. У большинства людей есть доступ только к принтерам обычного размера страницы, например, для бумаги размером 8 1/2 x 11 дюймов здесь, в США. Точный размер немного отличается по всему миру, но все они примерно такие, какие вы можете легко держать перед собой или поставить на свой стол. Есть причина, по которой этот размер стал стандартом. Работать с бумагой большого размера — проблема. На столе нет места, он перекрывает клавиатуру, сталкивает предметы со стола, когда вы его перемещаете, и т. д.

    Суть в том, чтобы спроектировать схему так, чтобы отдельные листы хорошо читались на одной обычной странице и на экране примерно одинакового размера. В настоящее время самый большой распространенный размер экрана — 1920 x 1080. Необходимость прокручивать страницу с таким разрешением, чтобы увидеть необходимые детали, раздражает.

    Если это означает использование большего количества страниц, продолжайте. Вы можете перелистывать страницы вперед и назад одним нажатием кнопки в Acrobat Reader. Перелистывание страниц предпочтительнее панорамирования большого рисунка или работы с бумагой большого размера. Я также считаю, что одна нормальная страница с разумной детализацией — это хороший размер, чтобы показать подсхему. Думайте о страницах на схемах как о абзацах в повествовании. Разбиение схемы на отдельные помеченные разделы по страницам действительно может улучшить читаемость, если все сделано правильно. Например, у вас может быть страница для раздела ввода питания, непосредственных подключений микроконтроллера, аналоговых входов, выходов мощности привода H-моста, интерфейса Ethernet и т. д. На самом деле полезно разбивать схему таким образом, даже если она ничего общего с размером чертежа.

    Вот небольшой фрагмент схемы, которую я получил. Это снимок экрана, показывающий одну страницу схемы, развернутую в Acrobat Reader на экране с разрешением 1920 x 1200.

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

  7. Метки ключевых сетей

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

    Если сеть разбита на визуально несвязанные сегменты, то вы обязательно должны сообщить людям, что две кажущиеся несвязанными сети на самом деле одинаковы. Различные пакеты имеют разные встроенные способы показать это. Используйте то, что работает с имеющимся у вас программным обеспечением, но в любом случае дайте сети имя и покажите это имя на каждом отдельно нарисованном сегменте. Думайте об этом как о наименьшем общем знаменателе или использовании «воздушных проводов» в схеме. Если ваше программное обеспечение поддерживает это, и вы думаете, что это помогает с ясностью, во что бы то ни стало, используйте маленькие маркеры «точки перехода» или что-то еще. Иногда они даже дают вам лист и координаты одной или нескольких соответствующих точек прыжка. Это все здорово, но все равно маркируйте любую такую ​​сеть.

    Важным моментом является то, что небольшие строки имен для этих цепей получаются программным обеспечением автоматически из внутреннего имени цепи. Никогда не рисуйте их вручную как произвольный текст, который программа не понимает как имя сети. Если отдельные разделы сети когда-либо будут случайно отключены или переименованы по отдельности, программа автоматически покажет это, поскольку отображаемое имя происходит от фактического имени сети, а не от того, что вы вводите отдельно. Это очень похоже на переменную в языке программирования. Вы знаете, что многократное использование символа переменной относится к одной и той же переменной.

    Еще одна хорошая причина для сетевых имен — короткие комментарии. Иногда я называю, а затем показываю названия цепей только для того, чтобы дать быстрое представление о назначении этой сети. Например, то, что сеть называется «5V» или «MISO», может сильно помочь в понимании схемы. Многие короткие сети не нуждаются в названии или пояснении, а добавление имен скорее повредит из-за беспорядка, чем прояснит ситуацию. Опять же, все дело в ясности. Показывайте осмысленное имя цепи, когда оно помогает понять схему, и не показывайте, когда оно больше отвлекает, чем помогает.

  8. Держите имена достаточно короткими

    Тот факт, что ваше программное обеспечение позволяет вам вводить имена цепей длиной 32 или 64 символа, не означает, что вы должны это делать. Опять же, речь идет о ясности. Нет имен — нет информации, но много длинных имен — это беспорядок, что снижает ясность. Где-то посередине — хороший компромисс. Не делайте глупостей и не пишите «Часы 8 МГц на мой PIC», когда просто «CLOCK», «CLK» или «8MHZ» передают ту же информацию.

    См. этот стандарт ANSI/IEEE для рекомендуемых сокращений имен выводов.

  9. Названия символов в верхнем регистре

    Используйте все заглавные буквы для имен цепей и имен выводов. Названия выводов почти всегда отображаются в таблицах данных и схемах прописными буквами. Различные схематические программы, включая Eagle, не допускают даже имен в нижнем регистре. Одним из преимуществ этого, которое также помогает, когда имена не слишком длинные, является то, что они выделяются в обычном тексте. Если вы пишете реальные комментарии к схеме, всегда пишите их в смешанном регистре, но убедитесь, что имена символов заглавные, чтобы было ясно, что это имена символов, а не часть вашего повествования. Например, «Входной сигнал TEST1 становится высоким, чтобы включить Q1, который сбрасывает процессор, переводя MCLR в низкий уровень». . В этом случае очевидно, что TEST1, Q1 и MCLR относятся к именам на схеме и не являются частью слов, которые вы используете в описании.

  10. Показать развязывающие колпачки по частям

    Развязывающие колпачки должны быть физически близки к развязываемой части из-за их назначения и основных физических свойств. Покажите им таким образом. Иногда я видел схемы с кучей развязывающих колпачков в углу. Конечно, их можно разместить в любом месте макета, но, размещая их по IC, вы, по крайней мере, показываете назначение каждой крышки. Это значительно облегчает понимание того, что, по крайней мере, была продумана правильная развязка, более вероятно, что ошибка была обнаружена при проверке дизайна, и более вероятно, что заглушка действительно оказывается там, где предполагалось, когда макет будет готов.

  11. Точки соединяются, крестики нет

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

    Как-то связанно, старайтесь, чтобы переходы были связаны с T, а не с перекрестками с четырьмя путями. Это не такое жесткое правило, но всякое случается. Когда пересекаются две линии, одна вертикальная, а другая горизонтальная, единственный способ узнать, соединены ли они, — это наличие маленькой точки соединения. В прошлые дни, когда схемы обычно фотокопировались или иным образом воспроизводились оптическим способом, точки соединения могли исчезнуть через несколько поколений, а иногда могли даже появиться на крестах, которых изначально не было. Это менее важно сейчас, когда схемы, как правило, находятся в компьютере, но было бы неплохо быть особенно осторожным. Способ сделать это состоит в том, чтобы никогда не иметь 4-стороннего соединения.

    Если две линии пересекаются, то они никогда не соединяются, даже если после некоторых артефактов воспроизведения или сжатия кажется, что там может быть точка. В идеале соединения или пересечения должны быть однозначными без точек соединения, но на самом деле вам нужно как можно меньше шансов на недопонимание. Сделайте все соединения Ts точками, и все пересекающиеся линии, следовательно, будут разными сетями без точек.

Оглянитесь назад, и вы увидите, что смысл всех этих правил состоит в том, чтобы максимально упростить понимание схемы из схемы другим человеком и максимизировать вероятность того, что понимание будет правильным.

  • Хорошие схемы показывают вам цепь. Плохие схемы заставляют их расшифровывать.

Есть еще один человеческий момент. Небрежная схема показывает недостаток внимания к деталям и раздражает и оскорбляет любого, кого вы попросите на нее взглянуть. Подумай об этом. Он говорит другим: «Ваше раздражение из-за этой схемы не стоит моего времени, чтобы очистить ее», что, по сути, говорит: «Я важнее, чем вы» . Во многих случаях говорить об этом неразумно, например, когда вы просите здесь о бесплатной помощи, показываете свою схему клиенту, учителю и т. д.

Аккуратность и презентация имеют значение. Много. О вас судят по качеству вашей презентации каждый раз, когда вы что-то представляете, независимо от того, считаете ли вы, что так должно быть или нет. В большинстве случаев люди тоже не станут вам говорить. Они просто продолжат отвечать на другой вопрос, а не будут искать какие-то положительные моменты, которые могут повысить оценку на одну ступень, или нанимать кого-то еще и т. д. Когда вы даете кому-то небрежную схему (или любую другую небрежную работу от вас) , первое, что они подумают: «Что за придурок» . Все остальное, что они думают о вас и вашей работе, будет окрашено этим первоначальным впечатлением. Не будь таким неудачником.

+1 Мне очень нравится. Но один вопрос: в одном из ваших ответов вы жаловались на схему, которая была цветной. Вы бы сказали, что это хорошая практика — всегда делать схему монохромной? Ссылка на упомянутый ответ: electronics.stackexchange.com/a/26487/4950
Мои десять центов: хотя я люблю использовать цвет для устранения неоднозначности на экране, я предпочитаю, чтобы монохромные схемы выглядели в печатном виде (или в формате PDF). Условные обозначения и эстетика развились для монохромной работы, и не у всех есть доступ к цветному принтеру / копировальному аппарату, поэтому информация о цвете может быть потеряна. Мне также нравится не зависеть от цвета (один из моих коллег дальтоник, что иногда приводит к полузабавным инцидентам, связанным с цветными светодиодными индикаторами состояния. Так что я стал очень чувствителен к этому).
Отличная работа. +1 Мне интересно, что в моей школе нет курса правильного проектирования схем. Это должен быть обязательный курс для первокурсников. Я думаю, они просто предполагают, что люди поймут.
Как и в программировании, важна читабельность. Из Дзен Питона: «Красивое лучше, чем безобразное».
Может быть, это из-за моего опыта программирования, но я обнаружил, что часто предпочитаю "воздушные провода" для многих вещей. Если я вижу два контакта на ЦП, помеченные «DATA_TO_FTDI» и «DATA_FROM_FTDI», я могу с первого взгляда сказать, что эти контакты идут (или, по крайней мере, должны) к контактам данных RX/TX на микросхеме FTDI. Взгляд на чип FTDI может подтвердить это. Затем я могу сравнить эти имена с определениями контактов на устройстве (поскольку некоторые устройства, которые ведут себя как коммуникационные мосты, используют TX в качестве выхода (они передают данные на этот контакт), в то время как другие используют его в качестве входа (принимая данные для передачи). переданы в другом месте).
@supercat - Проблема с воздушными проводами заключается в том, что даже если кажется очевидным, куда они идут, вы никогда не можете быть уверены (без исчерпывающего поиска), что вы нашли везде , куда они идут. Для вашего примера «DATA_TO_FTDI», что, если на этой шине есть индикатор последовательной активности? Или другое устройство, использующее последовательный интерфейс? Я никогда не смогу быть уверенным, если не проверю вручную КАЖДУЮ метку цепи на всей схеме.
В то время как воздушные провода могут нормально работать в простых проектах, как только у вас будет больше нескольких микросхем или ваша схема разрастется до более чем одной страницы, она полностью развалится. Кроме того, это абсолютный яд в любой среде, где у вас есть несколько человек, работающих со схемами. Аналогия между воздушными проводами и GOTO очень уместна. Они оба позволяют вам делать короткие пути, и оба делают результирующую систему НАМНОГО сложнее в обслуживании.
Схемы TIA, найденные на atariage.com/2600/archives/schematics_tia/index.html , широко используют воздушные провода, но я не могу себе представить, что рисование всех «воздушных» соединений сделает их более четкими. Даже без автоматизированных систем для поиска сетевых подключений я не могу себе представить, что рисование всех подключений к HΦ1/HΦ2, или D0-D7, или декодирование адреса записи в нижней части страницы 2 и т. д. сделало бы схемы какими-либо яснее. На самом деле, я довольно впечатлен этими схемами; действительно, они лучше многих новых.
@supercat - Вы правы в том, что рисунок всех воздушных проводов на этой схеме может сбить с толку. Это потому, что эта схема должна использовать шину . Было бы намного читабельнее с шиной вместо полудюжины воздушных проводов.
@FakeName: Какие сигналы вы бы объединили в какие шины? D0-D7, возможно, может быть шиной, хотя я не уверен, что это многое прояснит, поскольку в основном он используется по частям. На странице 2 декодировано 45 адресов записи, каждый из которых используется на одной другой странице (ссылка рядом со схемой записи-декодирования указывает, какой из них); это должны быть автобусы? Кстати, как вам использование коробок для повторяющихся элементов схемы? Я думаю, что это способствует пониманию, но я не видел ничего подобного на схемах, созданных с помощью компьютера (я видел инструменты моделирования с определяемыми пользователем частями, но...
... никогда не рисуются так, как на схемах TIA). Я думаю, что они делают вещи намного яснее, чем если бы все было просто «скопировано».
В некоторых случаях высокой сложности схемы должны быть указаны в небольшой таблице для каждого типа последней использовавшейся Ref Des. и неиспользуемые Ref Des (если удалены). Например, Высшие REFDES: но для многостраничных сложных инструментов REFDES должны быть зонированы для каждой функциональной зоны физических блоков. т.е. U1~99, даже если их всего несколько, тогда U100~.. с пунктирными линиями для каждой зоны и функциональной метки. так что физические зоны и логические RefDes имеют смысл. например, PLL U400~U412, C400~C428, R400~R433 и т. д. PLL – это зона PCA400 с ref des для этой карты в том же блоке.
«Почему этот #%&^$@#$% просто не нарисовал его как один с самого начала!?» Угу, да. Каждый раз, когда я получаю схему с наших китайских заводов, она такая. Вы не получите приз за то, что втиснете всю схему на страницу!
Это действительно длинный ответ с множеством независимых моментов. Было бы лучше, если бы каждый пункт был отдельным ответом, чтобы мы могли комментировать и голосовать по каждому отдельно.
+1 за CircuitBarf . Кроме того, @Olin, это действительно отличная ссылка и ответ.
Еще одно правило, которое вы должны добавить: «Используйте те же имена сигналов на схеме, что и в исходном коде вашей прошивки». Это упрощает документирование и сопровождение всего проекта, а также упрощает общение между проектировщиками аппаратного обеспечения и проектировщиками программного обеспечения, если они разные люди.
Я знаю, что это уже довольно старо и все еще хорошо, но некоторые люди более визуальны, и, возможно, кто-то из тех, кто знает, что нужно и чего нельзя делать, мог бы добавить еще несколько действительно хороших примеров того, что можно и чего нельзя делать. Для существующих почти достаточно прочитать заголовок, посмотреть на изображение и понять, что вы имеете в виду.
Мне любопытно, как далеко вы зайдете, чтобы сгруппироваться, как контакты на микроконтроллере. Например: imgur.com/82K8VwQ Это хорошо помещает контакты питания вверху, контакты заземления внизу и группирует вместе выделенные контакты кристалла. Такая группировка портов ввода-вывода хороша для части общего назначения, но для этого конкретного приложения было бы немного аккуратнее, если бы контакты программирования и SPI были сгруппированы вместе. Но стоит ли это того? Особенно, когда такие вещи, как контакты CS, могут меняться от версии к версии?
У меня появилась новая привычка (это позволяет мне быть честным и, возможно, помогает конечному пользователю сделать безопасное предположение) добавлять небольшой текст, показывающий пороговые значения логического уровня (Vin H/L и Vout H/L), припаркованные рядом с соответствующими ИС, полевые транзисторы и т. д. Например, в семействах смешанной логики буфер ACT 5 В, питающий буфер LVC 3,3 В, показывающий уровни V, и это должное усердие.
Есть один момент, который, я думаю, не был упомянут в тексте. Альтернативой изображению линий, которые пересекаются, но не соединяются, является отображение их в виде небольшого моста, как на этом изображении вверху справа, взятом из «Электроники для чайников». Это может быть немного старомодным, но эффективным и все еще доступным в некоторых пакетах САПР. Еще одна вещь, которой меня учили в свое время, заключалась в том, чтобы линии были как можно более горизонтальными и вертикальными, а диагонали использовались экономно.

1. Покажите свою работу Схематическая диаграмма предназначена для документирования схемы. Таким образом, я настоятельно рекомендую включать любые простые уравнения, которые могут быть использованы. Это включает в себя расчеты тока светодиодов, угловые частоты фильтра и т. д. Покажите свою работу, чтобы следующий парень, который должен прочитать схему, мог легко ее проверить.

2. Укажите направление UART Поскольку линии UART не всегда ясно, в каком направлении они текут, добавьте небольшую стрелку рядом с каждой линией, чтобы показать направление.

3. Будьте последовательны Не используйте VDD в одном месте и 3V3 в другом. Стандартизировать.

4. Аннотируйте свободно Это похоже на комментарии в исходном коде. Если вы скопировали схему из таблицы данных, поместите ссылку на схему, чтобы кто-то другой (или вы) могли проверить ее позже.

Вот мои два цента

1. Разбейте его на части Разбейте свой дизайн на модули. Поместите блок-схему системы на первую страницу схемы.

2. Ответьте, кто, что, где, когда, почему Кто. Для каждой страницы модуля укажите, к кому подключается модуль. Разложите его слева направо, чтобы он читался как английский.

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

Где — используйте произвольный текст в программе САПР для обозначения размещения компонентов. Например, развязывающий колпачок должен располагаться как можно ближе к микросхеме. Это послужит более быстрой ссылкой при размещении платы, чем обращение к какой-либо другой документации.

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

Почему и как - это относится к сопроводительной проектной документации для проверки таких вещей, как
. Масштаб — что схема делает, а что не делает по согласованию с заинтересованными сторонами проекта.
б. Теория работы
c. Обоснование того, почему подход был выбран в отличие от других. Это очень важно , поскольку это служит историей для схемы в будущем, когда вы (или кто-то другой) наследуете/переносите дизайн, чтобы помнить о тех же решениях, что и первоначальный дизайнер.
д. Соображения по компоновке
e. Ссылки на другую документацию.
ф. Расчеты рассеиваемой мощности - доказывают не только то, что он работает, но и то, что расчетная рассеиваемая мощность для всех компонентов на несколько градусов меньше номинальной для компонента И при всех рабочих температурах.

3. Стиль Это зависит от вас и остальной команды, но в целом я предпочитаю следующее
: a. Титульный лист/блок-схема
b. Один «блок» на странице, разделяющий компоненты с большим числом выводов (например, микроконтроллер) на осмысленные дискретные символы. Это требует некоторого времени, чтобы сделать, но хорошо стоит удобочитаемости.

Модульность также позволяет вам «вырвать страницу» и повторно использовать ее в других проектах.

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

д. Разложите схему слева направо, указав, где находятся интерфейсы модуля, с текстом.

е. Для ясности линий питания НЕ ИСПОЛЬЗУЙТЕ VDD или VCC , поскольку они неоднозначны. Создайте новый символ для явного указания того, что такое напряжение. То же самое для земли (т.е. GND для земли и AGND для аналоговой земли).

R100, R101, R102 Вместо R1, R2, R3

Хочу поделиться своим опытом присвоения имен компонентам.

Определите блоки схем по функциям. Даже если это сложная схема, вы можете идентифицировать их, например, основной силовой каскад, предварительный усилитель, усилитель, секцию аналого-цифрового преобразования, блоки индикатора/преобразователя, секцию синхронизации, таймер или любые другие секции логических операций.

Я предлагаю назвать компоненты, используя более крупные номера, такие как R100, R101, R102 вместо R1, R2, R3... и т. д.

Вы можете назначить 100, 200, 300 ... и т. д. для каждого идентифицированного вами блока. Например, для силовой части можно назначить номера от 100 до 199. Затем все компоненты в силовой части в форме 1xx, такие как Q100, R101, R103, C100, D100, D106.

Преимущество

  • На сложной принципиальной схеме легко идентифицировать участки цепи по функциям.
  • Легко устранить неполадки.
  • Легко назвать части, когда вам нужно добавить новые компоненты в раздел позже. Потому что у вас есть около 100 вариантов имени для выбора.
  • Легко рисовать макеты печатных плат в любом программном обеспечении САПР вручную. Потому что в самом начале чертежа печатной платы компоненты каждого типа собираются в одном месте.введите описание изображения здесь

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

Пара моментов в дополнение к тем, что были написаны выше. Первый ответ довольно героический, но есть одна вещь, с которой я не согласен.

Порядок выводов в условном обозначении.

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

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

Еще один комментарий к "воздушным проводам" Только не делайте этого. Вместо этого используйте порты, которые требуют, чтобы вы явно установили соединение между двумя цепями на одном или разных листах схемы. Если вы позволяете сетям соединяться без портов/офф-страниц, вы открываете огромную банку червей, поскольку явно не связанные сети могут быть закорочены в макете.

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

Оставьте достаточно места между контактами . Многие готовые схематические символы максимально плотно упаковывают контакты устройства. Хотя это сводит к минимуму площадь символа, это также затрудняет чтение схемы, поскольку у вас есть соединения, сходящиеся «снаружи» к плотно расположенным контактам. Вы должны оставить достаточно места, чтобы вы могли последовательно добавлять резисторы в шахматном порядке.

Ссылочные обозначения Вы, очевидно, должны иметь позиционные обозначения на схеме и в макете. Для чего-то более сложного их необходимо заказывать. Есть два подхода к нему.

  1. Вы можете попросить программу захвата схем пометить их, чтобы каждая страница имела свой собственный префикс. Таким образом легко найти любую деталь в спецификации по схеме. Кроме того, за ECO легче следить, поскольку вы знаете, для какой страницы предназначены изменения. Недостатком этого является то, что вы получаете длинные позиционные обозначения, и поиск детали в макете может быть затруднен.

  2. Вы можете попросить программу макета пометить их. Таким образом, вы закажете каталожные номера на печатной плате, что значительно облегчит поиск резистора R347. Предпочтительно на больших печатных платах они должны быть разделены на квадранты (секстанты, октанты...). Недостатком является то, что не очевидно, где находится деталь на схеме. Тут просто не выиграть, либо схема легче читается, либо компоновка.

Я просто не согласен с порядком контактов. Схемы не обязательно должны иметь какое-либо отношение к физическому расположению чипа. Например, операционные усилители должны выглядеть на схеме как операционные усилители. Счетверенный операционный усилитель НИЧЕГО не должен быть похож на чип. Кроме того, при работе со сложной системой с большим количеством выводов ворота должны быть разделены на функциональные блоки.
Хорошие моменты, но я согласен со Скоттом в том, что избегать переупорядочивания булавок — это нонсенс. Конечно, с небольшими чипами, но схемы на 100% менее запутанны, если вместо того, чтобы повсюду перекрещивать провода, вы переупорядочиваете контакты на чипе и просто следите за тем, чтобы они были правильно помечены. Если вышедших из строя выводов на схеме достаточно, чтобы кого-то сбить с толку, то, вероятно, им не следует возиться с платой с самого начала. Его точка операционного усилителя также очень действительна.
Я уверен, вы согласитесь, что операционные усилители — это особый случай, аналогичный транзисторам и т. д. Если вы в конечном итоге получите передышку, потому что ваша перестановка выводов схемы привела к недопустимому посадочному месту, вы точно никому не одолжили.
Следы должны быть сравнены с листом данных. Символы также. Это единственная ссылка, которая имеет значение. Нет смысла использовать нарисованный самостоятельно символ в качестве эталона для посадочного места. Конечно, между ними должна быть проверка согласованности, но любое приличное программное обеспечение сделает это и покажет вам неподключенные контакты с обеих сторон.
@ cx05 Да, именно поэтому имеет смысл следовать представлению / порядку в таблице данных с распиновкой, чтобы свести к минимуму вероятность ошибки. Очевидно, что для 388-контактного BGA вы должны разбить символы на части, но создание символа с той же распиновкой, что и у чипа, повышает вероятность того, что вы не поменяли местами контакты. Да, программное обеспечение может помочь, если вы действительно можете найти символ САПР для своей детали. Это, как правило, не происходит с этим пакетом BGA, поэтому вы проводите вечер, проверяя и трижды проверяя длинный список контактов на соответствие вашему символу.
В зависимости от вашего инструмента для захвата схем вы можете просмотреть разводку компонентов в схематическом формате, где вы можете упорядочить их по номеру / имени контакта, что позволяет вам разбивать части по портам и т. д., имея при этом простой способ проверить распиновку. Для чего-то простого, такого как 16-контактный контроллер SMPS, когда я сохраняю физический порядок выводов микросхемы, я могу сразу увидеть на схеме, какой вывод я должен исследовать на печатной плате.
Ну, я предпочитаю, например, чтобы выводы порта микроконтроллера или FPGA располагались в логическом порядке (PA1, PA2...). Многие производители назначают функции выводов в соответствии с этим порядком. Это то, что беспокоит меня изо дня в день. С вашим примером BGA было бы невозможно имитировать распиновку на схеме. Кроме того, назначение контактов проверяется только один раз. Многие программные пакеты предоставляют булавочный отчет, который можно упорядочить любым удобным для пользователя способом или экспортировать и отсортировать в Excel. После того, как компонент проверен, мне больше не нужно будет проверять распиновку. Но я думаю, что все зависит от варианта использования и вкуса.
@ cx05 с bga вы все равно ничего не будете исследовать, поэтому большая часть преимущества будет потеряна. Для QFP и др. мне нравится сохранять фактическую физическую распиновку, для BGA обычно то, что они используют в таблице данных.
Для меня это зависит от того, есть некоторые части, которые имеют условное обозначение того, как они нарисованы, очевидно, операционные усилители, но также и FF типа D (D, Clk слева, S/R вверху/внизу Q и Q* справа), и действительно большая часть логики мармеладки, где в любом случае вы обычно рисуете один вентиль и выполняете замену контактов после запуска макета. То же самое и с линейными регуляторами, вход слева, земля (или ссылка) внизу и выход справа, даже если деталь имеет странные выводы (7905). Очевидно, что есть части, которые не имеют определенных соглашений, и для них соотношение 1:1 не является необоснованным.
@DanMills Я не знаю, сколько людей на самом деле используют электронику, чтобы жить здесь, но замена двух контактов - это печальный факт жизни, и все, что затрудняет поиск в процессе обзора, делает вещи более болезненными. Достаточно сложно не коснуться даже чего-то относительно небольшого, такого как QFP-48, не говоря уже о больших BGA. Вы сделали тысячу деталей идеально, а макет испорчен, плюс вы мелом лишний месяц, чтобы сделать респин, потому что вы поменяли местами две булавки. Это не похоже на программное обеспечение. Не очень полезно, чтобы такие вещи, как микроконтроллеры MSP430, смешивали и соответствовали распиновке.
Мой обычный триггер повторного вращения либо механический, либо неправильно рассчитанный на что-то странное (некоторые разъемы имеют худшие в мире таблицы данных для измерения), либо простой дизайн. Я не думаю, что у меня когда-либо была передышка из-за перестановок между обозначением и меткой на нескольких сотнях плат, для этого и нужен сценарий оболочки и файл BSDL производителя. Я говорю нашим любителям программного обеспечения, что они поймут разработчиков аппаратного обеспечения, когда поймут, что срочная компиляция стоит около 1000 фунтов стерлингов и выполняется 6 недель....
@DanMills Тысяча? Тогда это довольно дешевый материал. Вы можете избежать многих проблем с посадочными местами, если используете модели STEP. На самом деле меня уволили с одной работы, потому что я «тратил время впустую», добавляя ступенчатые модели к символам компонентов, но это вызвало довольно много проблем с неправильной интерпретацией размеров и т. Д. У вас не всегда есть BDSL (или большую часть времени) . Иногда вы получаете готовые символы eCAD, которые, как правило, дерьмовые. Часто вы не получаете ничего, кроме таблицы данных с 48 контактами для этого PHY. У меня были контакты, которые меняли местами, и ребята, которые искали в обзоре, специально искали это для этой части и не получали этого.
Некоторые программы eCAD позволяют вам, по крайней мере, скопировать распиновку из таблицы данных, предполагая, что производитель сделал таблицу данных таким образом, чтобы вы могли вырезать и вставлять их. У некоторых нет, если только Mentor не сменил PADS в последние годы, я хорошо провел время с линейкой и карандашом.
Физическая распиновка - это только одна сторона проблемы. У вас может быть множество функций, доступных для каждого контакта, поэтому возникает второй уровень проблем, когда все сигналы идут на правильные порты, которые имеют соответствующие функции. С FPGA вы можете изменить спецификацию, но с микроконтроллерами у вас нет возможности. MSP430 — один из неприятных примеров, по крайней мере, с тремя различными функциями для каждого контакта. Моим личным фаворитом являются чипы LSI, которые имеют обычную распиновку в стиле GSGS, за исключением того, что в середине они идут GSSGGS, чтобы проверить, обращаете ли вы внимание.
Ответ в новой теме. К твоему сведению, @ScottSeidman.
При создании нового символа из таблицы данных я пытаюсь импортировать список выводов из исходного документа в электронную таблицу. Для OrCAD это можно легко преобразовать в форму, в которой его можно использовать для создания нового символа. Это НАМНОГО менее подвержено ошибкам, чем ввод списка выводов со схемы. Однако все ставки сняты, если производитель заблокирует свой PDF-файл, чтобы вы не могли его скопировать и вставить. Некоторые производители даже предоставят вам список выводов в Excel (например, Broadcom для своих чипов для телевизионных приставок), что сэкономит много времени.
@hacktastic Да, это обязательно для больших пакетов. Недавно я создал 176-контактную часть микроконтроллера BGA, которую было бы очень сложно сделать вручную. Требуется немного проб и ошибок, чтобы найти правильное диалоговое окно, в котором вы можете вставлять выводы, Altium имеет список выводов частей в нескольких местах, и не все из них доступны для редактирования. WRT переупорядочивает штифты, это вопрос мнения и зависит. На BGA об этом не может быть и речи, поскольку порты, как правило, располагаются в шахматном порядке на 1-4 ряда вглубь корпуса. Для корпусов >100 выводов вы все равно не будете пытаться найти выводы визуально из схемы.
В наши дни количество контактов более 1000, 1500, 2000 не является редкостью для больших микропроцессоров или SoC, причем львиная доля контактов приходится на память и питание.
@hacktastical Очевидно, зависит от того, над чем вы работаете. В основном я работаю над встраиваемыми устройствами, которые обычно используют либо небольшой микроконтроллер (например, 176-BGA Synergy µCU), либо какой-то вид FPGA. Я работал с 488-контактными корпусами, для меня этого достаточно :-p Потратив время на кропотливое копирование распиновки из таблицы данных и хэширование их в Excel, вы определенно уменьшите моменты «упс», особенно если вы создаете распиновку процессора с функциями выводов. в то же время.

Еще несколько:

  • (1) Рисовать на обычной сетке.

Я действительно ненавижу иметь дело с чужой работой, нарисованной на полусетке. Это огромная трата времени и не добавляет никакой ценности рисунку.

  • (2) Используйте «физический» стиль для небольших устройств.

Рисование микросхем и небольших компонентов с выводами по порядку помогает передать ваши намерения при компоновке и значительно упрощает отладку. Это касается транзисторов и диодов в сот-23: я нарисовал их, показав порядок выводов, и в результате мне не пришлось годами переделывать неправильно расположенные.

  • (3) Реализовать пределы (2) выше.

Невозможно физически нарисовать большой BGA или даже как один символ. Но вы можете, по крайней мере, разделить их по функциям и показать, как выводы соотносятся друг с другом в пространстве. Например, ПЛИС можно нарисовать и разделить, чтобы показать блоки, представляющие логические плитки, а сами плитки разместить/упорядочить на схеме, чтобы показать, как они разводятся.

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

  • (4) Внутристраничные именованные псевдонимы допустимы, но не навязывайте их.

Именованные псевдонимы на самом деле такие же, как и вне страницы: это означает, что вам все равно придется сканировать страницу, чтобы найти другие ее экземпляры. Со схемой PDF и Ctrl-F это не такая большая рутинная работа, как раньше (и позор вам, производители, которые делают недоступные для поиска PDF-файлы. Это просто отстой). Тем не менее, вне страницы более тщательно проверяются DRC, чем псевдонимы.

  • (5) Блок-схемы и механические планы стоят затраченных усилий.

Усилия, которые вы потратите на то, чтобы передать здесь свои мысли, сэкономят много времени в течение всего срока службы вашего дизайна — от макета до ремонта. Да, ваш конструктор-механик сделает «официальный» план платы, но, по крайней мере, вы можете указать, где вы ожидаете разместить элементы и почему, используя эти два вида диаграмм.

  • (6) При экспорте схемы в PDF сделайте ее доступной для поиска.

Это действительно слишком много, чтобы спросить?

  • (7) Иметь достаточно информации о компонентах.

Помимо позиционного обозначения, некоторые конструкторы склонны указывать на схеме все атрибуты детали. Но действительно ли они вам нужны? Нет, не знаешь. Толерантность, иногда. Напряжение, иногда, когда у вас есть секция с более высоким напряжением. След - возможно. Номер детали производителя? Редко - обычно вам нужно несколько источников. Корпоративный номер AVL/MRP? Нет, никогда.

Все эти другие вещи - это то, для чего предназначена спецификация.

  • (7a) Заранее подумайте о создании спецификации.

Тем не менее, разработка какой-либо системы нумерации деталей даже в первые дни позволяет вам создавать подробные спецификации, даже если у вас нет системы MRP. Каждый тип детали должен иметь уникальный идентификатор, установленный в качестве скрытого атрибута в вашей схеме, который соответствует записи в вашем основном списке деталей (списке AVL). Вы используете этот идентификатор позже, чтобы объединить расширенную информацию из вашего списка AVL для создания подробная спецификация.

Еще позже вы можете импортировать этот материал в настоящую систему MRP или PLM, такую ​​как Oracle Agile.

  • (8) Мощность — это тоже сигнал!

Раньше вы рисовали схему со «скрытыми» контактами питания/земли, которые автоматически назначались на VCC или GND. Это все еще вариант, когда вы создаете символ, например, в Orcad. Не прячьте эти силовые соединения! Покажи им! Особенно принимая во внимание современные конструкции с несколькими доменами питания, высокой плотностью мощности, маршрутизацией, обходом, зоной контура и т. д.

Мощность настолько важна, что если вы не тратите хотя бы 1/3 своего времени на проектирование мощности, вам следует подумать о другом направлении работы.

  • (9) Комментарии — ваш друг.

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

  • (10) Размер имеет значение.

Используйте 11x8,5 (размер A) для действительно простых вещей, 17x11 (размер B) для большинства других вещей. Увеличивайте размер только в том случае, если вам это действительно необходимо.

17x11 (или его ближайший метрический эквивалент) является разумным размером для просмотра на HD-экране или для печати даже в формате 11x8,5. Это хороший размер для работы.

С другой стороны, я обнаружил, что не могу получить достаточно материала на 11x8.5. А с другой стороны, это другая крайность, когда я использовал 23,5 x 15,2 (увеличение B, а не C) для действительно сложного рисунка, который группируется (например, банки DRAM): это нужно печатать в 17x11. быть достаточно легко читаемым в печатном виде.

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

  • (11) Поток сигнала слева направо, поток мощности сверху вниз. По большей части.

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

  • (12) Организуйте офф-страницы/порты в вертикальные группы.

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

Самый большой спор, который я вижу в обсуждении, касается порядка контактов, но это только вопрос о более крупных темах: функциональное или физическое! Если я делаю хорошую схему, чтобы подготовить свою компоновку, то гораздо лучше, чтобы схема выглядела как можно ближе к компоновке, например, нарисуйте порядок выводов не в соответствии с тем, что кто-то другой делает в таблице данных, а так, как это действительно является. Также подумайте о том, чтобы оставить немного больше места вокруг крупных элементов, таких как силовые устройства, например, также нарисуйте «символ» радиатора. Если земля в любом случае должна быть большой плоскостью, то также лучше использовать соединения по имени, что также помогает избежать множества пересечений. С другой стороны, если никто не может избежать пересечения чувствительных линий, то нарисуйте схему так, чтобы она стала руководством для хорошей компоновки, например
Для цифровых микросхем я обычно использую автоматические маршрутизаторы и придерживаюсь функционального порядка. Еще одна спорная тема может заключаться в том, как нарисовать дифференциальный усилитель и, например, многокаскадный усилитель, например, должны ли мы рисовать каждый каскад обычным способом, а затем подключаться к следующему каскаду (который часто заканчивается множеством пересечений), или мы должны действительно рисовать каскады. diff пары симметрично (часто делается в старых схемах Tectronics osci)? Здесь все зависит еще и от цели, и от того, насколько критично соблюдение симметрии. В радиочастотных цепях, часто имеющих не так много элементов, я снова предпочитаю чертежи, очень близкие к компоновке.

Схема — это символическое описание функции электронной схемы, а компоновочная схема — это физическая схема, четко описывающая расположение компонентов и узлов схемы. Схемы служат анализу, макет отображает функцию и сборку. Символическая электрическая схема и механический чертеж, если хотите. Если вы можете четко видеть цели для этих целей, а также то, где они пересекаются, рекомендации становятся намного проще.

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

Где возможно :

  1. Четко разложите функции сборки на блоки и интерфейсы.
  2. Помните, что мощность, распределение мощности и развязка — это функции.
  3. Поместите компоненты в блоки, организованные для анализа и завершения.
  4. Поток сигнала слева направо, источник питания сверху вниз, на каждом листе.
  5. Интерфейсы на плате представляют собой воздушные соединения на краю каждого листа. Лорд вверху/слева, пеон внизу/справа.
  6. Перечислите соединения приемника на источнике каждого воздушного соединителя.
  7. Примечания, в том числе допуски по умолчанию, должны появляться на каждой странице. Примечания должны четко указывать конкретные ссылочные обозначения на схеме.
  8. Сведите к минимуму пересечение сигнальных линий.
  9. Сигналы, связанные с группой.
  10. Поддерживайте порядок среди пронумерованных строк. Перекрывать
  11. Блоки на схеме должны располагаться близко к сборке.
  12. Развязывающие колпачки на схеме должны располагаться рядом с компонентом, который они защищают в топологии.
  13. Сигналы интерфейса должны маршрутизироваться вместе.
  14. Контакты разъема должны быть пронумерованы в соответствии с таблицей данных и расположены так, чтобы соответствовать физическому положению физического разъема, если смотреть сверху на плату.