0% ont trouvé ce document utile (0 vote)
38 vues14 pages

C2 Gpio

Le document décrit le fonctionnement des ports parallèles et des entrées/sorties GPIO du microcontrôleur LPC2378. Il explique comment configurer les broches des ports en entrée ou sortie à l'aide de registres dédiés et comment lire ou écrire leur état logique.

Transféré par

Nacim Aguenarous
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
38 vues14 pages

C2 Gpio

Le document décrit le fonctionnement des ports parallèles et des entrées/sorties GPIO du microcontrôleur LPC2378. Il explique comment configurer les broches des ports en entrée ou sortie à l'aide de registres dédiés et comment lire ou écrire leur état logique.

Transféré par

Nacim Aguenarous
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Partie 2

PORT PARALELLES

[Link]@[Link]
Entrées / Sorties
• Un microcontrôleur a essentiellement une fonction de
contrôle et doit donc proposer des mécanismes d’entrées/
sorties efficaces.

• Sur le LPC2378
– 144 pins dont 104 d’entrées/sorties
– E/S sont réparties en 5 ports de 32 bits
• Certains bits des ports ne sont pas connectés
– Environ 250 fonctions d’entrées/sorties possibles sur
l’ensemble des pattes d’E/S
Multiplexage des E/S

• Chaque patte du composant peut à tout moment réaliser 1


fonction d’E/S parmi 4 possibles (au maximum).

• Sélection de la fonction à l’aide d’un multiplexeur


commandé par un registre

– Exemple: Patte 0 du Port 0


Registres de Sélection PINSEL

• Registres PINSEL0 → PINSEL9


– Un registre commande 16 bits d’un port
• PINSEL0: Bits 0 à 15 du Port 0
• PINSEL1: Bits 16 à 31 du Port 0
• PINSEL2: Bits 0 à 15 du Port 1
• Etc…

– Registre PINSEL0
• Bits 1-0 commandent la patte 0 du Port 0
• Bits 3-2 commandent la patte 1 du Port 0
• Etc…
Registres de Sélection PINSEL
• Exemple Registre PINSEL0
– D’après la documentation du composant

– Pour chaque patte, la valeur 00 correspond toujours à la fonction


E/S standard
– Valeur de Reset
– Voir les annexes pour l’ensemble des fonctions
Mode d’E/S GPIO

• GPIO: General Purpose Input/Output

– Ce mode permet d’effectuer des lectures ou des


écritures sur les broches du LPC2378

– Échange d’informations avec les composants de la


carte
Entrées/Sorties GPIO et LPC2378

5 ports parallèles de "32" bits


– Attention: Tous les bits ne sont pas disponibles

• Modes de fonctionnement
– Les 5 ports P0 → P4 fonctionnent en mode "fast"
– P0 et P1 proposent également un mode "slow" compatible avec
les anciens composants de la famille LPC2xxx

• Commande des modes "fast" et "slow" par des registres


différents
– Seul le mode "fast" sera traité dans ce cours
Registres de Direction

• Chaque broche peut être configurée en entrée ou


en sortie

• Registre FIOxDIR associé au port Px


– FIO0DIR, FIO1DIR, FIO2DIR, FIO3DIR, FIO4DIR
– Registre de 32 bits
– Bit i du registre associé à la broche i du port
Registres de Direction

• Positionnement de la broche en entrée


– Mise à 0 du bit i

• Positionnement de la broche en sortie


– Mise à 1 du bit i

• Au reset, toutes les broches sont configurées en entrée

• Exemple: FIO1DIR = 5;
Registres de Mise à 1
• Registre FIOxSET associé au port Px
– FIO0SET, FIO1SET, FIO2SET, FIO3SET, FIO4SET
– Registre de 32 bits
– Bit i associé à la broche i du port

• Fonctionnement
– Bit i de FIOxSET = 1
• Mise à 1 en sortie de la broche i du port Px
– Bit i de FIOxSET = 0
• La broche i du port Px garde la même valeur
– Au reset, FIOxSET=0

• Registre actif uniquement si la broche est configurée en


sortie
Registres de Mise à 0
• Registre FIOxCLR associé au port Px
– FIO0CLR, FIO1CLR, FIO2CLR, FIO3CLR, FIO4CLR
– Registre de 32 bits
– Bit i associé à la broche i du port

• Fonctionnement
– Bit i de FIOxCLR = 1
• Mise à 0 en sortie de la broche i du port Px
– Bit i de FIOxCLR = 0
• La broche i du port Px garde la même valeur
– Au reset, FIOxCLR=0

• Registre actif uniquement si la broche est configurée en


sortie
Registres de Lecture/Ecriture
• Registre FIOxPIN associé au port Px
– FIO0PIN, FIO1PIN, FIO2PIN, FIO3PIN, FIO4PIN
– Registre de 32 bits. Le Bit i associé à la broche i du port
– Chaque bit contient l’état de la broche associée

• Fonctionnement
– Broche configurée en entrée
• Permet de lire la valeur binaire sur la broche
– Broche configurée en écriture
• Permet d’écrire un 0 ou un 1 sur la broche
• Différences avec FIOxCLR et FIOxSET ?

• Registre actif si la fonction GPIO a été sélectionnée pour la


broche.
Exemple de programme
#include "lpc23xx.h"
/* Déclaration des registres du LPC2378 */
void main (void)
{
PINSEL0 = 0x00000000;
/* broches 0 à 15 de P0 en GPIO */
PINSEL1 = 0x00000000;
/* broches 16 à 31 de P0 en GPIO */
FIO0DIR = 0xFFFFFFFF;
/* broches 0 à 31 de P0 en sortie */
FIO0SET = 0xFFFFFFFF;
/* broches 0 à 31 de P0 mises à 1 */
FIO0CLR = 0xFFFFFFFF;
/* broches 0 à 31 de P0 mises à 0 */
FIO0PIN = 0xFFFF0000;
/* broches 0 à 15 de P0 mises à 0
broches 16 à 31 de P0 mises à 1 */
}
Exercice
¨ Ecrire un programme en C permettant d'activer le port P2.5.

Vous aimerez peut-être aussi