Test Types & Methods

Déverminage (ESS) : le guide complet

Comprenez le déverminage (ESS), sa différence avec le HALT et le HASS, comment fixer les niveaux et enregistrer chaque déverminage dans TofuPilot.

JJulien Buteau
intermediate11 min de lecture27 octobre 2026

Le déverminage (ESS, environmental stress screening) applique une contrainte maîtrisée à chaque unité produite pour que les défauts latents de fabrication se déclarent en usine plutôt que chez le client. Ce guide explique ce qu'est l'ESS, ce qui le distingue du HALT, du HASS et de la qualification, comment choisir les contraintes et leurs niveaux, et comment enregistrer chaque déverminage dans une procédure TofuPilot.

Ce qu'est l'ESS

Un défaut latent est un défaut qui passe un test fonctionnel aux conditions ambiantes mais qui casse tôt en service : une brasure fissurée qui ne s'est pas encore ouverte, un sertissage avec trop peu de brins, une vis serrée sous le couple spécifié, un composant dont la brasure de puce est endommagée. Ces défauts viennent du procédé de fabrication, pas de la conception, ils apparaissent donc sur certaines unités et pas sur d'autres.

L'ESS est une opération de production qui a trois propriétés :

PropriétéSignification
100 % des unitésChaque unité livrée passe par le déverminage, pas un échantillon
Précipiter, pas démontrerLe but est de transformer un défaut latent en défaillance détectable, pas de démontrer que la conception tient une exigence
Sans dommage pour les unités sainesLe déverminage consomme une fraction faible et connue de la durée de vie en fatigue d'une unité saine

Le déverminage retire de ce que reçoit le client la première partie de la courbe de taux de défaillance (la zone de mortalité infantile). Il ne fait rien contre les faiblesses de conception, qui touchent toutes les unités et relèvent de la vérification de conception.

ESS, HALT, HASS et qualification

Quatre activités utilisent les mêmes enceintes et les mêmes pots vibrants, d'où la confusion fréquente. Elles répondent à des questions différentes.

ActivitéÉtapeUnitésNiveau de contrainteQuestion poséeUnités livrées
QualificationVérification de conceptionÉchantillonÀ l'environnement spécifié, avec margeLa conception tient-elle son exigence d'environnement ?Non
HALTDéveloppementQuelques prototypesAugmenté par paliers jusqu'à la défaillanceOù sont les limites de fonctionnement et de destruction, et qu'est-ce qui casse en premier ?Non
HASSProduction100 %Au-delà de la spécification, sous les limites de destruction trouvées en HALTCette unité porte-t-elle un défaut de fabrication ?Oui
ESSProduction100 %Dans l'environnement spécifié ou proche de luiCette unité porte-t-elle un défaut de fabrication ?Oui

Le HASS est une forme de déverminage dont les niveaux viennent du HALT. L'ESS au sens large couvre tout déverminage de production, y compris des programmes aux niveaux modérés fixés à partir de la spécification du produit. Les deux s'appliquent à des unités livrées, et c'est cette contrainte qui guide chaque choix ci-dessous.

Les contraintes

Trois contraintes portent l'essentiel des déverminages de production. Chacune précipite une famille de défauts différente.

ContrainteMécanismeDéfauts précipités
Vibration aléatoireUne excitation large bande sollicite toutes les résonances de l'ensemble en même tempsVisserie desserrée, brasures fissurées ou sèches sur composants lourds et fils, connecteurs mal enfichés, câbles non maintenus, particules
Cyclage thermiqueDilatations et contractions répétées entre matériaux de coefficients de dilatation thermique (CTE) différentsFatigue des brasures marginales, vias fissurés, boîtiers de composants défectueux, délaminage, fuites d'étanchéité
Cyclage de puissanceVariation de température interne sur les composants qui dissipent, plus les appels de courant et transitoires de mise sous tensionSemi-conducteurs de puissance marginaux et leur report, brasures faibles sur les chemins à fort courant, défauts de démarrage

Le cyclage thermique et la vibration aléatoire se complètent plus qu'ils ne se remplacent : un défaut sensible à l'un est souvent insensible à l'autre. Beaucoup de programmes appliquent les deux, en séquence ou combinés dans une même enceinte. Le cyclage de puissance est en général appliqué pendant les cycles thermiques, pour que l'unité démarre aux extrêmes chaud et froid.

Fixer les niveaux

Le niveau d'un déverminage est un compromis entre deux façons pour le déverminage lui-même d'échouer : trop bas, les défauts latents passent ; trop haut, des unités saines partent avec une partie de leur vie consommée, ou cassent.

Partir des marges HALT et des retours terrain

Deux sources donnent un point de départ défendable :

  • Les résultats HALT. Le HALT trouve les limites de fonctionnement (l'unité cesse de fonctionner et récupère quand la contrainte est retirée) et les limites de destruction (défaillance permanente). Un déverminage de production se place à l'intérieur des limites de fonctionnement, avec marge, pour pouvoir surveiller l'unité sous contrainte.
  • Les retours terrain et les analyses de défaillance. Chaque défaillance de fabrication confirmée sur le terrain désigne un mécanisme. Une brasure fissurée sur un condensateur lourd oriente vers la vibration. Une fissure de fatigue sur un boîtier à pas fin oriente vers le cyclage thermique.

Paramètres à figer

ContrainteParamètres
Cyclage thermiqueTempératures basse et haute, vitesse de variation mesurée sur le produit (pas l'air de l'enceinte), palier de stabilisation du produit, nombre de cycles, unité alimentée ou non sur chaque segment
Vibration aléatoireNiveau global en Grms, forme du spectre (DSP en g²/Hz par bande de fréquence), durée par axe, nombre d'axes, réponse du montage
Cyclage de puissanceDurées marche et arrêt, nombre de cycles, extrêmes de température auxquels l'unité est mise sous tension

C'est la température du produit qui compte. Posez un thermocouple sur un composant lourd représentatif pendant la mise au point du profil : un gros dissipateur ou un ensemble enrobé suit l'air avec plusieurs minutes de retard, et un palier plus court que ce retard laisse le produit loin de la consigne.

Le niveau vibratoire vu par le produit dépend du montage. Un montage qui résonne dans la bande d'essai amplifie certaines fréquences et en atténue d'autres. Caractérisez le montage avec un accéléromètre avant de figer le profil.

Démontrer que le déverminage ne consomme pas la vie des unités saines

La vérification habituelle est la preuve de déverminage (proof of screen) : appliquer le déverminage complet de nombreuses fois à des unités connues saines, puis confirmer par le test fonctionnel et, si possible, par une inspection ou une coupe micrographique que les unités sont intactes. Si une unité saine survit à de nombreuses répétitions, une seule application consomme une faible fraction de sa vie. Le nombre de répétitions est une décision du programme ; consignez-le avec le profil.

Efficacité du déverminage

Un déverminage est efficace quand les défauts visés cassent et sont détectés. Les deux probabilités se multiplient :

screen-effectiveness.txt
SE = Pp × PdPp: precipitation efficiency, probability that the stress turns a latent defect into a failurePd: detection efficiency, probability that the test detects the failure once it existsExample values: Pp = 0.8, Pd = 0.9  ->  SE = 0.72

L'exemple montre que la détection compte autant que la contrainte. Un défaut qui ne s'ouvre qu'à froid et sous vibration est bien précipité par le déverminage, mais si l'unité n'est testée qu'à l'ambiante après coup, Pd pour ce défaut est proche de zéro.

Deux indicateurs de production disent si le déverminage est bien réglé :

  • Rebut par cycle. Enregistrez le cycle où chaque défaillance apparaît pour la première fois. Si des défaillances surviennent encore au dernier cycle, le déverminage est trop court. Si aucune défaillance n'apparaît après les premiers cycles sur un grand nombre d'unités, les cycles suivants ne font peut-être que consommer de la vie.
  • Échappées. Des défaillances de fabrication trouvées plus tard (au test système ou sur le terrain) sur des unités qui ont passé le déverminage désignent un type de défaut que le déverminage ne précipite pas ou ne détecte pas.

Test fonctionnel avant, pendant et après

Chacun des trois points de test a un rôle différent.

Point de testRôle
Avant le déverminageRéférence. Une unité qui échoue ici portait le défaut avant le déverminage : c'est une échappée du procédé, pas un résultat du déverminage
Pendant le déverminageDétecte les défauts intermittents qui n'existent qu'en température ou sous vibration et disparaissent à l'ambiante
Après le déverminageAcceptation finale à l'ambiante, comparée à la référence

La surveillance pendant le déverminage est ce qui rend les défauts intermittents visibles. Une brasure fissurée peut se refermer quand la carte revient à température ambiante, et le test d'après laisse alors passer une unité qui cassera en service. Gardez une surveillance simple et continue : un heartbeat, un courant d'alimentation, un rebouclage, ou une mesure de résistance sur le chemin critique.

Enregistrer chaque déverminage dans TofuPilot

Un déverminage se traduit directement en procédure TofuPilot. Le test d'avant est une phase de setup, le déverminage est une phase main qui surveille l'unité, le test d'après la suit, et une phase de teardown ramène l'enceinte à l'ambiante et coupe l'unité quel que soit le résultat. L'enceinte, l'alimentation et le moniteur de l'unité sont des plugs.

L'opérateur scanne le numéro de série dans l'étape automatique Identify Unit, donc chaque résultat est enregistré sous ce numéro de série.

procedure.yaml
77 lines
name: ESC Board Thermal Cycling Screenversion: 1.0.0execution:  workers: 1 # les phases partagent l'enceinte et l'alimentation, une à la foisplugs:  - name: Thermal Chamber    key: chamber    python: plugs.chamber:ThermalChamber    scope: station    with:      address: "{config.CHAMBER_ADDRESS}"  - name: Power Supply    key: psu    python: plugs.psu:PowerSupply    with:      address: "{config.PSU_ADDRESS}"  - name: Unit Monitor    key: monitor    python: plugs.monitor:UnitMonitorconfig:  CHAMBER_ADDRESS:    required: true  PSU_ADDRESS:    required: truesetup:  - name: Pre-Screen Functional Test    python: phases.functional:functional_test    measurements:      - name: Idle Current        unit: A        validators:          - operator: ">="            expected_value: 0.05          - operator: "<="            expected_value: 0.15main:  - name: Thermal Cycling    key: thermal_cycling    python: phases.thermal:thermal_cycling    timeout: 12h    with:      low_c: -40      high_c: 85      dwell_min: 20      cycles: 10    measurements:      - name: Cycles Completed        validators:          - operator: ">="            expected_value: 10      - name: Monitor Faults        validators:          - operator: "=="            expected_value: 0      - name: First Fault Cycle        description: 0 when no fault was detected  - name: Post-Screen Functional Test    python: phases.functional:functional_test    depends_on: [thermal_cycling]    measurements:      - name: Idle Current        unit: A        validators:          - operator: ">="            expected_value: 0.05          - operator: "<="            expected_value: 0.15teardown:  - name: Return to Ambient    python: phases.thermal:return_to_ambient

Les températures, le palier et le nombre de cycles ci-dessus sont des valeurs d'exemple. Utilisez celles issues de la mise au point de votre propre profil.

La phase de déverminage porte la boucle et l'attente. Les méthodes de plug restent courtes (une consigne, une lecture), parce qu'un plug exécute un appel de méthode à la fois et qu'un appel long bloquerait tous les autres appelants.

phases/thermal.py
30 lines
import timedef thermal_cycling(chamber, psu, monitor, measurements, log, low_c, high_c, dwell_min, cycles):    faults = 0    first_fault_cycle = 0    psu.output_on()    for cycle in range(1, cycles + 1):        for setpoint in (high_c, low_c):            chamber.set_temperature(setpoint)            deadline = time.monotonic() + dwell_min * 60 + chamber.ramp_seconds(setpoint)            # Surveiller l'unité pendant toute la rampe et le palier : les intermittents n'apparaissent qu'ici            while time.monotonic() < deadline:                if not monitor.heartbeat_ok():                    faults += 1                    if first_fault_cycle == 0:                        first_fault_cycle = cycle                    log.warning(f"Cycle {cycle}, {setpoint} C: heartbeat lost")                time.sleep(1)        log.info(f"Cycle {cycle}/{cycles} complete, faults so far: {faults}")    measurements.cycles_completed = cycles    measurements.monitor_faults = faults    measurements.first_fault_cycle = first_fault_cycledef return_to_ambient(chamber, psu):    psu.output_off()    chamber.set_temperature(25)

Le plug d'enceinte encapsule l'interface du régulateur, qui dépend du fabricant (série, Modbus TCP, commandes texte sur Ethernet). Les phases n'ont besoin que de quelques méthodes :

plugs/chamber.py
class ThermalChamber:    def __init__(self, address):        self.address = address        self.rate_c_per_min = 5.0  # valeur d'exemple, à prendre dans la fiche technique de l'enceinte        self.current_setpoint = 25.0        # Ouvrir ici la connexion au régulateur    def set_temperature(self, celsius):        # Envoyer la consigne au régulateur        self.current_setpoint = celsius    def ramp_seconds(self, celsius):        return abs(celsius - self.current_setpoint) / self.rate_c_per_min * 60    def read_temperature(self):        # Interroger le régulateur, ou un thermocouple produit via une centrale d'acquisition        return self.current_setpoint

Un déverminage en vibration reprend la même structure avec un plug de contrôleur de pot vibrant et une phase par axe, chacune avec sa propre mesure Monitor Faults.

Sur le dashboard, le Pareto des défaillances par mesure montre quel point de test trouve les défauts : une unité qui échoue sur Monitor Faults mais passe le test d'après est précisément l'intermittent pour lequel le déverminage existe. First Fault Cycle donne le rebut par cycle sur l'ensemble des unités. L'historique des runs de chaque numéro de série garde ensemble les résultats d'avant, de pendant et d'après, et c'est à eux qu'un futur retour terrain sera comparé. Pour fixer les limites des valeurs surveillées à partir des données de production, voir comment fixer des limites de mesure à partir des données de production.

Pièges courants

Déverminer sans surveiller. Une unité testée seulement à l'ambiante après le déverminage cache tous les intermittents qui disparaissent à température ambiante. Surveillez pendant la contrainte.

Régler le palier sur la température d'air de l'enceinte. Le produit est en retard sur l'air. Mesurez le produit pendant la mise au point et dimensionnez le palier à partir de cette mesure.

Recopier le profil d'un autre produit. Les niveaux dépendent de la masse, du montage, des matériaux et des marges HALT. Un profil doux pour un ensemble peut être destructif pour un autre.

Pas de preuve de déverminage. Sans déverminages répétés sur des unités saines, rien ne montre que les unités livrées gardent leur durée de vie.

Traiter le rebut de déverminage comme un simple résultat de test. Chaque défaillance en déverminage est un défaut de procédé avec une cause racine sur la ligne. Remontez-la à l'étape de procédé qui l'a produite.

Utiliser le déverminage pour trouver des faiblesses de conception. Une défaillance qui apparaît sur toutes les unités est un problème de conception. Sa place est le HALT et la qualification.

Points clés

  • L'ESS applique une contrainte à 100 % des unités produites pour précipiter les défauts latents de fabrication avant livraison.
  • Le HALT trouve les limites de conception sur prototypes, la qualification démontre la conception, le HASS et l'ESS déverminent les unités livrées.
  • Vibration aléatoire, cyclage thermique et cyclage de puissance précipitent des familles de défauts différentes.
  • Fixez les niveaux à partir des marges HALT et des analyses de défaillances terrain, puis démontrez par des déverminages répétés que les unités saines ne sont pas endommagées.
  • L'efficacité du déverminage est le produit de l'efficacité de précipitation par l'efficacité de détection : surveillez l'unité pendant la contrainte.
  • Dans TofuPilot, le test d'avant, le déverminage surveillé et le test d'après sont les phases d'une même procédure, enregistrées sous le numéro de série de l'unité.

Plus de guides

Mettez ce guide en pratique