Guide ultime pour changer de rebond (partie 2)

Blog

MaisonMaison / Blog / Guide ultime pour changer de rebond (partie 2)

Oct 01, 2023

Guide ultime pour changer de rebond (partie 2)

Comme nous en avons discuté dans la partie 1 de cette mini-série, lorsque nous actionnons un interrupteur, il peut

Comme nous en avons discuté dans la partie 1 de cette mini-série, lorsque nous actionnons un interrupteur, il peut rebondir plusieurs fois avant de s'immobiliser dans son nouvel état (voir aussi mes colonnes Types d'interrupteurs et Terminologie des interrupteurs). Cela est dû au fait que les contacts des interrupteurs sont généralement constitués de métaux élastiques. Lorsqu'ils frappent ensemble, leur élan et leur élasticité peuvent les faire rebondir une ou plusieurs fois avant d'établir un contact stable. Selon la personne à qui vous parlez, cela peut être appelé "rebond de commutation", "rebond de contact" ou "bavardage".

Le résultat est un courant électrique pulsé rapidement au lieu d'une transition nette de zéro à plein courant lorsque l'interrupteur est activé, et vice versa lorsque l'interrupteur est désactivé. Le rebond de l'interrupteur n'est pas un problème dans certaines applications comme les circuits d'alimentation (par exemple, un interrupteur mural), mais il peut causer des problèmes dans les circuits logiques et les systèmes basés sur des microcontrôleurs qui répondent assez rapidement pour interpréter les impulsions OnOff comme un flux de données. .

Rebondissant Rebondissant

Le rebond des interrupteurs se produit sur tous les interrupteurs que nous utilisons couramment, tels que les interrupteurs à bascule, les interrupteurs à bascule et les interrupteurs à bouton-poussoir (paradoxalement, les seuls interrupteurs qui ne sont pas affectés sont ceux que nous utilisons rarement, comme les interrupteurs à bascule au mercure, par exemple). Cela se produit également à la fois lorsque l'interrupteur est fermé et lorsqu'il se rouvre. Commençons par un interrupteur à bascule SPST-NO (unipolaire, unidirectionnel, normalement ouvert) comme illustré ci-dessous.

Rebond de l'interrupteur sur un interrupteur à bascule SPST-NO (Source de l'image : Max Maxfield)

Parfois, les rebonds se situent entre +ve et 0V. Appelons ces rebonds "propres".

Parfois, le signal ne fait pas la transition tout le long, mais oscille à la place entre la valeur initiale et une tension intermédiaire. Bien que ce ne soit pas la terminologie officielle, appelons ces rebonds "sales". Et parfois, nous avons un mélange aléatoire de types de rebonds.

La seule constante est le changement, car chaque commutateur se comporte de manière unique. Pire encore, comme indiqué dans ma chronique précédente, "le même interrupteur peut varier ses caractéristiques en fonction de la température, de l'humidité, de l'heure de la journée, de la direction du vent dominant et de la couleur de votre pantalon de golf en polyester à carreaux".

Ensuite, considérons un interrupteur à bascule SPDT (unipolaire, bidirectionnel) comme illustré ci-dessous (nous ne montrerons que des rebonds nets par souci de simplicité).

Rebond de l'interrupteur sur un interrupteur à bascule SPDT (Source de l'image : Max Maxfield)

Notez que nous supposons que notre commutateur est de la catégorie break-before-make (BBM), également connue sous le nom de "commutateur sans court-circuit", qui est la saveur la plus courante. Comme indiqué dans ma colonne Switch Terminology, cela signifie que le contact mobile rompt la connexion existante avec le lancer actuel avant d'établir une nouvelle connexion avec l'autre lancer.

Dans le cas d'un rebond de commutateur, cela signifie que nous voyons d'abord un rebond sur le terminal qui se brise (ouverture), suivi d'un court délai, suivi d'un rebond sur le terminal qui se ferme (fermeture).

En ce qui concerne le circuit illustré ci-dessus, et en supposant que la logique 0 = 0V et la logique 1 = +ve, cela signifie que les bornes NO et NC sont 10 et 01 lorsque le commutateur est dans un état stable, et (potentiellement) 11 dans le cas de rebonds "propres" lors de la transition entre les états, mais jamais 00. Est-ce significatif ? Eh bien, cela pourrait l'être si vous décidez d'effectuer un anti-rebond dans le logiciel sur un commutateur SPDT (ce qui est peu probable, franchement, car il utiliserait deux des broches de votre microcontrôleur par commutateur, mais nous vivons dans un monde incertain, et tout est possible).

Bruyant Bruyant

Dans un avenir pas si lointain, nous allons discuter de différentes techniques pour traiter le rebond du commutateur. Une chose que nous devons garder à l'esprit est le potentiel de bruit, qui peut provenir de diverses sources, y compris la diaphonie (provenant d'autres câbles du système), les EMI (interférences électromagnétiques) des courants dans les câbles, les RFI (interférences radiofréquence) des systèmes radio qui émettent des signaux, ESD (décharge électrostatique) de, par exemple, quelqu'un touchant le système (voir aussi Adventures in ESD), et des causes naturelles telles que les interférences électrostatiques et la foudre.

La solution de rebond du commutateur ne doit pas être dupe du bruit (Source de l'image : Max Maxfield)

À moins que les concepteurs n'aient tenu compte de cela, les signaux de réinitialisation sont particulièrement sujets aux problèmes car ils ont tendance à serpenter partout. Dans le cas d'un système basé sur Arduino, par exemple, le signal de réinitialisation sur la carte mère est réparti sur toutes les cartes filles (boucliers).

En passant, si vous voulez en savoir plus sur RFI, EMI et EMC (compatibilité électromagnétique), vous voudrez peut-être contacter Ken Wyatt de Wyatt Technical Services et consulter ses offres de séminaires et de présentations, mais nous nous écartons…

Il est important que, quelle que soit la technique que nous utilisons pour traiter les rebonds de commutation (prétraitement du signal dans le matériel ou post-traitement dans le logiciel), cette technique ne soit pas trompée par le « pépin » ou le « pic » de bruit occasionnel. Il serait regrettable qu'une séquence "d'autodestruction" soit déclenchée par quelqu'un qui allume un aspirateur, par exemple (du bon côté, au moins la fin du monde serait accompagnée de tapis propres).

Données empiriques

Combien de temps le rebond du commutateur persiste-t-il ? Quelle est la largeur des impulsions de rebond individuelles des commutateurs ? Combien d'impulsions pouvons-nous nous attendre à voir ? Eh bien, je suis content que vous ayez demandé. Les données les plus fiables que j'ai proviennent de deux de mes copains : Jack Ganssle, qui est une légende dans le continuum espace-temps des systèmes embarqués, et David Ashton, qui vient de Down Under, et qui est une légende dans son propre continuum de l'heure du déjeuner.

Il y a bien longtemps, dans la nuit des temps, Jack a créé son propre Guide de l'anti-rebond. Quand j'ai écrit la partie 1 de cette mini-série, j'ai dit des choses comme "le problème de rebond du commutateur est endémique" et "il y a maintenant tellement de solutions dispersées sur Internet - où la plupart des jeunes ingénieurs vont assouvir leur soif de connaissances - que cela vous fait tourner la tête. Du côté positif, certaines de ces offres fonctionnent réellement ; du côté négatif, leur fonctionnement peut être dû au hasard plutôt qu'à la conception.

Heureusement, Jack est du même avis. Dans son guide, il dit : « Naviguez sur le net pour essayer diverses approches de l'anti-rebond. La plupart sont plutôt nuls. Peu sont basés sur des paramètres de rebond expérimentaux.

Donc, ce que Jack a fait, c'est de prendre 18 types de commutateurs différents, de construire un banc de test similaire à nos circuits ci-dessus avec une alimentation de 5 V et une résistance de rappel de 1 kΩ, puis d'appuyer sur chaque commutateur 300 fois, en enregistrant la quantité minimale et maximale de rebondissant à l'ouverture et à la fermeture des contacts. Après avoir rejeté deux valeurs aberrantes, les commutateurs restants ont présenté une moyenne de 1 557 usec de rebond et un maximum de 6 200 usec de rebond. Jack note également que la largeur des impulsions de rebond individuelles varie entre moins de 1 usec et des centaines d'usecs.

Cela rejoint vaguement ce que David a trouvé dans deux colonnes qu'il a écrites : Switch Bouncing Around et SPDT Switch Debounce with an SR Latch. Dans le cas de David, il m'a dit que les largeurs des pointes individuelles qu'il a observées variaient "entre quelques ns et environ 100 usec".

Pendant que nous y sommes, nous devrions probablement noter que la largeur d'une impulsion ESD peut varier entre quelques nsec et plus de 100 nsec, ce qui signifie qu'une impulsion ESD pourrait facilement être confondue avec un événement de rebond de commutateur individuel.

Et à combien de rebonds peut-on s'attendre ? Eh bien, selon The Art of Electronics par Horowitz & Hill (page 506 de la deuxième édition), "Lorsque l'interrupteur est fermé, les deux contacts se séparent et se reconnectent, généralement 10 à 100 fois sur une période d'environ 1 msec." Cela vous montre à quel point ce domaine est indéfini, car ce livre est considéré comme la "Bible de l'électronique" par de nombreux ingénieurs, mais leur valeur de 1 msec (qui est celle qu'on m'a dit en tant que jeune ingénieur) est inférieure à celle de Jack conclusions moyennes, sans parler de ses conclusions maximales.

Une dernière chose à laquelle nous devons faire attention lorsqu'il s'agit d'aborder le rebond du commutateur est le profil global des impulsions. Je pense que la façon dont la plupart d'entre nous s'attendent à les voir correspondrait à la capture d'écran suivante de la deuxième colonne de David.

Formes d'onde pour un commutateur SPDT alimentant un verrou SR (Source de l'image : David Ashton).

Dans cet exemple, nous désactivons un interrupteur SPDT, donc la première chose que nous voyons est le terminal NC passant de 0 à 1 avec quelques rebonds lorsqu'il se casse (s'ouvre). Après un délai, la borne NO commence sa transition de 1 à 0 avec quelques rebondissements au fur et à mesure qu'elle se ferme. C'est le front descendant initial sur la borne NO qui fait basculer le verrou SR, comme en témoignent ses sorties QA et QB.

Le but de tout cela est que le rebond de l'interrupteur est rassemblé près des transitions initiales sur les bornes NC et NO, ce qui ne semble pas si surprenant. Mais les choses ne sont pas toujours aussi nettes et ordonnées. Dans l'article de Jack, par exemple, il note ce qui suit à propos de ses commutateurs O et Q (les schémas ci-dessous ne sont que mes interprétations bon marché et joyeuses - vous pouvez voir les originaux dans l'article de Jack).

Modèles de rebond observés pour les commutateurs O et Q de Jack (Source de l'image : Max Maxfield de l'original de Jack)

Comme le dit Jack dans son article : "O est un micro-commutateur très agréable et de haute qualité qui n'a jamais montré plus de 1,18 ms de rebond. Mais en creusant plus profondément, j'ai trouvé qu'il générait généralement un train d'impulsions garanti pour faire des ravages avec un simple code de filtre. -Hachage de vitesse, juste difficiles à éliminer les uns et les zéros solides. Une action a donné 7 niveaux de zéros nets allant de 12 à 86 µsec, et 7 niveaux logiques variant de 6 à 95 µsec. Facile à filtrer ? Bien sûr. Mais pas par code qui recherche juste quelques lectures identiques."

Dans le cas du commutateur Q, Jack dit : "Q, lorsqu'il est relâché, monte à 480 usec avant de générer 840 usec de hachage - un moyen sûr de rendre fou un système d'interruption s'il est mal conçu."

La prochaine fois…

Eh bien, je pense que nous avons correctement planté le décor ; maintenant nous sommes prêts à faire du rock and roll. Dans ma prochaine chronique, nous nous pencherons sur les diverses techniques matérielles et logicielles que nous pouvons utiliser pour convertir nos signaux rebondissants coquins en équivalents nets et propres dont nos mères seraient fières.