Vous êtes sur la page 1sur 2

Les entrées-sorties des microcontrôleurs

Dans les années 1970, au moment où les microprocesseurs sont apparus, des circuits intégrés
logiques discrets étaient utilisée pour réaliser les entrées et les sorties du système. Pour les entrées,
des passeurs permettaient de lire les données lors de la sélection de l'adresse correspondante. Pour
les sorties, des registres PIPO (Parallel In Parallel Out) étaient utilisés pour mémoriser les
valeurs.

Entrées Sorties

Registre PIPO

Bus de données
Passeurs

Pour simplifier les schémas, les fabricants de microprocesseurs ont proposé des circuits intégrés
contenant tout ce qui est nécessaire pour les entrées-sorties. Comme le nombre d'entrées et le
nombre de sorties varient d'une application à une autre, ces circuits offraient la possibilité de
programmer certaines pattes comme des entrées et d'autres comme des sortie. Intel a proposé son
circuit 8255, où des groupes de 4 ou 8 pattes pouvaient être définis ensemble comme entrées ou
comme sorties. Mais Motorola a fait école avec son PIA (MC6820), en offrant une flexibilité
complète, chaque patte pouvant être définie individuellement comme une entrée ou une sortie.

Nous allons ici décrire les entrées-sorties des circuits de la famille des microcontrôleurs MSP430,
similaires aux PIA, mais plus riches. Voici le schéma simplifié correspondant à chaque patte
d'entrée-sortie, illustré pour la patte P1.0 ou P1.7 :

On y trouve deux passeurs. L'un permet à tout instant de lire l'état de la patte. L'autre permet
d'imposer une valeur logique à la patte, lorsqu'il s'agit d'une sortie.
On y trouve aussi deux bascules. Chacune fait partie d'un registre 8 bit. L'une de ces bascules est
appelée PxDIR ( Port Direction ). Elle permet d'activer ou non la sortie. L'autre est appelée PxOUT
(Port Output). Elle donne l'état devant être passé à la sortie.

2009-2013, Pierre-Yves Rochat, pierre-yves.rochat@epfl.ch version du 31/03/2013


Le tableau suivant donne la fonctionnalité correspondant à l'état des deux bascules:

PxDIR.y PxOUT.y Rôle de la sortie


0 0 Entrée (haute impédance)
0 1 Entrée (haute impédance)
1 0 Sortie, état 0
1 1 Sortie, état 1

Ce schéma est très pratique. Il permet en effet de choisir le rôle de chaque patte d'entrée-sortie et de
ceci à tout instant. Certains dispositifs de communication nécessitent en effet qu'un patte soit une
entrée à certains moments et une sortie à d'autres. C'est le cas par exemple de l'interface de claviers
PS-2 des PC.
Voici le schéma généralement utilisé pour lire la valeur d'un interrupteur ou d'un bouton-poussoir.

Lorsque le bouton-poussoir est pressé, l'entrée du


Entrée du
microcontrôleur
microcontrôleur reçoit la valeur « 0 ». Lorsqu'il est
Bouton
poussoir
ouvert, une résistance est nécessaire pour qu'une valeur «
1 » soit transmise à l'entrée. On l'appelle résistance de
rappel, ou pull-up.

Sans cette résistance, l'entrée serait en l'air. Or les entrée C-MOS ont une impédance très élevée,
leur état est donc indéterminé lorsqu'elles ne sont pas reliées. On observe facilement dans la
pratique qu'une entrée en l'air change de valeur à chaque instant, sous l'influence des perturbations
électromagnétiques ambiantes.
Le rôle de cette résistance est donc d'imposer la valeur logique « 1 » à l'entrée lorsque celle-ci en
l'air (non connectée). Pour utiliser un bouton-poussoir, elle est donc nécessaire.
Avec ce schéma, la valeur lue sur l'entrée sera 0 lorsque le bouton est pressé (donc actif) et 1
lorsque le bouton est relâché. Il ne faut pas oublier cette particularité lors de l'écriture des
programmes: la condition est inversée, le signal est actif à zéro.

Certains fabricants intègrent une résistance associée à chaque entrée sur le circuit intégré lui-même.
Sa valeur est généralement de 20 à 50 kOhm.
Sur les MSP430, un registre PxREN (Resistor Enable) est utilisé pour brancher ou non la résistance
sur une patte. Voici un tableau indiquant le rôle des entrées-sorties en fonction des bits PxDIR.y
PxOUT.y et PxREN.y. Remarquez la possibilité d'avoir un pull-down , où la résistance est reliée à
la masse (alimentation négative) et non au plus (alimentation positive).

Px.DIR.y PxOUT.y PxREN.y Rôle de la sortie


0 x 0 Entrée (haute impédance)
0 1 1 Entrée, avec pull-up
0 0 1 Entrée, avec pull-down
1 0 0 Sortie, état 0
1 1 0 Sortie, état 1

2009-2013, Pierre-Yves Rochat, pierre-yves.rochat@epfl.ch version du 31/03/2013

Vous aimerez peut-être aussi