Considérations lors de l'utilisation de résistances internes pull-up / down


11

Je travaille avec des micro-contrôleurs STM32. Ces micro-contrôleurs ont la possibilité de définir la broche d'entrée comme pull up ou pull down:

entrez la description de l'image ici

Auparavant, j'avais l'habitude de donner une résistance de pull up ou pull down externe là où c'était nécessaire, mais maintenant je me demande si je peux supprimer les composants externes et utiliser la fonction pull down du micro-contrôleur lui-même.

Est-ce que ce sera une bonne chose à faire?

Existe-t-il un cas d'utilisation où je devrais prendre des précautions supplémentaires ou ne pas utiliser cette fonctionnalité du tout?


2
J'utilise le pu / pd interne chaque fois que je le peux et je n'ai eu aucun problème. Donc, sauf si vous avez une raison valable de ne pas utiliser le pull-up intégré, vous pouvez simplement les utiliser. Une raison pour ne pas compter sur le pu / pd interne pourrait être que l'entrée a un long fil connecté qui pourrait se coupler à d'autres lignes provoquant un comportement inattendu. Le pu / pd interne est assez faible (pour économiser le courant) et est plus facilement perturbé que par exemple une résistance de 10 kohms.
Bimpelrekkie

22
Une petite remarque: il peut ne pas fonctionner comme un pullup pendant la réinitialisation du microcontrôleur. Donc, s'il y a des circuits externes selon qu'ils sont abaissés tout le temps, vous pouvez avoir un problème au démarrage. Si c'est juste lu par le micro, ce n'est pas un problème.
pjc50

1
@ pjc50 vous auriez dû poster ça comme réponse, je n'ai remarqué votre commentaire qu'après avoir posté ma réponse.
Jason S

1
Si vous ne pouvez pas faire confiance à la résistance de rappel d'un microcontrôleur, vous ne pouvez faire confiance à rien dans ce contrôleur. Ce que vous voulez savoir, c'est si c'est utile
Passerby

1
@Whiskeyjack: vous devriez envisager de modifier le titre des questions. Peut-être "Considérations lors de l'utilisation de résistances internes pull-up / down" ou quelque chose comme ça.
Rev1.0

Réponses:


15

Oui ... Vous pouvez ... C'est une fonctionnalité éprouvée. Si vous voyez la structure des broches dans le manuel de référence STM32, vous pouvez voir qu'elle a des composants requis -

Structure des broches STM32

Si cela répond à vos besoins, vous pouvez supprimer les composants externes.

Modifier N'oubliez pas qu'à la mise sous tension, les broches seront tristatisées. Si cela n'entrave pas votre candidature, c'est bien! C'est pourquoi il est recommandé de commencer d'abord la section IO, puis de poursuivre avec d'autres périphériques.


1
D'accord, mais toujours pendant la réinitialisation, il est tristaté, non?
seetharaman

1
J'ai répondu à la question "Dois-je faire confiance à la fonction déroulante du micro-contrôleur?" et maintenant la question elle-même a changé: - / Et avec une nouvelle question, la réponse de Bence Kaulics est plus précise!
Swanand

Question: l'utilisation d'un tas de résistances internes pull-up / down provoquera-t-elle un échauffement de la puce?
Caleb Reister

16

En général, il est parfaitement possible d'utiliser les résistances internes pull-up ou pull-down.

L'inconvénient est que vous pouvez oublier de l'activer à partir d'un logiciel, ce qui peut provoquer un petit mal de tête. Les tractions externes seront toujours là. N'oubliez donc pas d'activer les internes et d'économiser beaucoup de PCB en réduisant le nombre de composants.

30 kΩ50 kΩ

entrez la description de l'image ici

Vous devez toujours vérifier si votre application a besoin d'une certaine valeur de résistance pull-up ou pull-down avant d'utiliser les résistances internes. Par exemple , ne les utilisez pas avec I 2 C , car ces valeurs seront trop élevées pour cela.


12

À moins que les résistances pullup et pulldown ne soient actives pendant la réinitialisation (je suppose qu'elles ne le sont pas, mais je ne connais pas les périphériques STM32), il y a un état de broche non défini lors de la réinitialisation. C'est une des principales raisons d'utiliser des résistances de pullup ou de pull-down externes.


10

Comme d'autres l'ont dit, les tractions et les descentes internes sont bien aussi longtemps que:

  • vous vous souvenez de les configurer,
  • ils sont assez forts,
  • vous ne finissez pas par les combattre avec une traction externe, et
  • la tension au démarrage et à la réinitialisation est sans importance.

Sur le dernier point, rappelez-vous que les entrées CMOS au niveau de la moyenne tension peuvent provoquer un courant de transfert important sur leur paire d'entrée. Cela peut provoquer un problème dans un système à faible consommation d'énergie lors du démarrage.

En général, les résistances de traction externes produiront une conception plus conservatrice.


1
En ce qui concerne les courants de traversée, il pourrait être utile de mettre les choses en perspective en notant que pour la plupart des microcontrôleurs, les niveaux sont généralement bien en dessous de tout ce qui pourrait endommager un appareil, mais ils peuvent être des ordres de grandeur supérieurs au meilleur d'un appareil. cas courants de sommeil. Dans certains cas, ces courants n'ont pas d'importance; dans d'autres, ils sont un tueur absolu.
supercat

1
+1 pour "la tension au démarrage et à la réinitialisation est sans importance". Vous devez garantir que le reste de votre circuit est dans un état sûr et au repos pendant le démarrage du micro. C'est plus difficile qu'il n'y paraît, lorsque vous considérez qu'une réinitialisation ou un cycle d'alimentation rapide peut laisser le reste de votre circuit dans un état indéterminé, ou le laisser sous tension et fonctionner sans que le micro ne le surveille.
Graham

3

En plus des autres exceptions fines énumérées dans toutes les réponses, les résistances internes de pull-up sont trop faibles pour I²C dans de nombreux cas.



Bien sûr, certains (beaucoup?) Microcontrôleurs ont des broches à drain ouvert spécialement pour I2C que vous pouvez configurer
Thomas

1
Je n'ai rien vu d'autre que de faibles tractions / hauts, @Thomas
Scott Seidman
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.