Que vous conceviez un PCB à haute vitesse ou un système embarqué complexe, il nécessitera un certain niveau de test. Pour les systèmes avancés à haute vitesse et RF, cela signifie généralement des simulations comparées à des mesures VNA ou oscilloscope. Pour les logiciels et firmwares embarqués, les étapes de test peuvent être assez différentes. En fait, il y a certaines choses que vous pouvez faire dans votre conception de prototype pour vous aider à accélérer le processus de test et éliminer le besoin de sonder avec un multimètre.
Dans cet article, je vais vous montrer quelques astuces simples qui peuvent rendre le test et le débogage d'un prototype beaucoup plus faciles. Cela signifie adopter une approche de conception pour le test et l'appliquer à la fois au logiciel et au matériel. Voici un indice : le meilleur chemin pour le test des systèmes embarqués implique plus que juste placer des pastilles de test ou des points de test.
Nous avons beaucoup de mots à la mode dans l'industrie des PCB, et “conception pour le test” est généralement regroupé dans le lot plus large de DfX. Beaucoup de concepteurs aborderont la conception pour les tests pour une carte qui exécute du code embarqué de la même manière qu'ils aborderaient les tests pour toute autre carte.
Cela signifie généralement que les concepteurs placeront beaucoup de points de test sur les signaux importants, mais peut-être pas grand-chose d'autre. Beaucoup de prototypes embarqués commenceront à ressembler à une carte de développement Arduino, où tout ce à quoi vous pouvez penser sur le processeur principal est routé vers des en-têtes de broches et des points de test.
Je n'ai rien contre les en-têtes de broches sur une carte de systèmes embarqués, ou sur toute autre carte d'ailleurs. Mais, il est difficile de surveiller chaque signal et broche tout en essayant de tester et de déboguer le logiciel ou le firmware exécuté sur la carte. Dans certains cas, vous devez réellement écrire une application juste pour tester votre application. Parfois, si vous voyez une erreur dans les fonctions de votre conception, il n'est pas toujours évident de savoir si la cause principale est dans votre code ou dans votre PCBA.
Sur le côté matériel, concentrez-vous sur l'adoption de cette approche simplifiée de la conception pour le test :
Certains de ces concepts ont été largement discutés par Ari Mahpour dans ses discussions sur les tests et l'intégration continue. Jetez un œil à cet article pour en savoir plus sur cette approche. Si vous souhaitez renvoyer des données vers votre ordinateur, la méthode la plus simple consiste à ajouter une interface USB-vers-série à votre prototype. Regardez ce projet de Zach Peterson et récupérez les fichiers de conception du lien.
Ensuite, si vous exécutez une application embarquée sur votre système, vous pouvez inclure la gestion des erreurs ou des cas de test dans le code pour accélérer les tests. Ajouter les connexions aux interfaces avec des connecteurs, des pastilles de test et une interface série basique sont toutes des étapes importantes qui vous aident à surveiller votre carte embarquée en temps réel. L'objectif est de voir comment l'application logicielle se comporte en parallèle du matériel.
Alors, comment pouvez-vous surveiller les progrès de votre application et du matériel simultanément ? Prenez exemple sur les développeurs de logiciels : ajoutez la gestion des erreurs et des messages pour afficher le statut de chaque fonction dans votre application. Cela peut être aussi simple que d'afficher des messages indiquant si les fonctions importantes ont réussi ou échoué dans l'application. Cela prend un peu de temps supplémentaire pour écrire toutes ces vérifications d'erreurs, avoir un message à l'écran indiquant ce que votre système fait pendant l'exécution de l'application peut éliminer une tonne de débogage.
Voici un exemple qui montre comment cela serait implémenté en C/C++ en utilisant une fonction simple (appelée myFunction()) et une bibliothèque GPIO hypothétique. Supposons que vous travaillez avec une plateforme qui fournit une bibliothèque GPIO simple avec des fonctions comme gpio_init(), gpio_read(), etc. :
#include |
Si votre application surveille directement les signaux, elle peut imprimer ces résultats à chaque étape de ses fonctions principales. Afficher ces résultats à l'écran avec vos signaux indicateurs clés vous dira exactement ce qui se passe au fur et à mesure que votre application progresse, et vous n'aurez pas besoin de mesurer manuellement chaque signal sur votre carte avec une unité externe. Certes, cela nécessite de router quelques traces supplémentaires vers les GPIO lors de la conception de la carte, mais vous pourriez découvrir qu'une erreur de logique apparente était en réalité juste une simple erreur de connexion dans votre PCB.
N'oubliez pas, vous pouvez toujours prendre tout autre signal qui doit aller à une sonde vers un connecteur. De cette façon, ces signaux peuvent toujours être mesurés avec un oscilloscope, ou une carte d'acquisition de données. Pendant ce temps, le port série fera beaucoup de travail pour vous aider à interagir avec la logique de votre application.
Peu importe ce que vous souhaitez concevoir, vous pouvez mettre en œuvre des pratiques de conception innovantes pour le test en utilisant l'ensemble complet des fonctionnalités de conception de PCB dans Altium Designer®. Pour mettre en œuvre la collaboration dans l'environnement interdisciplinaire d'aujourd'hui, les entreprises innovantes utilisent la plateforme Altium 365™ pour partager facilement les données de conception et lancer la fabrication des projets.
Nous n'avons effleuré que la surface de ce qui est possible avec Altium Designer sur Altium 365. Commencez votre essai gratuit d'Altium Designer + Altium 365 dès aujourd'hui.