La question peut s'appliquer à n'importe quel microcontrôleur doté de capacités d'E / S, mais je travaille actuellement avec le populaire ATmega328p. Considérez le circuit suivant: Un simple commutateur SPST normalement ouvert avec une résistance de rappel de 10k et un condensateur en céramique attaché, connecté à n'importe quel port d'E / S. La broche spécifique doit être évidemment configurée comme INPUT dans le DDRx respectif. La fiche technique décrit, dans la section DC Characteristics, une broche d'E / S de courant de fuite d'entrée \ $ (I_ {IL} / I_ {IH}) \ $ de 1µA, tandis que loin dans l'horizon, le courant continu par broche d'E / S plafonne à 40,0 mA. Pas du tout un problème.
DDRD = 0x00; // Port entier comme INPUT
Considérez maintenant que j'ai oublié le fait que la broche donnée doit être définie comme entrée, je la mets en sortie et je règle le port HIGH.
DDRD = 0xFF; // Port entier comme OUTPUT
PORTD = 0xFF; // Port entier HIGH
Bien que la fiche technique ne fournisse pas d'impédance de sortie , elle peut être estimée à 25 Ω, sur la base des graphiques donnés. Maintenant, au moment où le bouton est enfoncé, le courant trouve son chemin à travers le microcontrôleur à partir de la source 5V avec une résistance de 25Ω plus une résistance négligeable en raison de la trace de cuivre. Cela produit théoriquement une surintensité de 160 mA au-dessus du courant continu par plafond de broches d'E / S. Cela pourrait-il faire frire le port et l'appareil? De manière analogue, si je passe en logique positive et que je règle le port sur LOW, le même problème peut se produire:
DDRD = 0xFF; // Port entier comme OUTPUT
PORTD = 0x00; // Port entier BAS
Considérant que ce type de circuit est vivement encouragé, comment cela ne semble pas poser de problèmes? Maintenant, revenons à la question initiale, ne devrais-je pas être extrêmement prudent lors de la définition d'une broche d'E / S comme sortie? Ou au moins attacher une petite résistance en série comme protection primitive?
Remarque: Vous n'êtes pas anglophone, n'hésitez pas à modifier le message si vous voyez quelque chose de bizarre.