Se stai progettando un PCB ad alta velocità o un sistema embedded complesso, avrà bisogno di un certo livello di test. Per i sistemi avanzati ad alta velocità e RF, ciò significa solitamente simulazioni confrontate con misurazioni VNA o oscilloscopio. Per il software e firmware embedded, i passaggi di test possono essere piuttosto diversi. Infatti, ci sono alcune cose che puoi fare nel tuo design prototipale per aiutarti ad accelerare il processo di test ed eliminare la necessità di sondare con un multimetro.
In questo articolo, ti mostrerò alcuni semplici trucchi che possono rendere il test e il debug di un prototipo molto più facili. Ciò significa adottare un approccio di progettazione orientato al test e applicarlo sia al software che all'hardware. Ecco un suggerimento: il miglior percorso per il test dei sistemi embedded comporta più che semplicemente posizionare pad di test o punti di test.
Abbiamo molti termini tecnici nell'industria dei PCB, e "progettazione orientata al test" è solitamente raggruppata con il più ampio pacchetto DfX. Molti progettisti affronteranno la progettazione orientata al test per una scheda che esegue codice embedded nello stesso modo in cui affronterebbero il test per qualsiasi altra scheda.
Questo significa solitamente che i progettisti posizioneranno molti punti di test su segnali importanti, ma forse non molto altro. Molti prototipi embedded inizieranno a sembrare una scheda di sviluppo Arduino, dove tutto ciò che puoi pensare sul processore principale è instradato verso pin header e punti di test.
Non ho nulla contro i pin header su una scheda di sistemi embedded, o su qualsiasi altra scheda per quel che riguarda. Ma, è difficile monitorare ogni segnale e pin mentre si cerca anche di testare e fare debug del software o firmware in esecuzione sulla scheda. In alcuni casi devi effettivamente scrivere un'applicazione solo per testare la tua applicazione. A volte, se vedi un errore nelle funzioni del tuo design, potrebbe non essere sempre ovvio se la causa principale è nel tuo codice o nel tuo PCBA.
Sul lato hardware, concentra l'attenzione su questo approccio semplificato alla progettazione orientata al test:
Alcuni di questi concetti sono stati ampiamente discussi da Ari Mahpour nelle sue discussioni su test e integrazione continua. Dai un'occhiata a questo articolo per saperne di più su questo approccio. Se vuoi inviare dati al tuo computer, il metodo più semplice è aggiungere un'interfaccia USB-seriale al tuo prototipo. Dai un'occhiata a questo progetto di Zach Peterson e ottieni i file di progetto del link.
In seguito, se stai eseguendo un'applicazione embedded sul tuo sistema, allora puoi includere la gestione degli errori o casi di test nel codice per accelerare i test. Aggiungere le connessioni alle interfacce con header, pad di test e un'interfaccia seriale di base sono tutti passaggi importanti che ti aiutano a monitorare la tua scheda embedded in tempo reale. L'obiettivo è vedere come si comporta l'applicazione software a fianco dell'hardware.
Quindi, come puoi monitorare il progresso della tua applicazione e dell'hardware contemporaneamente? Prendi spunto dagli sviluppatori di software: aggiungi la gestione degli errori e messaggi per visualizzare lo stato di ogni funzione nella tua applicazione. Questo può essere semplice come visualizzare messaggi che indicano se le funzioni importanti sono state superate o fallite nell'applicazione. Ci vuole un po' di tempo in più per scrivere tutti quei controlli degli errori, avere un messaggio sullo schermo che indica cosa sta facendo il tuo sistema durante l'esecuzione dell'applicazione può eliminare un sacco di debug.
Ecco un esempio che mostra come ciò sarebbe implementato in C/C++ usando una semplice funzione (chiamata myFunction()) e una libreria GPIO ipotetica. Supponiamo che tu stia lavorando con una piattaforma che fornisce una semplice libreria GPIO con funzioni come gpio_init(), gpio_read(), ecc.:
#include |
Se la tua applicazione monitora direttamente i segnali, può stampare questi risultati ad ogni passo nelle sue funzioni principali. Stampare questi sullo schermo insieme ai tuoi segnali indicatore chiave ti dirà esattamente cosa sta succedendo mentre la tua applicazione progredisce, e non avrai bisogno di misurare manualmente ogni segnale sulla tua scheda con un'unità esterna. Certo, richiede il tracciamento di qualche traccia extra verso i GPIO quando si progetta la scheda, ma potresti scoprire che un apparente errore logico era in realtà solo un semplice errore di connessione nel tuo PCB.
Non dimenticare, puoi comunque portare qualsiasi altro segnale che necessita di andare a una sonda verso un header. In questo modo, quei segnali possono ancora essere misurati con un oscilloscopio, o una scheda di acquisizione dati. Nel frattempo, la porta seriale farà gran parte del lavoro di aiutarti a interagire con la logica della tua applicazione.
Non importa cosa tu voglia progettare, puoi implementare pratiche innovative di progettazione per il test utilizzando il set completo di funzionalità di progettazione PCB in Altium Designer®. Per implementare la collaborazione nell'ambiente interdisciplinare di oggi, le aziende innovative stanno utilizzando la piattaforma Altium 365™ per condividere facilmente i dati di progettazione e mettere in produzione i progetti.
Abbiamo solo sfiorato la superficie di ciò che è possibile con Altium Designer su Altium 365. Inizia oggi la tua prova gratuita di Altium Designer + Altium 365.