Vous êtes sur la page 1sur 21

er 1

Chapitre : PIO

Cours ralis par : Mme Hajer GHARSALLAOUI


1

Introduction
Priphriques

Un microcontrleur est un lment dot d'une CPU (Central Processing Unit) qui lui permet d'excuter un programme
Un microcontrleur est un circuit intgr qui rassemble les lments essentiels d'un ordinateur : processeur, mmoires, units priphriques et interfaces d'entres-sorties. Son vritable intrt par rapport a un micro ordinateur, PC par exemple, est qu'il prend place dans des applications embarques

Il est destin a contrler des processus. Ceci implique la prsence dans le microcontrleur d'lments d'change avec l'extrieur (entre / sortie) appel priphrique

Introduction
Dfinition d'un priphrique de microcontrleur

Un priphrique est une structure lectronique autorisant des changes entre l'extrieurs du microcontrleur et la CPU. Un priphrique se configure avant son utilisation proprement dite. Ainsi, sa structure lectronique contient des registres adressables par la CPU. On peut faire la distinction suivante sur les registres d'un priphrique :

Les registres de configuration : Ce sont ceux qui vont tre initialises, configures, au dmarrage et gnralement une seule fois, de manire a faire travailler le priphrique d'une certaine manire. Exemple : une broche d'un microcontrleur sera configure en sortie et en mode push-pull . Les registres d'utilisation : Ce sont les registres qui sont utilises au cours de l'application.

Introduction
Les priphriques principaux

Les ports d'entre/sortie (GPIO) : C'est par ces broches que transitent toutes les communications avec l'extrieur, sous la forme de tension ('1' = 3.3V environ, '0' = 0V environ). Les Timers : Ce sont des compteurs lectroniques qui permettent de construire des bases de temps (application temps rel) ou de compter des impulsions extrieures. Les ADC / DAC : Ce sont les interfaces qui rendent possible la manipulation de tensions analogiques ( au lieu de traiter simplement 2 niveaux, '0' et '1', les ADC et DAC travaillent typiquement sur 256, 1024, ...16 millions de niveaux de tension) Gestionnaire d'interruption : Il permet de dfinir par exemple, quels sont les priphriques susceptibles de gnrer une interruption, de dpartager plusieurs demandes d'interruptions simultannees...

General Purpose Input/Output : GPIO


Dfinition

Les ports GPIO sont des ports d'entre/sortie particulirement utiliss dans le monde des microcontrleurs, surtout dans le domaine de l'lectronique embarque.

Les ports GPIO (General Purpose Input/Output, c'est--dire entre/sortie pour un usage gnral) sont des ports d'entre/sortie particulirement utiliss dans le monde des microcontrleurs, surtout dans le domaine de l'lectronique embarque. Selon la configuration, ces ports peuvent fonctionner autant en entre qu'en sortie.
Les priphriques GPIO comportent un ensemble de ports d'entre/sortie qui peuvent tre configurs pour jouer soit le rle d'une entre, soit le rle d'une sortie. Quand un port GPIO est configur comme sortie, on peut crire dans un registre interne pour modifier l'tat d'une sortie. Quand il est configur comme entre, on peut dtecter son tat en lisant le contenu d'un registre interne.

De plus, les priphriques GPIO peuvent produire des interruptions et des vnements d'accs direct la mmoire (EDMA).

General Purpose Input/Output : GPIO


Dfinitions
Un port d'entre/sortie communique avec l'extrieur du microcontrleur par le biais de plusieurs fils (broches), en gnral regroupes par paquets de 8 ou 16. Il communique avec le processeur par sa seule et unique possibilit : les bus d'adresses et de donnes. Ceci est commun a TOUS les priphriques du microcontrleur. Rappel: le bus d'adresse qui permet au microprocesseur de slectionner la case mmoire ou le priphrique auquel il veut accder pour lire ou crire une information (instruction ou donne) ; le bus de donnes qui permet le transfert des informations entre les diffrents lments ; ces informations seront soit des instructions, soit des donnes en provenance ou destination de la mmoire ou des priphriques ; le bus de contrle qui indique si l'opration en cours est une lecture ou une criture, si un priphrique demande une interruption pour faire remonter une information au processeur, etc.

General Purpose Input/Output : GPIO


Dfinitions

Un port d'entre / sortie a donc pour rle d'imposer (Output) ou de lire (Input) un niveau de tension (associe aux niveaux logique '0' ou '1' ) sur l'ensemble de ses broches. Selon le microcontrleur, le niveau logique '1' peut tre 5V, 3V3 ou encore 1V8. Pour ce qui nous concerne, les IO sont sensibles a 0/3,3V. Le port d'E/S possde donc au minimum deux registres de configuration (l'un qui spcifie pour chaque broche sa direction, l'autre spcifiant la technologie utilise) et un registre d'utilisation qui est a l'image logique des broches.

General Purpose Input/Output : GPIO


Technologies
1. IO en Sortie

Mode Push Pull


La structure (technologie) possde deux interrupteurs (K1, K2, des transistors MOS complmentaires). K1 et K2 sont systmatiquement inverses. La broche peut donc tre porte au potentiel 0V ou 3,3V.
8

General Purpose Input/Output : GPIO


Technologies

Mode Open Drain

Ici, un seul interrupteur est

commande, l'autre est maintenu bloqu (on ne le fait pas apparaitre): la broche ne peut tre porte par le port qu'a une tension de 0V. Si K1 est ouvert (tentative de mise a '1' par le GPIO), la broche est en l'air. Ce sera donc au circuit extrieur de fixer le potentiel de la broche dans cet tat prcis.
9

General Purpose Input/Output : GPIO


Exemple d'utilit du mode Open Drain (1/2)

Le Bus IC est un bus qui permet de mettre en communication plusieurs circuits numriques (microcontrleur, EEPROM, ). Deux fils sont utilises SCL (horloge), SDA (donne) sans oublier la masse. Il s'agit donc d'un bus srie synchrone.

Rsistances de Pull Up

Exemple typique d'une structure bus IC

10

General Purpose Input/Output : GPIO


Exemple d'utilit du mode Open Drain (2/2)
Nous voyons ici un seul circuit connecte au bus (intrieur des pointills), il faut imaginer que n circuits sont susceptibles d'y tre relis de la mme manire. Chaque circuit est compose de deux structures de lecture/criture. En clair, chaque circuit peut prendre la main sur les lignes SCL et SDA (lecture ou criture). Plusieurs circuits sont donc susceptibles dmettre en mme temps, c'est a dire de chercher crire sur la ligne SDA par exemple en mme temps. Un conflit a donc lieu aux consquences potentiellement nfastes sur le plan matriel (dstruction) et logiciel (brouillage des messages) . Dans ce dernier cas, un arbitrage de bus permet de rgler le problme. Sur le plan matriel, il n'y a en ralit aucun problme non plus. En effet, les transistors (jaunes) sont assimilables des interrupteurs. On reconnait donc une structure Open Drain. Ainsi, chaque circuit peut imposer un '0' logique, mais jamais un '1'. C'est le circuit extrieur (la rsistance de tirage) qui remplit ce rle. Si deux circuits imposent en mme temps un '0', ou un '1', il n'y a pas de conflit, et ce, quelque soit la technologie utilise. Si par contre, un circuit impose un '0' et l'autre un '1', c'est celui qui impose le '0' qui l'emporte car le transistor, en position ferme, est quivalent a une rsistance quasi nulle. Le circuit qui proposait '1' (quivalent, lui Vcc avec une rsistance srie grande) n'est donc pas compris, mais il ne subit strictement aucun dgt. Si la technologie avait t push-pull, alors dans ce cas, un court-circuit se serait produit avec pour consquence un courant trop fort dbite par le circuit qui proposait '1' (ainsi qu'a celui qui 11 proposait '0', c'est le plus fragile qui fait fusible...dfinitif).

General Purpose Input/Output : GPIO


Technologies
2. IO en Entre

Mode entre flottante (floating input):


La broche, ct du port E/S, est laisse libre, flottante. Ainsi, c'est le circuit extrieur qui est totalement maitre du potentiel de la broche. Si le circuit extrieur est dconnect, le broche possde un potentiel inconnu ( proscrire car favorise le captage de parasites).

12

General Purpose Input/Output : GPIO


Technologies

Mode entre tire au niveau bas (Pull Down input):


La broche, ct du port E/S, est relie au 0V par l'intermdiaire d'une rsistance (dite de rappel). L'avantage, c'est que si le circuit extrieur est dconnect, le potentiel de la broche se retrouve a 0V grce a la rsistance de rappel. Cela veut aussi dire, que le circuit extrieur, pour imposer un potentiel, doit avoir une rsistance de sortie faible devant R, sinon, la tension chute.
13

General Purpose Input/Output : GPIO


Technologies

Mode entre tire au niveau haut (Pull up input):


Mme principe que prcdemment, mais la rsistance est relie au Vcc (5V, 3V3, ou 1V8)

14

15

PIO in Evaluation Board MB390 ver A


STi5100

16

Programmable Input/Output : PIO


STi5100

There are 48 bits of programmable I/O configured in six ports. Each bit is programmable as output or input. The output can be configured as a totem-pole or open-drain driver. Many programmable I/O have alternate functions and can be connected to an internal peripheral signal such as a UART or SSC. The PIO ports can be controlled by registers, mapped into the device address space. The registers for each port are grouped in a 4 Kbyte block, with the base of the block for port n at the address PIOnBaseAddress. During reset all of the registers are reset to zero. Each 8-bit PIO port has a set of eight-bit registers. Each of the eight bits of each register refers to the corresponding pin in the corresponding port. These registers hold: the output data for the port (PIO_PnOUT), the input data read from the pin (PIO_PnIN), PIO bit configuration registers (PIO_PnC[2:0]), the two input compare function registers (PIO_PnCOMP and PIO_PnMASK). Each of the registers, except PIO_PnIN, is mapped on to two additional addresses so that bits can be set or cleared individually. The PIO_SET_x registers set bits individually. Writing 1 in these registers sets a corresponding bit in the associated register x; 0 leaves the bit unchanged. The PIO_CLEAR_x registers clear bits individually. Writing 1 in these registers resets a corresponding bit in the associated register x; 0 leaves the bit unchanged.
17

Programmable Input/Output : PIO


Registres in STi5100

Each 8-bit PIO port has a set of eight-bit registers. Each of the eight bits of each register refers to the corresponding pin in the corresponding port. Register addresses are provided as the PIOnBaseAddress + offset. The PIOnBaseAddresses are: PIO0: 0x2082 0000, PIO1: 0x2082 1000, PIO2: 0x2082 2000, PIO3: 0x2082 3000, PIO4: 0x2082 4000, PIO5: 0x2082 5000.

18

Programmable Input/Output : PIO


Registres in STi5100

19

Programmable Input/Output : PIO


PIO Configuration

20

PIO Registers in STi5100

Voir Datasheet STi5100

21