Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Qu'est-ce que la réinitialisation de Brown Out dans les microcontrôleurs ? Comment éviter les fausses mises hors tension

Brown Out Reset est une fonction importante pour augmenter la fiabilité d'un microcontrôleur après le démarrage. Normalement utilisé pour résoudre les problèmes d'alimentation, cet article montre comment Brown Out Reset peut empêcher un autre problème.

Examen de Brown Out Reset

Un "brown out" d'un microcontrôleur est une réduction partielle et temporaire de la tension d'alimentation en dessous du niveau requis pour un fonctionnement fiable. De nombreux microcontrôleurs ont un circuit de protection qui détecte lorsque la tension d'alimentation descend en dessous de ce niveau et met l'appareil dans un état de réinitialisation pour assurer un démarrage correct lorsque le courant revient. Cette action est appelée « Brown Out Reset » ou BOR. Une fonctionnalité similaire est appelée Low Voltage Detect (LVD) qui est plus complexe et ajoute la détection de plusieurs niveaux de tension et peut produire une interruption avant qu'une réinitialisation ne soit déclenchée.

Le BOR est souvent activé par un bit dans un registre de contrôle. En règle générale, un bit d'état est défini lorsque le BOR provoque une réinitialisation. Ce bit d'état survit à la réinitialisation (si l'alimentation n'est pas trop faible !) et permet au programme de détecter le problème et d'effectuer une récupération supplémentaire ou de consigner l'événement.

Que se passe-t-il si le BOR est désactivé ? Voici une représentation d'une tension d'alimentation en baisse constante. Peut-être s'agit-il d'une alimentation électrique qui se détériore ou d'une batterie qui se décharge.

V1 est la tension d'alimentation normale. V2 est le point où le microcontrôleur peut ne pas fonctionner de manière fiable. Je montre V3 comme un point où le fonctionnement s'arrête complètement. Entre V2 et V3 se trouve une « zone de danger » où les choses peuvent mal tourner et le fonctionnement n'est pas fiable. L'appareil pourrait fonctionner correctement pendant des années pendant que l'alimentation électrique entre et sort de la zone dangereuse, puis, bam !, il y a une panne. Le niveau BOR est réglé au-dessus de V2 et remplace la zone dangereuse par une réinitialisation de l'appareil. La réinitialisation n'est pas bonne mais (généralement) meilleure qu'incertaine.

Ensuite, je raconte une situation où l'alimentation fonctionnait normalement mais BOR a été utilisé pour résoudre un problème différent.

Trouver une autre utilisation pour la réinitialisation de Brown Out (à la dure)

J'ai conçu un circuit contenant un microcontrôleur PIC et 18 régulateurs de tension dans un module contrôlant l'alimentation +5V de 18 capteurs de lumière. Douze modules contrôlaient les 204 capteurs d'un réseau. Les modules font partie d'un système d'optique adaptative d'un grand télescope astronomique sur le Mauna Kea à Hawaï. Voici l'intérieur d'un module.

Photos avec l'aimable autorisation du télescope Subaru

Le microcontrôleur est près du centre de la carte et les 18 régulateurs de tension linéaires sont montés sur les parois du boîtier. Les modules et les capteurs sont montés sur des plaques refroidies à l'eau pour éloigner la chaleur du banc optique qui se trouve au-dessus du réseau de capteurs. Les impulsions des capteurs de lumière entrent dans le module où elles sont converties en signaux différentiels RS-485 et sorties sur le connecteur en haut au milieu de l'image. De plus, il y a des signaux de contrôle RS-485 qui entrent dans le module. Tous les signaux RS-485 se connectent à des circuits dans un châssis à environ 10 mètres. Un point important est que tous les circuits d'un module fonctionnent avec la même alimentation +5 V.


Voici un gros plan du microcontrôleur et des pilotes et récepteurs de la ligne RS-485 qui sont au cœur du problème. La prise modulaire noire est une interface série asynchrone qui ajoute deux autres signaux d'E/S RS-485.

Les modules ont été soumis à des tests approfondis sur banc. Pas de problème! Ils ont passé des mois à tester le système en laboratoire. Parfait! Le grand événement était le premier test au télescope. Échouer! La communication a été perdue avec environ la moitié des modules lorsque l'alimentation a été coupée puis remise sous tension. J'ai branché le débogueur et j'ai trouvé le microcontrôleur en cours d'exécution et en train d'exécuter du code, mais il y avait des variables corrompues et l'interface série ne fonctionnait pas. Très étrange.

Tout d'abord, je tiens à dire que le débogage au milieu de la nuit à une altitude de 13 589 pieds (4 138 mètres) avec une température de l'air de 40 ° F (4 ° C) n'est pas amusant. Cependant, avançons. Voici un schéma montrant le problème.

Sur le côté droit se trouve le module avec les récepteurs de ligne RS-485 connectés au microcontrôleur et l'alimentation +5V. Sur le côté gauche se trouvent les pilotes de ligne à l'autre extrémité du câble qui sont toujours sous tension. En fait, il y a des pilotes et des récepteurs qui vont dans les deux sens mais je simplifie. Lorsque l'alimentation du module (VCC) était coupée, les pilotes et récepteurs de la ligne distante étaient toujours allumés (VDD). Les signaux agissaient comme des sources d'alimentation et se frayaient un chemin à travers les dispositifs d'interface du module et directement à l'alimentation +5 V ou à travers les circuits de protection ESD sur les broches du microcontrôleur. Il y avait suffisamment de puissance pour empêcher le microcontrôleur de s'éteindre complètement et l'appareil se trouvait dans la zone de danger.

Lorsque le module a été mis sous tension, le microcontrôleur n'a pas démarré avec une séquence de réinitialisation de mise sous tension normale. Il a commencé à fonctionner mais avec des problèmes. Pourquoi cela ne s'est-il pas manifesté lors des tests précédents ? Vous vous souvenez des plaques refroidies à l'eau ? Le liquide de refroidissement du télescope était un peu plus froid que celui du laboratoire. Ma théorie est que la température plus basse était juste suffisante pour exposer le problème dans certains des modules.

La solution était facile. J'ai ajouté une instruction dans le code pour activer BOR et le problème a été résolu. Soit dit en passant, il m'a fallu beaucoup plus de temps pour rédiger le rapport et convaincre le chef de projet que tout allait bien qu'il n'en a fallu pour résoudre le problème.

Fausse mise hors tension

Voici un schéma montrant le problème général.

Lorsque l'alimentation est coupée, la tension ne descend pas complètement. Au lieu de cela, d'autres sources d'alimentation maintiennent la tension d'alimentation dans la zone dangereuse. Une description de cette tension est "False Power". Il n'y a pas de BOR pour détecter cette condition et provoquer une réinitialisation. L'appareil peut ne pas suivre la séquence de mise sous tension normale lors de la remise sous tension, car le circuit de réinitialisation de la mise sous tension peut ne pas être déclenché. Le fonctionnement ultérieur est incertain car l'alimentation est passée en dessous du minimum et il n'y a pas de réinitialisation.

Dans mon cas, le microcontrôleur était un Microchip PIC16F877-20I/L. Cette pièce est la version industrielle avec une plage de température de fonctionnement de -40°C à +85°C. Avec une horloge de 16 MHz, la plage d'alimentation est de +4,0V à +5,5V. La tension de fonctionnement à l'intérieur du module (V1) était un solide +5V. La tension de fausse puissance au microcontrôleur (V2) était d'environ +1,5 V lors du fonctionnement au télescope . Je ne l'ai pas mesuré en labo car il n'y avait pas de problème et je ne savais pas le vérifier. De plus, je n'ai jamais eu l'occasion de le vérifier avec des conditions de laboratoire car le système n'est jamais descendu du télescope.

Il existe deux autres spécifications pertinentes. La « tension de rétention des données RAM » (\[V_{DR}\]) est de +1,5 V, « typique ”. La « tension de démarrage VDD » (\[V_{POR}\]) pour assurer une réinitialisation interne de la mise sous tension est de 0 V, « typique ”. Le fait de plier tout cela me dit que l'appareil était bien dans la zone de danger. Aucune réinitialisation à la mise sous tension ne pouvait être attendue car la tension était bien supérieure à \[V_{POR}\]. De plus, il n'y avait aucune attente que le False Power maintienne le périphérique en vie puisque False Power était à la tension de rétention de la RAM (\[V_{DR}\]). Qui sait ce que faisait le reste de l'appareil ?

Pourquoi l'activation du BOR a-t-elle résolu le problème ? La spécification du déclencheur Brown Out Reset (\[V_{BOR}\]) est une plage de +3,7V à +4,35V avec une valeur typique de +4,0V. Le niveau de fausse puissance est bien inférieur à la tension de déclenchement du BOR. Problème résolu. Cependant, il reste le mystère de savoir pourquoi les microcontrôleurs ont fonctionné en laboratoire et fonctionnaient normalement avec de très nombreux cycles d'alimentation.

Conclusion

J'ai trouvé une description de cette situation à la fin d'une note d'application de Microchip (AN607) qui l'appelle un "False Power-Down". Je ne l'ai trouvé documenté nulle part ailleurs.

Le Faux Pouvoir peut provenir de sources telles que :

Il semble qu'une fausse source d'alimentation suffisamment élevée appliquée directement à une broche GPIO et entrant dans l'appareil via le circuit de protection ESD puisse causer des problèmes, même lorsque BOR est activé . De plus, pour les conceptions à très faible consommation d'énergie, il y a lieu de ne pas utiliser du tout le BOR car il consomme une quantité d'énergie importante par rapport aux modes de veille profonde de certains appareils. Ma conclusion est que BOR et son successeur, LVD, deviennent de plus en plus compliqués et False Power donne aux concepteurs une chose de plus à considérer dans cette partie délicate de leurs conceptions.


Technologie industrielle

  1. Qu'est-ce qu'une clé de sécurité réseau ? Comment le trouver ?
  2. Qu'est-ce que les appels Wi-Fi ? Comment ça marche ?
  3. Qu'est-ce que la 6G et quelle sera sa vitesse ?
  4. Comment l'énergie sans fil transforme la fabrication
  5. Test de décharge partielle :qu'est-ce que c'est et comment ça marche
  6. Qu'est-ce que la cavitation de la pompe et comment l'éviter ?
  7. Qu'est-ce que la découpe plasma et comment fonctionne la découpe plasma ?
  8. Qu'est-ce que le brasage au cuivre et comment le faire ?
  9. Qu'est-ce que la porosité du soudage et comment la prévenir ?