Как вы документируете свои решения по проектированию оборудования?

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

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

Как лучше всего задокументировать свои решения и расчеты на этапе проектирования схемы? Как мне получить ответы на приведенные выше вопросы, не просматривая сотни страниц технических данных?

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

Кто увидит эти подробности? Они предназначены только для вашего ознакомления или их увидят другие?
@Stacey Документация предназначена для чтения как мне, так и другим дизайнерам. Я хотел бы, чтобы большинство моих будущих проектов были открытыми, и очень важно, чтобы они были должным образом задокументированы.
@Stacey Но на самом деле .. какая разница? Через некоторое время вы будете смотреть на свой собственный дизайн так, как будто видите его впервые.
Отличие заключается в способе подачи информации. Официальный документ, объясняющий каждое принятое вами решение профессиональным тоном, потребует гораздо больше работы, чем быстрое написание формул и заметок о выбранных вами значениях. Кроме того, если кто-то еще увидит заметки, важно, чтобы они были цифровыми.
OMG Я люблю этот вопрос. (извините, я знаю, что это не очень помогает, но я сейчас над этим работаю, так что это здорово). Продолжать.
Люблю этот вопрос. Я думаю, что еще одна аудитория, которую вы упускаете, — это аудиторы FDA по медицинскому устройству.

Ответы (7)

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

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

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

При подготовке спецификации или официальной документации по дизайну платы я обычно обращаюсь к своей записной книжке, чтобы освежить в памяти то, что я сделал (или одновременно пишу цифровую документацию). Хотя может показаться, что я делаю одно и то же дважды, я обнаружил, что мои записные книжки в значительной степени состоят из расчетов и объяснений для себя, тогда как документация гораздо менее подробна и гораздо более формальна и пояснена для других. Таким образом, я не часто обнаруживаю, что пишу одно и то же дважды.

Полностью согласен с формулами, но я перестал использовать бумажные заметки около 5 лет назад. Печатать намного проще, чем писать, и у него есть все обычные преимущества электронного текста — возможность поиска, отправки, резервного копирования и т. д.
Некоторые из самых впечатляющих/важных дизайнерских блокнотов нашего времени: computerhistory.org/collections/fairchild . Одним из существенных преимуществ бумажного бортового журнала/блокнота является рисование. Потребуется значительно больше усилий, чтобы рисовать/зарисовывать вещи на моем ноутбуке (хотя на iPad это проще — моя жена, например, хранит свои заметки по дизайну на своем iPad). Я склонен мыслить графически, поэтому большую часть своих проектов я делаю, рисуя блок-схемы.

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


Отвечая на вопросы ниже: Что мы обычно делаем, так это начинаем с маркетинговых требований, затем, может быть, формальный инженерный ответ или просто неформальное обсуждение. Затем следует MRD (документ маркетинговых требований), словом, с использованием нашего шаблона. Это включает в себя требования, конкурентный анализ, размер рынка, возможности, предполагаемую стоимость разработки и т. д. Обычно это пишет специалист по маркетингу (или кто-то выше моего уровня оплаты).

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

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

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

Все спецификации, PRD, MRD хранятся в SVN со ссылками на документы во внутренней вики. Изменение спецификации приведет к обновлению SVN и уведомлению заинтересованных сторон. Конечно, вы можете просто сохранить его вручную в какой-нибудь общей папке.

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


Хорошо, может быть, я должен был также ответить на каждый вопрос :)

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

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

Почему/как я выбрал именно эти параметры для этого компонента? Объедините это с вышеперечисленным.

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

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

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

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

Я понял, что должен задокументировать свой дизайн (отсюда и вопрос), но я не знаю хорошего способа сделать это. Пишу ли я свои заметки в текстовый файл, помещаю ли я заметки прямо в схему, делаю ли я заметки на бумаге, а затем сканирую их? Как обеспечить синхронизацию примечаний к проектным решениям с проектом и что на самом деле должны содержать примечания? Какой метод документации вам подходит?
@ m.Alin SHG, кажется, работает так же, как и я, и у него есть документ спецификации, который делается перед работой над схемой. В этом документе должны быть подробные требования к схеме, информация о системе в целом, обоснование основных решений и т. д. В нем документируется ваш мыслительный процесс и перечисляются требования, которые вы затем можете принять при разработке схемы. Это способ работать в профессиональной среде, но вы можете обойтись без блокнотов и тому подобного, если вы занимаетесь дизайном дома. Я обычно держу папку на своем рабочем сервере с
Не хватило места... со спецификацией, любой документацией по тестированию, любыми блок-схемами всей системы, таблицами данных для любых критических частей и т. д. Все это находится в одной подпапке (папка планирования/спецификации) в папке проекта. В отдельной папке у меня была бы схема, макет печатной платы и любая соответствующая документация по сборке/производству. В идеале вы хотели бы, чтобы кто-то мог получить всю необходимую информацию из одного документа, но иногда не обойтись без таблицы данных или подробной информации/расчетов по тестированию.
добавлены комментарии к нашему процессу
+1 за использование контроля версий для важных документов. Его должен использовать каждый, даже один инженер, работающий не по найму.

Я много занимаюсь быстрым проектированием и должен сказать: аннотирование схемы — это, безусловно, самая удобная вещь. Редко какой из моих дизайнов занимает больше 2-3 листов формата А4, поэтому количество дизайнерских решений ограничено. Многие дизайнерские решения принимаются автоматически; Мне не нужно перечислять причины для каждой отдельной части. Только одна или две основные части и, возможно, какой-нибудь фильтр или датчик пассивного размера. Остальное сразу очевидно любому опытному инженеру-конструктору.

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

Для более крупных проектов и проектирования систем я предпочитаю использовать Google Docs с шаблоном проектного документа.

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

Обычно лучше иметь спецификацию, по крайней мере, в профессиональной среде. Например, если я хочу знать, почему я выбрал значение предохранителя, было бы хорошо знать, что мой выход потребляет 700 мА в течение 50 мкс, а затем 300 мА в течение 3 с. Эта информация просто загромождает схему, где все, что вам действительно нужно указать, это номинал предохранителя, но в какой-то момент это может понадобиться. Также бывают случаи, когда у меня было 6 сервоприводов, работающих от одного регулятора, и мне нужно знать, сколько моторов будет работать одновременно. Опять что-то нужно, но не на схеме.
Конечно, мнения будут разными. Все, что я хочу сказать, это то, что, имея за плечами более 200 дизайнов, я считаю, что это работает очень хорошо. «Профессиональный» не обязательно должен означать строгий протокол и методологию; для относительно небольших проектов (что я и делаю в большинстве случаев) это работает хорошо. Однако более крупные проекты и особенно совместный дизайн (что очень редко встречается в наши дни, даже такие вещи, как Raspberry Pi, разработаны и выложены одним и тем же парнем) требуют немного большего количества шаблонов.
Перебрав несколько разных рабочих процессов, я остановился на чем-то похожем. Я размещаю заметку Altium на схеме, а затем сворачиваю эту заметку, чтобы избежать беспорядка. У меня также есть скрипт, который удаляет все заметки, если мне нужно передать файлы дизайна кому-то еще, а я не хочу давать свои заметки.

Для многих моих небольших проектов я обычно размещал простые зеленые метки и рамки вокруг подсхем. Для более крупных проектов некоторые программы eCAD позволяют строить из блок-схемы вниз, где каждый лист дополнительно описывает отдельный блок. Есть искусство декомпозировать любую проблему и найти компромиссы (это инженерное ИМХО). Там, где явно есть некоторый анализ для выбора компонентов, таких как аналоговая фильтрация, я отмечу частоту среза и тип фильтра (например, фильтр нижних частот (f_c = 100Hz))

Общие блоки, с которыми я сталкиваюсь снова и снова, включают:

  • Управление питанием (регуляторы напряжения, защита от обратной полярности, диоды TVS, выключатель питания, обходные заглушки и т. д.)
  • MCU (микроконтроллер, разъем для программирования или контактные площадки, заглушки для обхода микросхемы)
  • Индикаторы (например, светодиоды, электропроводка, 7-сегментный дисплей, вибромотор)
  • Датчики для определенной функции (например, текущие датчики, сенсорные датчики, GSR, активность, датчики окружающей среды и т. д.)
  • Debug Comms (ферритовая бусина, USB, I2C, UART, SPI, какой-то способ получить информацию)
  • Радио (все компоненты поддержки для многих радиостанций)
  • Видео (все вспомогательные компоненты и фишки для камеры)
  • Внешнее хранилище (например, внешняя флэш-память, микросхема EEPROM для хранения настроек и т. д.)
  • Любая другая функция, уникальная для вашего дизайна

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

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

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

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

Я также могу включить графики, нарисованные научным программным обеспечением, таким как октава.

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

Наконец, Keynotes/Powerpoints легко оформить для других и экспортировать в формате pdf для распространения среди нетехнических специалистов.

Разместите инженерные заметки на схемах и при необходимости создайте дополнительные листы. Я всегда размещаю инженерные заметки на всех своих схемах, потому что в моем мире мне, возможно, придется повторно посетить 1/2 запеченных проектов в течение определенного периода времени, а затем снова отложить их на второй план, пока я подбираю другой дизайн; очень плавный поток дизайна. Эти заметки по EE помогают мне и другим без особых усилий переосмыслить замысел проекта. Я также использую разные цвета текста/графики для обозначения важности или контекста. Пример ниже...введите описание изображения здесь

Я веду блокнот по дизайну и тщательно документирую потребности и пожелания. Для самых ранних прототипов я пройдусь по выбору деталей, делая заметки по всем реальным решениям. Для последующих изменений я использую довольно формальный процесс FMEA, документируя, какая потребность не удовлетворяется, чтобы оправдать изменение — потому что очевидно, что если нет неудовлетворенной потребности, нет необходимости в изменении!

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

Все версии всех вещей отслеживаются с помощью subversion.

Это может быть существенным компонентом файла истории разработки, который является обязательным для FDA.