Le retour des petits circuits - 6e épisode
Les microcontrôleurs, qui toute leur vie sont au régime 24 /24 365/365, peuvent parfois - oui c'est exceptionnel, mais très gênant quand ça arrive - perdre les pédales, se mettre en rideau et rester indéfiniment en catalepsie. Plus rien ne fonctionne, et même la réinitialisation n'y change rien. Il faut couper le courant un instant pour qu'ils redémarrent.
D'après un idée de Wolfgang Borst (Allemagne)
Tout microcontrôleur moderne a son chien de garde intégré. Ce paisible animal empêche le microcontrôleur (que nous appellerons µC) de rester coincé dans une boucle sans fin, en raison d'une erreur de programmation ou de conditions de fonctionnement imprévues qui l’empêchent de réagir aux sollicitations externes ou internes. Le principe est simple. C’est celui d'une minuterie, remise à zéro régulièrement par le µC lui-même au moyen de commandes appropriées et dans un délai déterminé. Si cette remise à zéro n’intervient pas, une réinitialisation du µC est forcée à la fin de ce délai. Ainsi, le µC qui a perdu les pédales va redémarrer et tout rentre dans l’ordre.
Le composant actif est ici le bon vieux NE555, monté en multivibrateur astable. Les impulsions de µC doivent constamment décharger C5 avant que la tension sur la broche 6 n'atteigne le seuil (2/3 de la tension d’alimentation) d’alerte. Quand cela se produit, la sortie broche 3 passe au niveau bas et T1 coupe la tension d'alimentation du µC et de tout son circuit. Même sans radiateur, T1 supporte facilement une intensité d’1 A.
Comme la tension d’alimentation du circuit intégré NE555 doit être de 5 V au moins, on lui préfèrera la version CMOS du circuit, plus facile à utiliser avec des microcontrôleurs alimentés sous 3,3 V. L’intensité du courant consommé est moindre. Pour T1, il faudra un MOSFET de puissance qui se contentera d’une tension de commande plus faible. Pour en réduire le nombre de composants et donc l’encombrement, on pourrait modifier le circuit en utilisant le double temporisateur 556.
Tout microcontrôleur moderne a son chien de garde intégré. Ce paisible animal empêche le microcontrôleur (que nous appellerons µC) de rester coincé dans une boucle sans fin, en raison d'une erreur de programmation ou de conditions de fonctionnement imprévues qui l’empêchent de réagir aux sollicitations externes ou internes. Le principe est simple. C’est celui d'une minuterie, remise à zéro régulièrement par le µC lui-même au moyen de commandes appropriées et dans un délai déterminé. Si cette remise à zéro n’intervient pas, une réinitialisation du µC est forcée à la fin de ce délai. Ainsi, le µC qui a perdu les pédales va redémarrer et tout rentre dans l’ordre.
Tout, vraiment tout ?
Non, hélas, car dans certains cas, rares, très rares, avec les circuits intégrés CMOS – catégorie à laquelle appartiennent les µC – il peut se produire un verrouillage (latch-up), ce qui équivaut à une paralysie totale. Vraiment plus rien ne fonctionne, même la remise à zéro n'a aucun effet sur le µC. Pour se prémunir contre ce péril rare mais grave, on fait appel à un chien de garde externe au µC. La justification de cette mesure se trouve dans 1ère loi de Murphy que nul électronicien sensé n'est censé ignorer.Un schéma qui a du chien
Notre chien de garde est un temporisateur NE555. Il a de grosses pattes, c’est moins un chihuahua qu’un dogue danois. Si les impulsions d’initialisation venant du µC n’arrivent plus, le chien et ses MOSFET coupent purement et simplement la tension d'alimentation pendant 5 secondes environ. Après ça, même le plus givré des µC redémarre. Cela marchera toujours, sauf si le µC est défectueux. Avec les valeurs spécifiées pour R2, R3 et C5, le délai est d'environ 10 s. Le rapport cyclique des impulsions de réinitialisation doit être inférieur à 50%. Une impulsion (positive) de quelques µs à l'entrée de déclenchement suffit pour décharger le condensateur C5 à travers T2.Le composant actif est ici le bon vieux NE555, monté en multivibrateur astable. Les impulsions de µC doivent constamment décharger C5 avant que la tension sur la broche 6 n'atteigne le seuil (2/3 de la tension d’alimentation) d’alerte. Quand cela se produit, la sortie broche 3 passe au niveau bas et T1 coupe la tension d'alimentation du µC et de tout son circuit. Même sans radiateur, T1 supporte facilement une intensité d’1 A.
Comme la tension d’alimentation du circuit intégré NE555 doit être de 5 V au moins, on lui préfèrera la version CMOS du circuit, plus facile à utiliser avec des microcontrôleurs alimentés sous 3,3 V. L’intensité du courant consommé est moindre. Pour T1, il faudra un MOSFET de puissance qui se contentera d’une tension de commande plus faible. Pour en réduire le nombre de composants et donc l’encombrement, on pourrait modifier le circuit en utilisant le double temporisateur 556.