Comment mettre en place un soft power switch contrôlable par microcontrôleur?
16
Je veux concevoir un circuit de telle sorte que le microcontrôleur puisse basculer une broche GPIO et fermer l'ensemble du système (y compris le microcontrôleur lui-même). Et lorsque l'utilisateur appuie sur un bouton momentané, le courant est rétabli.
Le circuit est normalement hors tension. Lorsque l'utilisateur appuie sur le bouton-poussoir, la batterie est alimentée dans la broche -SHDN, permettant au régulateur et allumant le 3,3 V au microcontrôleur. Le microcontrôleur place ensuite une logique 1 sur le câble POWER ON, maintenant l'alimentation sous tension après que l'utilisateur a relâché le bouton-poussoir. Lorsque le microcontrôleur veut s'arrêter, il met le fil POWER ON à 0.
Il est très important, je pense, de faire rebondir ce commutateur.
Kortuk
2
@Kortuk, bon point. Je supposais que le micro s'allumerait assez rapidement pour qu'il puisse passer outre le commutateur avant le premier rebond, en supposant que pousser la broche vers le haut était la première chose que le micro faisait. Si ce n'est pas le cas, on pourrait ajouter un condensateur sur le fil -SHDN pour créer une constante de temps pour la mise sous tension (bien que cela introduirait également un léger retard dans la désactivation). Le 10 nF doit probablement être laissé pour la suppression du bruit (il a été inclus dans un exemple de fiche technique). Ou on pourrait ajouter un circuit RC supplémentaire pour juste le commutateur.
tcrosley
J'ai déjà vu des rebonds fous sur les commutateurs.
Kortuk
Un problème plus important qui change de rebond est le comportement du processeur lors de la mise hors tension. En particulier, il peut être bon de s'assurer que le processeur ne peut allumer l'alimentation que lorsque son VDD est au-dessus du point où le bon fonctionnement est garanti. J'ai dû modifier certains circuits de mise hors tension automatique qui échouaient parfois en raison du code aléatoire du processeur lorsque le VDD tombait en dessous de la tension de fonctionnement valide. Le code aléatoire pourrait placer la sortie "sous tension" à un niveau élevé, ce qui pourrait à son tour alimenter l'appareil, exécutant le code à une adresse aléatoire.
supercat
1
Une façon de procéder consiste à passer en mode veille profonde sur le microcontrôleur.
De nombreux microcontrôleurs prennent en charge le réveil par une interruption externe, comme un bord sur une broche d'E / S.
alors j'obtiendrais aussi le courant de repos de la puissance d'alimentation du régulateur vers le micro droit
cksa361
Oui. Vous le feriez.
Toby Jaffey
@ cksa361, certains micros sont des nano ou micro amplis. J'utilise le MSP430 et nous le maintenons autour de 3 à 5 microampères.
Kortuk
0
Oui, c'est certainement possible, mais la façon dont vous y parvenez dépend du type de charge que vous allez allumer et éteindre.
C'est probablement aussi simple que d'utiliser un relais connecté au PIN de sortie du microcontrôleur (via un transistor et une diode de protection), et un interrupteur à bouton-poussoir connecté à une broche configurée en entrée.
Voici un exemple de schéma de circuit simple:
Lorsque vous utilisez un bouton-poussoir momentané, faites attention au rebond , faites cependant, vous devrez implémenter un retard dans votre code de microcontrôleur pour vous assurer de vérifier l'état du bouton-poussoir sur une période de temps (par exemple 1 ms) avant de commuter votre relais revenir sur. Si vous ne le faites pas, le microcontrôleur peut capter plusieurs signaux et commuter votre relais plusieurs fois en très peu de temps, et vous constaterez que votre bouton fonctionne par intermittence.
MISE À JOUR
Je viens de voir votre montage sur la mise hors tension du microcontrôleur également. Pouvez-vous donner plus d'informations sur ce que vous essayez réellement de faire? Il est difficile de répondre à votre question sans comprendre l'ensemble du système.
Si vous souhaitez également arrêter le microcontrôleur, vous aurez besoin d'un moyen de remettre le microcontrôleur sous tension. Vous pourriez peut-être utiliser le relais pour alimenter tout, y compris le microcontrôleur, de cette façon le microcontrôleur peut s'éteindre, mais pas se rallumer. Ensuite, votre bouton-poussoir pourrait être connecté à travers votre commutateur de relais, pour le court-circuiter efficacement en lui donnant suffisamment de temps pour allumer et maintenir le relais lui-même ouvert.
Une façon de procéder consiste à passer en mode veille profonde sur le microcontrôleur.
De nombreux microcontrôleurs prennent en charge le réveil par une interruption externe, comme un bord sur une broche d'E / S.
la source
Oui, c'est certainement possible, mais la façon dont vous y parvenez dépend du type de charge que vous allez allumer et éteindre.
C'est probablement aussi simple que d'utiliser un relais connecté au PIN de sortie du microcontrôleur (via un transistor et une diode de protection), et un interrupteur à bouton-poussoir connecté à une broche configurée en entrée.
Voici un exemple de schéma de circuit simple:
Lorsque vous utilisez un bouton-poussoir momentané, faites attention au rebond , faites cependant, vous devrez implémenter un retard dans votre code de microcontrôleur pour vous assurer de vérifier l'état du bouton-poussoir sur une période de temps (par exemple 1 ms) avant de commuter votre relais revenir sur. Si vous ne le faites pas, le microcontrôleur peut capter plusieurs signaux et commuter votre relais plusieurs fois en très peu de temps, et vous constaterez que votre bouton fonctionne par intermittence.
MISE À JOUR Je viens de voir votre montage sur la mise hors tension du microcontrôleur également. Pouvez-vous donner plus d'informations sur ce que vous essayez réellement de faire? Il est difficile de répondre à votre question sans comprendre l'ensemble du système.
Si vous souhaitez également arrêter le microcontrôleur, vous aurez besoin d'un moyen de remettre le microcontrôleur sous tension. Vous pourriez peut-être utiliser le relais pour alimenter tout, y compris le microcontrôleur, de cette façon le microcontrôleur peut s'éteindre, mais pas se rallumer. Ensuite, votre bouton-poussoir pourrait être connecté à travers votre commutateur de relais, pour le court-circuiter efficacement en lui donnant suffisamment de temps pour allumer et maintenir le relais lui-même ouvert.
la source