Seja projetando uma PCB de alta velocidade ou um sistema embarcado complexo, será necessário algum nível de teste. Para os sistemas avançados de alta velocidade e RF, isso geralmente significa simulações comparadas a medições de VNA ou osciloscópio. Para o software e firmware embarcado, os passos de teste podem ser bastante diferentes. Na verdade, existem algumas coisas que você pode fazer no design do seu protótipo para ajudar a acelerar o processo de teste e eliminar a necessidade de sondar com um multímetro.
Neste artigo, vou mostrar algumas dicas simples que podem tornar o teste e a depuração de um protótipo muito mais fáceis. Isso significa adotar uma abordagem de design voltada para o teste e aplicá-la tanto ao software quanto ao hardware. Aqui vai uma dica: o melhor caminho para o teste de sistemas embarcados envolve mais do que apenas colocar pads de teste ou pontos de teste.
Existem muitos jargões na indústria de PCB, e “design para teste” geralmente é agrupado com o pacote DfX mais amplo. Muitos designers abordam o design para teste de uma placa que executa código embarcado da mesma maneira que abordariam o teste para qualquer outra placa.
Isso geralmente significa que os designers colocarão muitos pontos de teste em sinais importantes, mas talvez não muito mais. Muitos protótipos embarcados começarão a parecer com uma placa de desenvolvimento Arduino, onde tudo o que você pode pensar no processador principal é direcionado para pin headers e pontos de teste.
Não tenho nada contra pin headers em uma placa de sistemas embarcados, ou em qualquer outra placa, nesse caso. Mas, é difícil monitorar todos os sinais e pinos enquanto também tenta testar e depurar software ou firmware executando na placa. Em alguns casos, você tem que escrever um aplicativo apenas para testar seu aplicativo. Às vezes, se você vê um erro nas funções do seu design, pode não ser sempre óbvio se a causa raiz está no seu código ou na sua PCBA.
No lado do hardware, concentre-se em adotar esta abordagem simplificada para o design para teste:
Alguns desses conceitos foram bastante discutidos por Ari Mahpour em suas discussões sobre testes e integração contínua. Dê uma olhada neste artigo para aprender mais sobre essa abordagem. Se você quer enviar dados de volta para o seu computador, o método mais simples é adicionar uma interface USB-para-serial ao seu protótipo. Dê uma olhada neste projeto de Zach Peterson e pegue os arquivos de design do link.
A seguir, se você está executando uma aplicação embarcada no seu sistema, então você pode incluir tratamento de erros ou casos de teste no código para ajudar a acelerar os testes. Adicionar as conexões a interfaces com cabeçalhos, almofadas de teste e uma interface serial básica são todos passos importantes que ajudam você a monitorar sua placa embarcada em tempo real. O objetivo é ver como a aplicação de software se comporta juntamente com o hardware.
Então, como você pode monitorar o progresso da sua aplicação e hardware simultaneamente? Siga a dica dos desenvolvedores de software: adicione tratamento de erros e mensagens para exibir o status de cada função na sua aplicação. Isso pode ser tão simples quanto exibir mensagens indicando se funções importantes foram aprovadas ou falharam na aplicação. Leva um tempo extra para escrever todas essas verificações de erro, ter uma mensagem na tela indicando o que seu sistema está fazendo durante a execução da aplicação pode eliminar uma tonelada de depuração.
Aqui está um exemplo que mostra como isso seria implementado em C/C++ usando uma função simples (chamada myFunction()) e uma biblioteca GPIO hipotética. Vamos supor que você esteja trabalhando com uma plataforma que fornece uma biblioteca GPIO simples com funções como gpio_init(), gpio_read(), etc.:
#include |
Se sua aplicação está monitorando sinais diretamente, ela pode imprimir esses resultados a cada etapa em suas funções principais. Imprimir isso na tela junto com seus sinais indicadores chave dirá exatamente o que está acontecendo à medida que sua aplicação progride, e você não precisará medir manualmente cada sinal em sua placa com uma unidade externa. Claro, isso requer a roteirização de alguns traços extras para os GPIOs ao projetar a placa, mas você pode descobrir que um aparente erro de lógica era realmente apenas um simples erro de conexão em seu PCB.
Não se esqueça, você ainda pode levar quaisquer outros sinais que precisem ir para uma sonda até um cabeçalho. Desta forma, esses sinais ainda podem ser medidos com um osciloscópio ou um cartão de aquisição de dados. Enquanto isso, a porta serial fará muito do trabalho de ajudá-lo a interagir com a lógica da sua aplicação.
Não importa o que você queira projetar, você pode implementar práticas inovadoras de design para teste usando o conjunto completo de recursos de design de PCB em Altium Designer®. Para implementar a colaboração no ambiente interdisciplinar de hoje, empresas inovadoras estão usando a plataforma Altium 365™ para compartilhar facilmente dados de design e colocar projetos em fabricação.
Apenas arranhamos a superfície do que é possível com Altium Designer no Altium 365. Comece sua avaliação gratuita do Altium Designer + Altium 365 hoje.