Académique Documents
Professionnel Documents
Culture Documents
Version 2.2
Mise à jour sept. 2020
Introduction
Systèmes Composants
Contrôlés numériques
par des
Capteurs
Systèmes robotiques (ex : drone) Processus industriels (ex : convoyeur) Actionneurs CPU, Flash, RAM, Interfaces E/S...
2
Introduction
3
Objectif du cours
4
Notre microcontrôleur…
Architecture :
• Cortex ARM-M3 (CPU)
• RAM/ROM
• Plein de périphériques internes
Dans ce module, vous allez apprendre à mettre en
œuvre certains de ces périphériques :
• Port E/S TOR
• Timers
• Contrôleur d'interruption
• CAN/CNA (en TNS)
• ...
5
Notre microcontrôleur…
6
Le processeur ARM cortex M3
7
Le processeur ARM cortex M3
8
L’exécution d’un programme
Exécution d’un programme (en informatique embarquée)
Le programme est stocké en mémoire morte… pourquoi ?
temps
- décodage et exécution interne au microcontrôleur
Un registre est
un ensemble de RAZ/ RAZ/ RAZ/ RAZ/
bascules D :
H Q3 Q2 Q1 Q0
Sortie « retenue »
Plan mémoire du LPC1768
11
Plan mémoire du LPC1768
Décodeur /CS
/CS
Flash
CPU Bus d’adresses RAM
Bus de contrôle R/W
Bus de données
Chip Select /CS : chaque périphérique peut être activé ou non pour se
connecter sur le bus de données
Si le Chip Select désactive un composant, ce composant se comporte
comme s’il n’existait pas
13
Liaison processeur - mémoire
Bus d’adresses Bus d’adresses
an-1
an-1
.
.
.
.
a4
a4
a3
a3
a2
a2
a1 RAM a1 ROM
a0
a0
R/W
Bus de
d7 d6 d5 d4 d3 d2 d1 d0 d7 d6 d5 d4 d3 d2 d1 d0
contrôle R/W
14
Périphériques
• Par exemple, un Timer une fois lancé nous permet de générer des
signaux PWM pendant que le processeur peut s’occuper d’autres tâches
15
Périphériques
Bus de données
16
Périphériques
CPU
Registres
Bus d’adresses
Bus de données
17
Mise en œuvre d’un périphérique
Configurer le périphérique
18
Mon premier périphérique: le GPIO
GPIO (General Purpose Input Output) = Port d’E/S Tout Ou Rien (TOR)
Décodeur
Bus
d'adresses /CS
Entrées
Sorties
Bus
de contrôle
19
Mon premier périphérique: le GPIO
20
Les GPIO du LPC1768
FIODIR3 (8 bits [31:24]) FIODIR2 (8 bits [23:16]) FIODIR1 (8 bits [15:8]) FIODIR0 (8 bits [7:0])
FIOPIN3 (8 bits [31:24]) FIOPIN2 (8 bits [23:16]) FIOPIN1 (8 bits [15:8]) FIOPIN0 (8 bits [7:0])
→ on connecte
Configurer le périphérique les P0.x (GPIO0)
Certains registres ont un rôle de configuration du
périphérique → réglage de FIODIR
Utiliser le périphérique D'autres registres ont un rôle d’utilisation du périphérique
→ réglage de FIOPIN
22
Registres du GPIO
• Grâce aux adresses de ces registres, on est capable de lire et d’écrire
dans ces registres ( par ex. à l’aide d’un pointeur en langage C)
@ de FIODIR0
@ de FIOPIN0
23
Utilisation du GPIO
24
Autre exemple
Forcer à 1 l’état des sorties P0.07 à P0.04 et forcer à 0 l’état des sorties P0.03 à
P0.00
Faire une boucle recopiant à l'infini les entrées P2.0 à P2.7 sur les sorties P3.16
à P3.23
LPC_GPIO2->FIODIR0 = 0x00; //P2.0 à P2.7 configurés en entrées
LPC_GPIO3->FIODIR2 = 0xFF; //P3.16 à P3.23 configurés en sorties
while (1)
{
LPC_GPIO3->FIOPIN2 = LPC_GPIO2->FIOPIN0;
}
25