Projet : automatiser un banc de test de cartes électroniques                                                

Technologies / langages employés: assembleur Motorola, DLL en C, LabVIEW, TestStand                       

Pour le test fonctionnel de certaines cartes, il est nécessaire de communiquer avec le microcontrôleur qui les contrôle pour pouvoir accéder aux différentes parties de la carte et donc avoir un taux de couverture de test beaucoup plus grand.

Pour un banc d’un client, tout était testé manuellement avec un risque d’erreurs humaines important (aucun contrôle que toutes les phases de test avaient été réalisées).

Nous avons donc choisi de développer une DLL C sous Visual C++.

Cette DLL permet d’accéder au microcontrôleur de la carte via un port du PC de test. Il est ainsi possible de modifier le contenu de registres, d’envoyer/recevoir des données, d’écrire/lire dans des zones de la mémoire (dans le micro ou sur la carte), de programmer des flash, d’envoyer des programmes de test qui pourront ensuite être exécutés par le microcontrôleur.

La séquence de test a été entièrement repensée sous TestStand. Le programme initial ne permettait en effet que de tester la partie analogique (réglage de potentiomètres, contrôle de gain, de bruit…) et c’était à l’opérateur de lancer manuellement chaque opération.

L’objectif de notre projet n’était pas uniquement d’optimiser le programme de test mais également les manipulations de l’opérateur. Pour cela, nous avons entièrement repensé la partie hardware du banc de test.

La base du banc a été réalisée avec des cartes National Instruments. Pour limiter l’usure de ces cartes et pour rendre le banc « universel », nous avons développé une interface entre les cartes NI et les différents lits à clous. Ainsi, le temps d’installation d’un banc de test est nettement diminué : l’opérateur n’a en effet qu’à connecter le lit à clous correspondant à sa carte sur le banc « universel ».

Ce nouveau banc a permis de diviser par 2 (voire par 3 pour certaines cartes) les temps de test.

 

Actions menées

  • Recherche et développement de la carte de communication avec le microcontrôleur Motorola
  • Développement des drivers périphériques en C
  • Modification des firmwares de test (test in situ) codés en assembleur pour créer une intéraction microntrôleur-PC en cours de test
  • Remplacement des périphériques obsolètes (ex: imprimante matricielle) par des modules informatiques de simulation
  • Automatisation des manipulations humaines (suppression des contrôles visuels, retrait des connecteurs de test au profit de palpeurs et pointes de test)
  • Définition des cartes de mesure requises pour le banc de test National Instruments
  • Génération automatique des rapports de test
dapibus elementum risus dolor Sed ut Aenean