Pourquoi des choses comme RESET / MCLR sont-elles actives sur la plupart des circuits intégrés?


40

Convention?

Plus facile à mettre en œuvre?

Une autre raison?

Y a-t-il une raison pour que des éléments tels que MCLR ou RESET sur les microcontrôleurs soient actifs-bas, c’est-à-dire que vous devez les abaisser pour réinitialiser le circuit intégré et les relever pour "exécuter" ce dernier.

Je suis juste curieux parce que cela me pose quelques problèmes. Si elle était active haut, je pourrais éviter le condensateur sur MCLR requis dans certains cas et traiter uniquement avec une résistance de tirage. Il semble que pour ajouter à la complexité.


En passant, si vous n’avez pas un bon terrain, votre sol peut également osciller. Si vous utilisiez une configuration déroulante, vous pourriez toujours avoir besoin d'un condensateur sur MCLR.
Kellenjb

Réponses:


49

Regardez ce qui se passe lors de la mise sous tension: Vcc monte suffisamment haut pour que tout fonctionne correctement. Toutefois, ce point n’est pas clairement défini et peut varier d’un périphérique à l’autre. Il est logique de ne pas utiliser cette tension pour réinitialiser le contrôleur.
Cependant, il est facile de garder un niveau bas indépendamment de Vcc. Après tout, la réinitialisation est déjà active au moment où vous mettez l’appareil sous tension, car à ce moment, tout est à un niveau bas.

edit
Le graphique ci-dessous montre comment la tension de sortie du contrôleur de réinitialisation (par exemple, un MC34064 ) reste basse jusqu'à ce que Vcc soit suffisamment élevé pour que le microcontrôleur complet soit stable.

texte alternatif


C'est ce que j'allais demander.
Kortuk

-1 - Il est tout aussi facile de garder un niveau élevé indépendamment de Vcc. Vous utilisez un transistor ou une résistance pull-up, de la même manière que vous utiliseriez un transistor ou une résistance à extraction. Votre argument ne dit rien de spécial sur la différence entre les tensions au niveau des broches d’alimentation. À la mise sous tension, ils se séparent et les niveaux logiques valides sont relatifs à la tension d'alimentation.
Jason S

1
@Jason: il est plus logique de le garder à un niveau toujours clairement défini que de s'appuyer sur un niveau en constante évolution.
Steven

8
Vcc et Gnd changent l'un par rapport à l'autre. C’est simplement une convention que nous considérons comme étant «constant» quand il s’agit vraiment de deux par rapport à l’autre. Vcc ne change que par rapport à Gnd parce que nous le pensons ainsi, plutôt que Gnd augmente négativement par rapport à Vcc.
Jason S

26

Wikipedia dit :

De nombreux signaux de commande dans l'électronique sont des signaux actifs-bas (généralement des lignes de réinitialisation, des lignes de sélection de puce, etc.). Cela provient du fait que la plupart des familles logiques peuvent absorber plus de courant que de source , ce qui augmente l'immunité au déroutement et au bruit. Il permet également la logique OU câblé si les portes logiques sont à collecteur ouvert / à drain ouvert avec une résistance de rappel. Le bus I²C, le réseau de contrôleurs (CAN) et le bus local PCI en sont des exemples. La signalisation RS232, telle qu'elle est utilisée sur certains ports série, utilise des signaux à l'état actif bas.

J'espère que cela t'aides.


7
Pourquoi naufrage est-il plus facile, c'est parce que les MOSFET à canal N (utilisés pour couler en CMOS) ont une meilleure mobilité des porteurs (les électrons coulent mieux que les trous)
Nick T

2
Je ne suis pas tout à fait sûr de cela. la plupart des circuits intégrés peuvent aujourd'hui couler à ± 20 mA, et est-ce vraiment important? 4,7k (typ.) Va être inférieur à 1 mA, ce que la plupart des IC peuvent faire.
Thomas O

3
@Thomas - 'Naufrage ± 20mA' n'est pas un moyen précis de dire ce qui se passe. Les courants source et dissipateur traversent des transistors distincts, qui ont des spécifications différentes pour une zone de puce donnée.
Kevin Vermeer

@reemrevnivek - Désolé, mon erreur, je suppose que naufrage / sourcing est plus approprié. Mais de toute façon, ils peuvent couler et se procurer beaucoup de courant.
Thomas O

3
Même si les composants actuels sont plus robustes, il se peut qu’il s’agisse maintenant de convention.
JustJeff

8

En plus de la réponse d'Igor, il existe deux raisons mineures pour lesquelles des signaux actifs-bas sont utilisés:

  • En plus de la quantité de courant absorbant disponible supérieure à celle de la source, il est plus facile pour les circuits TTL de produire une tension proche de la terre (juste une chute de Vce) par rapport à une tension proche de Vcc (chute de Vbe + généralement un peu plus )

  • Il est plus facile pour les circuits passifs externes (boutons-poussoirs ou fins de course, par exemple) de produire en toute sécurité un signal bas actif: utilisez simplement une résistance de rappel du côté réception et du côté source externe, court-circuitez le noeud de circuit en question au potentiel de la terre. Si vous utilisez un signal haut actif, vous devez rendre Vcc disponible pour ces circuits externes, ce qui présente un risque de court-circuit à la masse du nœud Vcc.


4

L'abaissement plus important des niveaux bas et des signaux actif-bas remonte en général à l'époque du TTL - il ne s'agit désormais que d'une convention commune. Il n'y a aucune raison de le changer.


2

Il n'est pas rare que différentes parties d'un système soient alimentées par des alimentations différentes qui partagent un terrain commun. Cela peut être dû au fait que certaines pièces nécessitent 3,3 volts tandis que d'autres ont besoin de 2,0 ou 5,0, car certaines pièces peuvent avoir besoin d'être mises sous tension et sous tension séparément des autres, car certaines pièces peuvent générer un niveau de bruit électrique sur leurs alimentations que d'autres ne pourraient pas. tolérer, etc. Dans certains cas, les circuits générant une réinitialisation peuvent ne pas fonctionner ou être contrôlés par la même alimentation que celle qui fait fonctionner la CPU. Avoir le générateur de réinitialisation sur une alimentation différente de celle de la CPU ne pose pas de problème si vous utilisez une réinitialisation actif-bas et si la CPU peut tolérer des niveaux de tension supérieurs à VDD ou si la ligne de réinitialisation peut être tirée légèrement vers le haut par un élément lié à l'alimentation de la CPU. .

Comme exemple simple, imaginons un processeur de 3 volts interfacé avec des puces de 5 volts. Le circuit externe fonctionnera de manière arbitraire si le VDD tombe en dessous de 4,75 volts et nécessitera une réinitialisation lorsque la tension monte au-dessus de ce point. Le processeur lui-même peut très bien exécuter le code si la tension d'alimentation principale chute à 3 volts, mais peut ne rien faire d'utile; Le moyen le plus propre de s'assurer que le matériel externe sera initialisé après l'augmentation de VDD au-dessus de 4,75 volts consiste à réinitialiser la CPU lorsque VDD se situe en dessous de ce point. Utiliser une puce de réinitialisation à collecteur ouvert et une extraction passive vers le VDD du processeur serait la solution la plus simple.

Le seul inconvénient de cette approche de la réinitialisation de la gestion est qu’une remontée passive consomme du courant de façon continue pendant la réinitialisation du système. Dans les systèmes alimentés par le secteur, les dispositifs de stockage d'énergie [condensateurs] s'attendent à être complètement secs sans aucun dommage. Dans les systèmes alimentés par des batteries rechargeables, toutefois, la perte de courant d'une cellule déchargée peut provoquer une usure excessive. Même dans les systèmes alimentés par des piles jetables, la consommation de courant continu peut augmenter de manière indésirable le risque de "dégonflement" des batteries.

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.