고속 PCB를 설계하든 복잡한 임베디드 시스템을 설계하든, 일정 수준의 테스트가 필요합니다. 고속 및 RF 시스템의 경우, 보통 VNA나 스코프 측정과 비교한 시뮬레이션을 의미합니다. 임베디드 소프트웨어와 펌웨어의 경우, 테스트 단계는 상당히 다를 수 있습니다. 실제로, 프로토타입 설계에서 테스트 과정을 가속화하고 멀티미터로 측정할 필요를 없애는 데 도움이 되는 몇 가지 방법이 있습니다.
이 글에서는 프로토타입을 테스트하고 디버깅하는 것을 훨씬 쉽게 만들 수 있는 몇 가지 간단한 팁을 보여드리겠습니다. 이는 소프트웨어와 하드웨어 모두에 테스트를 위한 설계 접근 방식을 적용하는 것을 의미합니다. 여기에는 테스트 패드나 테스트 포인트를 배치하는 것 이상의 임베디드 시스템 테스트를 위한 최선의 방법이 포함됩니다.
PCB 산업에서는 많은 유행어가 있으며, “테스트를 위한 설계”는 보통 더 넓은 DfX 묶음과 함께 그룹화됩니다. 많은 설계자들은 임베디드 코드를 실행하는 보드의 테스트를 다른 보드의 테스트와 같은 방식으로 접근할 것입니다.
이는 보통 설계자들이 중요한 신호에 많은 테스트 포인트를 배치하지만, 그 이상은 아닐 수도 있다는 것을 의미합니다. 많은 임베디드 프로토타입은 Arduino 개발 보드처럼 보이기 시작할 것입니다. 여기서 메인 프로세서의 모든 것이 핀 헤더와 테스트 포인트로 라우팅됩니다.
임베디드 시스템 보드나 다른 보드에 핀 헤더가 있다는 것에 반대하는 것은 아닙니다. 하지만, 모든 신호와 핀을 모니터링하면서 보드에서 실행되는 소프트웨어나 펌웨어를 테스트하고 디버깅하기는 어렵습니다. 경우에 따라서는 애플리케이션을 테스트하기 위해 실제로 애플리케이션을 작성해야 할 수도 있습니다. 설계의 기능에서 오류를 발견하면 그 원인이 코드에 있는지 PCBA에 있는지 항상 명확하지 않을 수 있습니다.
하드웨어 측면에서, 테스트를 위한 설계에 대해 이 간소화된 접근 방식에 집중하세요:
Ari Mahpour가 테스트와 지속적 통합에 대한 논의에서 많이 다룬 개념들입니다. 이 기사를 살펴보세요 이 접근법에 대해 더 알아보기 위해서입니다. 컴퓨터로 데이터를 다시 보내고 싶다면, 가장 간단한 방법은 프로토타입에 USB-to-serial 인터페이스를 추가하는 것입니다. 이 프로젝트를 살펴보세요 Zach Peterson의 작업에서 링크 디자인 파일을 얻으세요.
다음으로, 시스템에서 임베디드 애플리케이션을 실행 중이라면, 코드에 오류 처리나 테스트 케이스를 포함시켜 테스트 속도를 높일 수 있습니다. 헤더, 테스트 패드, 기본 직렬 인터페이스에 연결을 추가하는 것은 모두 실시간으로 임베디드 보드를 모니터링하는 데 도움이 되는 중요한 단계입니다. 목표는 소프트웨어 애플리케이션이 하드웨어와 함께 어떻게 동작하는지 보는 것입니다.
그렇다면 어떻게 애플리케이션과 하드웨어의 진행 상황을 동시에 모니터링할 수 있을까요? 소프트웨어 개발자들로부터 힌트를 얻으세요: 오류 처리와 각 기능의 상태를 표시하는 메시지를 추가하세요. 이는 애플리케이션에서 중요한 기능이 통과했는지 실패했는지를 나타내는 메시지를 표시하는 것만큼 간단할 수 있습니다. 모든 오류 검사를 작성하는 데는 추가 시간이 좀 필요하지만, 애플리케이션 실행 중에 시스템이 무엇을 하고 있는지를 나타내는 화면상의 메시지가 있으면 디버깅을 엄청나게 줄일 수 있습니다.
다음은 C/C++에서 간단한 함수(myFunction()이라고 함)와 가상의 GPIO 라이브러리를 사용하여 이를 구현하는 방법을 보여주는 예입니다. gpio_init(), gpio_read() 등과 같은 함수를 제공하는 간단한 GPIO 라이브러리를 사용하는 플랫폼으로 작업한다고 가정해 봅시다:
#include |
어플리케이션이 직접 신호를 모니터링하는 경우, 핵심 기능의 각 단계에서 그 결과를 출력할 수 있습니다. 주요 지표 신호와 함께 화면에 이러한 내용을 출력하면 어플리케이션이 진행됨에 따라 정확히 무슨 일이 일어나고 있는지 알 수 있으며, 외부 장치를 사용하여 보드 전체의 모든 신호를 수동으로 측정할 필요가 없습니다. 물론, 보드를 설계할 때 GPIO로 몇 개의 추가 트레이스를 라우팅해야 하지만, PCB의 간단한 연결 오류가 명백한 논리 오류로 보였을 수도 있다는 것을 알게 될 수 있습니다.
물론, 프로브로 전달해야 하는 다른 신호들은 헤더로 가져갈 수 있습니다. 이렇게 하면 그러한 신호들도 스코프나 데이터 수집 카드로 측정할 수 있습니다. 한편, 시리얼 포트는 어플리케이션 로직과 상호 작용하는 데 많은 작업을 수행할 것입니다.
무엇을 설계하고자 하든, Altium Designer®의 완벽한 PCB 설계 기능 세트를 사용하여 혁신적인 테스트 설계 관행을 구현할 수 있습니다. 오늘날의 다학제 환경에서 협업을 구현하기 위해 혁신적인 기업들은 Altium 365™ 플랫폼을 사용하여 설계 데이터를 쉽게 공유하고 프로젝트를 제조 단계로 넘길 수 있습니다.
Altium Designer와 Altium 365에서 가능한 것의 표면만 긁어냈습니다. 오늘 Altium Designer + Altium 365의 무료 체험을 시작하세요.