Alimenter un CI à partir d'une ligne GPIO


10

J'ai une application de faible puissance qui sera alimentée par une pile bouton Li. J'ai atteint un courant de sommeil satisfaisant avec le MCU que j'ai choisi.

Cependant, l'application ADC IC est une autre affaire: 900µA alors qu'elle est inactive - beaucoup trop pour une application de pile bouton.

J'ai donc pensé pourquoi ne pas isoler l'alimentation de l'ADC lorsqu'il n'est pas utilisé. Deux idées me sont venues à l'esprit: un FET côté haut sur le Vdd de l'ADC ou simplement la connexion de la broche Vdd (ou Vss) de l'ADC à l'une des broches GPIO du MCU (en supposant que le courant se trouve dans les spécifications de source / puits du MCU).

J'ai supposé qu'il y aurait beaucoup d'articles, de notes d'application, etc., discutant de cette idée, mais je n'ai encore rien trouvé en ligne. Avant de commencer à expérimenter, quelqu'un peut-il me diriger vers des articles / notes d'application pertinents en ligne? Ou est-ce juste une mauvaise idée? et si oui pourquoi?

(Oui, sachez que la plupart des MCU ont des ADC intégrés. Pour des raisons qui dépassent le cadre de la requête, je dois vraiment utiliser cet IC ADC externe.)

Merci!


Quel est le modèle de votre ADC?
Nick Alexeev

Réponses:


8

Alimenter un appareil via une broche GPIO est généralement une mauvaise idée. Dans le régime de très faible puissance, vous pourriez peut-être vous en tirer, mais je ne le recommanderais pas à moins d'avoir des contraintes très sévères.

Vous avez déjà noté que vous avez vérifié que les exigences de l'ADC sont inférieures à la capacité d'entraînement de la broche. C'est généralement ce que beaucoup de gens ne prennent pas la peine de vérifier. Si la consommation se situe dans les limites requises, cela peut vous convenir. Cependant, assurez-vous que toutes les exigences de courant transitoire de l'ADC sont également contenues dans la capacité du lecteur GPIO. Vous auriez au moins besoin d'un découplage raisonnablement lourd sur l'alimentation ADC. N'oubliez pas que la sortie GPIO n'est pas une ligne d'alimentation à faible impédance et sera plus lente à répondre aux exigences de courant transitoire.

Deuxièmement, puisque vous utilisez un ADC, et à cela un ADC qui n'est pas intégré dans un uC (ce qui serait ce que vous devriez faire pour une très faible consommation d'énergie), je suppose que vous avez des exigences qui ne sont pas ' t satisfait par l'ADC interne. Le GPIO, n'étant pas une ligne d'alimentation, et plus important encore, étant un GPIO d'un microcontrôleur, sera très certainement contaminé par au moins la fréquence d'horloge de l'uC, ses harmoniques et peut-être des sous-harmoniques. Étant donné que vous allez également entraîner un courant important à travers elle, je ne serais pas surpris que d'autres effets soient également associés. Vous pouvez même finir par voir de petits composants de votre SPI / I2C / ce que vous avez dans la livraison, selon le GPIO que vous utilisez et la force du découplage. Si la résolution ADC et les performances de bruit sont importantes,

Le FET côté haut est une bien meilleure mise et est plus sûr. Vous pouvez également envisager d'utiliser n'importe quel nombre de circuits intégrés liés à l'alimentation qui ont un contrôle d'activation, tels que les LDO et similaires. Un LDO proche de l'alimentation ADC peut également aider à améliorer les performances. Notez cependant que cela signifie que votre ADC devra fonctionner à une tension légèrement inférieure. Cela se produira également avec un simple commutateur à transistor, et avec un FET Rdson faible, l'effet sera certes beaucoup plus faible, mais il existera.

Une chose que vous devez noter est que la connexion des lignes numériques d'un CI non alimenté aux GPIO d'un uC alimenté n'est pas une bonne idée. Vous finirez par alimenter votre ADC via ses E / S numériques et provoquerez un comportement étrange et potentiellement dangereux. Plus précisément, je serais surpris si votre ADC ne répondait pas même lorsqu'il est éteint. Ceci est capable de provoquer une dégradation à long terme et profite en premier lieu de l'économie d'énergie. Afin de bien le désactiver, vous devez utiliser un tampon de traduction de niveau pour chaque ligne numérique entre les deux avec la possibilité de désactiver (tristate) les sorties. Cela peut être fait en utilisant une broche EN, peut-être, ou en utilisant un tampon avec d'autres mécanismes pour désactiver (le SN74LVC1T45 tristate si l'alimentation d'un côté est tirée à la terre, par exemple). L'utilité du schéma dépend de la consommation du tampon dans son état OFF, de la consommation dans son état ON et du rapport cyclique (la fraction de temps pendant laquelle vous souhaitez l'activer) et de la consommation ADC (900uA) qui vous pouvez économiser en faisant cela. Si vous faites très attention, vous pourrez peut-être éviter d'avoir besoin des tampons en tristant les E / S uC qui sont connectées à l'ADC avant de le fermer, et produisant ainsi à peu près le même effet.


Très bonne réponse. Une autre chose à mentionner est que l'ADC voudra probablement un condensateur de découplage à sa broche d'alimentation. Le courant d'appel du condensateur bouleversera probablement la ligne GPIO.
Rocketmagnet

5

Oui, vous pouvez le faire, assurez-vous simplement que toutes les contraintes sont respectées. Je l'ai fait plusieurs fois. L'utilisation d'une sortie de microcontrôleur pour alimenter un petit circuit au lieu de commuter sa puissance peut être un moyen utile d'économiser de l'espace. J'ai utilisé cela dans un projet, par exemple, pour activer un frontal analogique de récepteur à ultrasons uniquement lorsque cela était nécessaire.

Autre que le problème évident du courant limité disponible à partir de la broche de sortie, vous devez regarder le bruit du micro entrer dans le circuit commuté et faire face aux courants transitoires tirés par le circuit. L'ajout d'un capuchon à la masse sur la broche de sortie numérique aide à résoudre les deux problèmes, mais vous devez également tenir compte de la capacité que le micro peut piloter tout en activant ou désactivant la ligne.

Ce n'est pas quelque chose que vous devez faire à la légère, et vous devez réfléchir soigneusement aux problèmes, mais après avoir fait vos devoirs et cela reste logique, allez-y.


5

Oui, vous pouvez le faire. Et beaucoup l'ont fait. Par exemple, Adafruit montre que cela est fait pour un RTC ds1307 sur un adruino, alimenté par deux gpio (comme vcc et gnd) . Cela est également fait pour les écrans LCD Nokia, qui n'ont besoin que de 1 mA pour l'écran (les LED de rétroéclairage sont une histoire différente, mais peuvent toujours être effectuées par gpio).

Une source d'alimentation est une source d'alimentation. Tant que votre consommation de courant est faible (ou vous pouvez tolérer un affaissement de tension en raison de la consommation de courant sur les broches du port du MCU), vous pouvez le faire.

Maintenant, cela dépend de la propreté de la sortie gpio. Certains circuits intégrés sont moins susceptibles de se plaindre d'une ligne légèrement sale que d'autres. Un ADC pourrait être l'un de ceux qui ne sont pas la meilleure option. Une source sale peut affecter la résolution ou la fiabilité de l'ADC. Cela pourrait aggraver le CAN externe par rapport au CAN interne. Comme d'autres l'ont mentionné, un plafond pourrait aider.

Il est peu probable de faire frire l'ADC, alors le meilleur pari? Câblez-le et exécutez-le à travers quelques tests d'étalonnage. Si cela fonctionne, allez-y. Si ce n'est pas le cas, utilisez un transistor npn ou un fet similaire pour couper l'alimentation. Juste une chose. assurez-vous de commuter les broches de données en entrées lorsque le CI est éteint, et attendez après avoir allumé la broche d'alimentation avant de les mettre dans le mode qu'elles doivent être.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.