Независимо от того, разрабатываете ли вы высокоскоростную печатную плату или сложную встроенную систему, потребуется некоторый уровень тестирования. Для передовых высокоскоростных и РЧ систем это обычно означает симуляции в сравнении с измерениями VNA или осциллографа. Для встроенного программного обеспечения и прошивок этапы тестирования могут быть совершенно другими. Фактически, есть некоторые вещи, которые вы можете сделать в своем прототипе, чтобы ускорить процесс тестирования и избежать необходимости ковыряться мультиметром.
В этой статье я покажу вам несколько простых трюков, которые могут сделать тестирование и отладку прототипа намного проще. Это означает применение подхода проектирования с учетом тестирования как к программному, так и к аппаратному обеспечению. Вот подсказка: лучший путь для тестирования встроенных систем включает в себя нечто большее, чем просто размещение тестовых площадок или тестовых точек.
В индустрии печатных плат много модных слов, и «проектирование с учетом тестирования» обычно объединяется с более широким пакетом DfX. Многие разработчики подходят к проектированию с учетом тестирования для платы, на которой работает встроенный код, так же, как они подходили бы к тестированию любой другой платы.
Обычно это означает, что разработчики размещают множество тестовых точек на важных сигналах, но, возможно, не много чего еще. Многие встроенные прототипы начинают выглядеть как разработческая плата Arduino, где все, что только можно придумать на основном процессоре, выводится на штыревые разъемы и тестовые точки.
Я ничего не имею против штыревых разъемов на плате встроенных систем или на любой другой плате. Но сложно контролировать каждый сигнал и контакт, одновременно пытаясь тестировать и отлаживать программное обеспечение или прошивку, работающую на плате. В некоторых случаях вам приходится действительно писать приложение только для тестирования вашего приложения. Иногда, если вы видите ошибку в функциях вашего дизайна, не всегда очевидно, в вашем коде или в вашей PCBA находится корень проблемы.
С аппаратной стороны, сосредоточьтесь на принятии этого упрощенного подхода к проектированию с учетом тестирования:
Некоторые из этих концепций были подробно обсуждены Ари Махпуром в его дискуссиях о тестировании и непрерывной интеграции. Ознакомьтесь с этой статьей, чтобы узнать больше об этом подходе. Если вы хотите отправить данные обратно на свой компьютер, самый простой метод - добавить интерфейс USB-to-serial к вашему прототипу. Ознакомьтесь с этим проектом от Зака Петерсона и получите ссылку на файлы дизайна.
Далее, если вы запускаете встроенное приложение на вашей системе, то вы можете включить обработку ошибок или тестовые случаи в код, чтобы ускорить тестирование. Добавление соединений к интерфейсам с заголовками, тестовыми площадками и базовым последовательным интерфейсом - все это важные шаги, которые помогают вам отслеживать вашу встроенную плату в реальном времени. Цель - увидеть, как программное приложение ведет себя вместе с аппаратным обеспечением.
Так как же можно одновременно отслеживать прогресс вашего приложения и аппаратного обеспечения? Возьмите пример с разработчиков программного обеспечения: добавьте обработку ошибок и сообщения для отображения статуса каждой функции в вашем приложении. Это может быть так же просто, как отображение сообщений о том, прошли ли важные функции или нет в приложении. На написание всех этих проверок ошибок уходит дополнительное время, но наличие сообщения на экране, указывающего, что делает ваша система во время выполнения приложения, может исключить тонны отладки.
Вот пример, который показывает, как это может быть реализовано на C/C++ с использованием простой функции (называемой myFunction()) и гипотетической библиотеки GPIO. Допустим, вы работаете с платформой, которая предоставляет простую библиотеку GPIO с функциями вроде gpio_init(), gpio_read() и т. д.:
#include |
Если ваше приложение непосредственно мониторит сигналы, оно может выводить эти результаты на каждом шаге его основных функций. Вывод этих данных на экран вместе с вашими ключевыми индикаторными сигналами покажет вам, что именно происходит по мере развития вашего приложения, и вам не придется вручную измерять каждый сигнал на вашей плате с помощью внешнего устройства. Конечно, это требует прокладки нескольких дополнительных трасс к GPIO при проектировании платы, но вы можете обнаружить, что казавшаяся логическая ошибка на самом деле была просто ошибкой соединения на вашей печатной плате.
Не забывайте, что любые другие сигналы, которые нужно отправить на пробник, можно вывести на разъем. Таким образом, эти сигналы все еще можно измерять с помощью осциллографа или карты сбора данных. Между тем, последовательный порт сделает большую часть работы по взаимодействию с логикой вашего приложения.
Независимо от того, что вы хотите спроектировать, вы можете реализовать инновационные практики проектирования для тестирования, используя полный набор функций проектирования печатных плат в Altium Designer®. Для реализации сотрудничества в современной междисциплинарной среде инновационные компании используют платформу Altium 365™ для легкого обмена данными проектирования и запуска проектов в производство.
Мы только коснулись поверхности возможностей Altium Designer на Altium 365. Начните ваш бесплатный пробный период Altium Designer + Altium 365 сегодня.