Pull-Up / Pull-Down

Bandeau Pull-Up Pull-Down

Pull-Up et Pull-Down sont les termes anglais qui désignent les résistances de rappel (aussi appelées résistances de tirage). Les Pull-Up et Pull-down sont des résistances dans un circuit électronique qui sont connectées entre une source d’alimentation et une ligne « logique ». Celles-ci ont pour rôle de ramener une ligne logique à son état haut pour une Pull-Up et à son état bas pour une Pull-Down.

Puisqu’il vaut mieux un bon exemple qu’une longue explication, imaginez la situation suivante :

Vous souhaitez faire démarrer le programme de votre robot lorsque vous appuyez sur un bouton poussoir (normalement ouvert). Vous adaptez donc le code de votre microcontroleur pour que votre programme se lance quand l’entrée numérique n°1 est à l’état haut. Pour mettre votre entrée n°1 à l’état haut vous connectez votre bouton poussoir entre cette entrée et une source de tension de 5V. Vous obtenez donc le montage suivant :

Schéma exemple sans Pull-Down

Ainsi lorsque vous appuyez sur le bouton poussoir, le circuit se ferme et l’entrée n°1 reçoit bien 5V. Votre robot démarre. Cependant lorsque vous n’appuyez pas sur le bouton poussoir, votre entrée n°1 n’est reliée à rien. Cela ne signifie pas qu’elle reçoit 0V et qu’elle est à l’état bas. On appelle cela une ligne flottante. Une ligne flottante peut être considérée comme étant aléatoirement à l’état haut ou à l’état bas. Cela veut dire que lorsque vous n’appuyez pas sur votre bouton poussoir, il y a une chance sur deux pour que votre robot démarre tout seul.
Pour résoudre ce problème, on peut mettre en place une résistance Pull-Down. Placée entre l’entrée n°1 et la masse, cette résistance va ramener l’entrée 1 à l’état bas quand l’interrupteur ne sera pas fermé. On a le montage suivant :

Schéma exemple avec Pull-Down

La Pull-Up est utilisée dans le cas inverse. c’est à dire quand l’on veut que l’entrée soit ramenée à  l’état haut (5V) lorsque l’interrupteur est ouvert. Cela donne le montage suivant :

Schéma exemple avec Pull-Up

Pour le schéma ci-dessus, on voit bien que si l’interrupteur est fermé, l’entrée n°1 est à l’état bas et que si l’interrupteur est ouvert elle est à l’état haut.

« Quelle valeur de résistance dois-je choisir pour ma Pull-Up ? »

Je ne vais pas rentrer dans les détails techniques pour ne pas faire trop complexe. Il faut savoir que la résistance de rappel ne doit pas être trop grande pour ne pas créer une chute de tension trop important à cause du courant de fuite de la porte logique. D’autre part elle ne doit pas être trop petite pour ne pas appeler trop de courant.
Vous n’avez peut-être pas les connaissances suffisantes pour comprendre cette brève explication et ce n’est pas grave. Dans la majorité des cas, pour réaliser un des schémas décrits ci-dessus, utiliser une résistance d’environ 10K convient tout à fait.

Il faut savoir que certains microcontrôleurs sont équipés de résistance de rappel internes. Si c’est le cas, cela sera indiqué dans leurs datasheet. La patte Reset d’un Arduino est équipée d’une Pull-Up interne par exemple.

Pour en savoir plus :
Article Wikipedia – Résistance de rappel
Wiki Arduino – Utilisation des résistances de rappel
Edaboard – Calculer une résistance pull-up