В этой статье мы рассмотрим реализацию драйвера интегральной схемы от создания схемы до разработки печатной платы. Этот проект вы можете найти на GitHub, он опубликован под открытой лицензией, так что вы можете просто скопировать его и вставить в свой собственный проект.
У меня есть два маленьких, высокоскоростных мотора, которые я хочу запустить, каждый из которых будет потреблять около 1 ампера под нагрузкой, и мне нужно будет запитать их от источника питания 30 вольт в промышленной машине. Оригинальная электроника вышла из строя и теперь устарела, поэтому необходимо разработать новую управляющую плату. Пока что я собираюсь обсудить только драйвер мотора в этом проекте.
Учитывая требования и ограниченную площадь платы, с которой мне придется работать на финальной печатной плате, я выбрал использовать Allegro A4954 за его характеристики 2 ампера / 40 вольт и корпус TSSOP-16 с тепловой подложкой. Он также очень доступен по цене, почти такой же, как и одиночный драйвер мотора, например, Allegro A4953, и другие недорогие одиночные драйверы моторов, которые вы могли бы использовать, если бы у вас был только один мотор для управления.
Основное преимущество использования одиночного интегрального драйвера для нашего приложения заключается в том, что это сокращает количество дополнительных компонентов, необходимых для завершения схемы. Единственные дополнительные компоненты, которые нам нужны, это несколько резисторов, конденсаторов и регулятор на 3.3 вольта. Я бы также хотел добавить диод и конденсатор на каждый вывод мотора, однако, чтобы снизить переходные импульсы, которые могут повредить H-мост или вызвать проблемы с сертификацией по электромагнитной совместимости.
Обычно я работаю с библиотекой базы данных, но для целей этой статьи это не создало бы удобного для использования решения. Поэтому я добавил соответствующие файлы pcblib и schlib в проект и включил отпечатки к символам схемы для начала работы. Однако это означает, что мы размещаем общие пассивные компоненты вместо тех, что находятся в библиотеке, что мне не очень нравится. Размещение общих деталей приводит к ошибкам, поэтому это отличное место для использования Concord Pro, чтобы помочь управлять библиотекой, но не добавляя всех моих читателей в мою команду Concord Pro, никто из них не сможет использовать созданную мной библиотеку. Поэтому, чтобы разместить детали, которые, как я знаю, можно найти в источниках, я собираюсь искать каждый необходимый компонент в панели поиска производственных частей, а затем добавлять ссылку поставщика и параметры к каждому символу схемы. Это также поможет при создании спецификации материалов, а также при заказе компонентов у поставщика.
Altium позволяет добавлять ссылки на поставщиков, что упрощает работу на более поздних этапах.
Я обнаружил, что управление компонентами по мере их добавления критически важно для обеспечения того, чтобы каждая деталь была действительным, заказываемым компонентом. Гораздо проще обеспечить действительность каждой части в момент их размещения, чем обнаружить в конце фазы проектирования, что компонент не может быть получен и что дизайн нуждается в доработке для замены на аналогичный компонент.
Мы начинаем с добавления всех наших действительных, доступных для заказа компонентов и общих пассивных элементов на схему.
Я начинаю свой проект с разъемов, резистора тока, диода TVS и основного интегрального схемы, указанных в спецификации.
Также я добавил символы общих конденсаторов, резисторов и потенциометров, которые буду копировать и вставлять по мере необходимости в процессе проектирования, а затем уточнять, как только они окажутся на правильных местах на схеме. Когда я быстро создаю схему с общими деталями на простых проектах, это быстрее, чем каждый раз возвращаться к панели библиотеки за очередной копией того же компонента. Вы можете сдвинуть-перетащить символ, чтобы клонировать его, что является самым быстрым способом, который я нашел, чтобы разместить еще один общий компонент того же размера.
Затем мы соединяем все части, которые мы разместили, чтобы создать полную схему.
Схема, полностью заполненная, довольно проста, как и должно быть с полностью интегрированным драйвером ИС. Я добавил несколько резисторов на 33 Ом для защиты микроконтроллера от входов драйвера ИС, которые, в случае каких-либо неприятностей с драйвером, должны ограничить ток, поступающий в микроконтроллер, до приемлемого уровня. Я добавил конденсатор на 100 нФ и диод TVS к выходам мотора, что поможет смягчить ЭСР и переходные обратные напряжения от мотора, как было упомянуто ранее. Я также добавил резистивный делитель напряжения с переменным резистором для верхней ноги, чтобы можно было установить необходимый ток мотора. Делитель напряжения питается от простого линейного регулятора напряжения, который я обычно не хотел бы использовать с падением на 27 вольт. Однако в данном случае потребляемый ток будет достаточно низким, чтобы регулятор не перегревался.
Микросхема Allegro A4954 и все пассивные компоненты, подключенные к ней до аннотации.
Наконец, когда схема полностью разложена, я аннотировал схему, чтобы завершить номера обозначений. Лично я предпочитаю делать это в конце захвата схемы, поскольку обычно это позволяет мне получать номера обозначений, которые более сгруппированы вместе, чем если бы я постоянно аннотировал сразу после добавления новых компонентов. Это может дать нам представление о том, где на схеме может находиться компонент, исходя из его обозначения.
Обратите внимание, как все части, сгруппированные вокруг драйвера, получают близкие номера обозначений.
Поскольку я назначил реальные детали каждому компоненту на схеме, теперь у меня есть ActiveBOM в проекте, который можно использовать как для оценки стоимости схемы, так и для проверки доступности всех компонентов для массового производства. ActiveBOM очень удобен для быстрой оценки стоимости на плату при различных объемах производства. На момент написания статьи моя стоимость компонентов на плату для одной платы составляла 7.99 USD, снижаясь до всего 3.42 USD за плату при 1000 платах. С точки зрения бюджета, это может позволить мне определить, нужно ли мне, возможно, искать альтернативные варианты для схемы, чтобы снизить цену при моем ожидаемом объеме производства. Это может значительно повысить мою продуктивность, поскольку я могу сделать это определение до того, как я потратил какое-либо время на трассировку печатной платы.
Как и в любом проекте печатной платы, наша первая задача - разместить компоненты на плате с помощью Изменения Конструкторской Документации (ЭКД).
Расположение компонентов на плате после того, как все компоненты были добавлены.
Есть пара вещей, которые мне нравится делать после переноса схематических данных на плату, во-первых, я помещаю все обозначения на механический слой, который я назвал Обозначениями, чтобы они не занимали место на плате. В панели Фильтр Платы я использую фильтр:
IsDesignator AND OnLayer('Top Overlay')
Это выбирает все мои обозначения, и я могу быстро редактировать их в окне свойств, чтобы изменить слой, а также сделать их шрифтом True Type и автоматически позиционировать их в центре компонента, что обеспечивает более качественные чертежи платы позже, если это необходимо.
Далее, я могу включить Режим Кросс-Выбора из меню Инструменты (или Shift-Ctrl-X), чтобы выбрать логические группы компонентов на схеме. Даже с небольшой, простой схемой, как эта, это экономит мне время для группировки компонентов на печатной плате.
Выбрав драйвер IC и его вспомогательные компоненты на схеме, а затем переключившись обратно на плату, я выделил эти компоненты из кучи недавно добавленных деталей.
Выбор компонентов из схемы экономит время по сравнению с их поиском и выбором по одному в компоновке печатной платы.
Затем я могу использовать Инструменты -> Размещение компонентов -> Упорядочить внутри прямоугольника (также доступно на старой панели инструментов Утилиты под иконкой Инструментов выравнивания) и нарисовать прямоугольник вне платы, чтобы сгруппировать эти части вместе.
Это позволяет мне получить маленькие блоки компонентов для размещения их самостоятельно наиболее оптимальным образом. С более крупными, более сложными проектами я обнаруживаю, что, размещая каждый логический блок самостоятельно, я затем могу привести их всех на печатную плату сразу, чтобы найти оптимальное вращение и позицию для этого блока, а также определить, какие жертвы могут потребоваться в размещении компонентов для оптимизации использования площади платы. Для меня это экономит много времени и обычно дает мне лучшую компоновку, чем просто создание размещения компонентов от одного компонента.
Функции размещения компонентов позволяют упорядочивать компоненты внутри кластеров, представляющих логические блоки на схеме.
В течение нескольких минут это превращается в доску, которая относительно компактна и должна быть маршрутизируема.
Окончательное размещение компонентов маршрутизируемо, логически организовано и компактно.
Быстрая проверка 3D-вида показывает, что сборка платы вручную также будет довольно простой, что является отличной проверкой для деталей малого объема.
3D-вид платы до добавления дорожек.
Трассировка этой платы довольно проста, так как схема очень простая! Единственное, на что стоит обратить внимание, это то, что в техническом описании драйвера мотора рекомендуется предусмотреть заземляющий путь от резисторов текущего сенсора непосредственно к земле ИС, с вырезами полигонов для создания этой звездообразной земли. Я добавил полные заливки земли для верхней и нижней части платы для начала, а затем использовал инструмент выреза полигонов (в меню Размещение), чтобы добавить предложенные вырезы.
Плата после того, как была проведена трассировка, добавлены заливки земли и сделаны вырезы полигонов.
С электрической точки зрения эта плата теперь выглядит завершенной, однако в 3D-виде она не очень привлекательна.
3D-вид платы после добавления дорожек все еще кажется немного недостаточным.
Мне нравится, чтобы мои платы выглядели аккуратно, даже если они предназначены только для личного использования. Как инженер, я воспринимаю все печатные платы как произведение искусства, в них вложено столько же мысли и заботы, сколько и в любой шедевр в музее, поэтому они должны выглядеть соответствующе!
С помощью нескольких областей на верхнем слое оверлея и некоторого инвертированного текста, я добавил немного стиля и меток, чтобы использование платы стало немного проще.
Элементы на верхнем слое оверлея делают плату более удобной в использовании и красивее.
Нижняя сторона платы обрабатывается аналогичным образом, с добавлением небольшого логотипа ESD, штрих-кода для идентификации модели/версии/ревизии платы, и пары областей, где контролер качества может добавить свои инициалы, плюс пара полей для записи даты изготовления и установки.
Нижняя сторона платы.
Это быстро превращает плату из простой и невзрачной в более аккуратную, завершенную и функциональную.
Если вы ищете возможность реализовать однокристальный драйвер двигателя постоянного тока, этот проект может стать хорошей отправной точкой для вас. Вы можете скачать проект на GitHub и использовать его как пожелаете. Схема основана на проверенной производством схеме и компоновке, однако вам все же следует убедиться, что дизайн соответствует вашим требованиям и схема/контакты верны.
В следующий раз я рассмотрю эту плату в PDN Analyser, чтобы определить, подходят ли дорожки для токовых требований микросхемы H-моста и двух моторов. Если вы раньше не использовали PDN Analyser, это будет вводный проект, за которым вы сможете следить, чтобы научиться настраивать инструмент для анализа вашей печатной платы.
Хотели бы вы узнать больше о том, как Altium может помочь вам с вашим следующим проектом печатной платы? Обратитесь к эксперту в Altium или узнайте больше о PDN анализаторе от Altium.