Académique Documents
Professionnel Documents
Culture Documents
MINI
PROJE
T
AVANCÉ
ARCHIT DE
ECTUR
PROCESSEU
E
R
Institut supérieur d'informatique et multimédia
Gabes
Présenté par
Khandoudi Amina
2
I.
Introduction:
Mbed Studio est un IDE gratuit pour le développement
d'applications et de bibliothèques Mbed OS, comprenant toutes
les dépendances et tous les outils dont vous avez besoin
dans un seul package afin que vous puissiez créer, compiler et
déboguer vos programmes Mbed sur le bureau.
3
Après avoir créé votre compte, j'ai retrouvé sur une interface
qui ressemble à la fenêtre suivante.
5
2. Création d’un
projet
Partir d’un projet nouveau
Afin de pouvoir réaliser une application embarquée, il faut
avant tout créer un nouveau projet dans cette interface.
Dans la barre d’outils, cliquez sur File / New / MBED Project
3. La carte de prototypage
Nucléo
La carte de développement que nous allons utiliser est une
carte Nucléo-L476RG, conçue par ST MicroElectronics
(société franco- italienne – ex Thomson Semiconducteurs).
Cette carte est équipée d'un microcontrôleur Arm Cortex M4
STM32L476RGT6 à très faible consommation dans un boîtier
LQFP64. Cette carte de développement vous permet de créer
et d'évaluer facilement des prototypes. Le microcontrôleur
offre plusieurs modes d'économie d'énergie qui vous aideront
à concevoir des prototypes avec des limitations de la
consommation d'énergie.
10
Caractéristiques principales
Elle possède les éléments suivants
:
Processeur : STM32L476RGT6 /
ARM®32-bit Cortex®-M4 CPU
Fréquence maximale : 80 MHz
Alimentation : 3.3 V
Mémoire programme : 1 MB
Flash Mémoire données :128 KB
SRAM Ressources :
Entrées/Sorties Numériques : 51, dont 1 LED présente
sur la carte (sortie D13 ou PA_5) et un bouton-
poussoir (entrée PC_13)
ADC 12 bits / 5 MHz (x 3)
DAC 12 bits / 2
canaux Timers
Interruptions
externes
Communications
: SPI / I2C
USART / UART /
CAN
USB OTG Full
Speed
1
1
3. Broches du microcontroleur et
connecteurs
Pour accéder aux broches de la carte, il existe deux
types de connecteurs différents :
Connecteurs compatibles Arduino
Uno Connecteurs ST Morpho
(specifiques)
L’ensemble des broches peuvent être configurées
indépendamment en entrée ou en sortie
numérique.
Ces broches sont regroupées en ports d’entrées/sorties nommés
Px (où x est une lettre de A à G – par exemple le port A se
nomme PA). Chacune des broches d’un port sont ensuite
désignées par un nombre de 0 à 15 (par exemple, la broche 3
du port B s’appelle PB_3).
Connecteurs Arduino
Ces connecteurs sont compatibles avec les cartes
d’extensions Arduino Uno (ou shields). Les noms
des entrées/sorties sont équivalentes à celles
d’Arduino.
Par exemple, D13 est une broche numérique qui pourra
être configurée en entrée ou en sortie.
13
D’autres fonctionnalités de ces broches sont listées
également à côté de leurs noms sur l’image précédente.
Par exemple, la broche D11 (numérotation Arduino)
correspond à la broche physique PA_7 du composant, qui
peut être configurée comme : une sortie PWM, la sortie MOSI
de la liaison SPI1, une entrée analogique…
Dans les API mbed, trois PWM Output utilisé pour contrôler la
LED RGB. Une valeur PWM de 0,0 serait éteinte et 1,0
complètement allumée pour chaque LED de couleur. Cela
permet à un programme de faire varier à la fois la couleur et
le niveau de luminosité de la LED. Généralement, une LED RGB
a quatre broches. Une broche commune et une pour chacune
des trois LED.
15
Après avoir déclaré notre pins pour les trois couleurs rouge,
vert et bleu , j'ai commencé de déclaré aussi l'afficheur LCD
pour affiché le nom du chaque couleur:
Initialisation du module SPI
Pour pouvoir utiliser l’écran LCD, il faut dans un premier
temps initialiser la liaison SPI les reliant. Pour cela, j'ai
utiliser le code suivant :
Initialisation du composant
il est nécessaire de suivre une procédure d’initialisation
propre à chacun d’entre eux.
Dans le cas de cet écran LCD, on trouve dans la
documentation technique diverses commandes que l’on peut
utiliser pour contrôler l’affichage à l’écran. En particulier, on
retrouve cette procédure d’initialisation :
Déplacer le curseur
Pour déplacer le curseur à un endroit souhaité de l’écran, on
peut utiliser la commande Set DDRAM Adress.
L’écran LCD peut être vu comme un tableau linéaire de 3 x
16 octets (dont la première case commence par l’adresse
0). La première ligne est stockée dans les cases d’adresses
0 à 15, la seconde ligne est stockée dans les cases
d’adresses 16 à 31…
19
Effacer l’écran
Pour effacer l’écran, il faut faire appel à la commande de
l’écran
Clear Display :
Fonction main
Notre fonction main sera la
suivante:
21
myRGBled.write(1.0,0.0,0.0); //affichage du couleur red
wait_us(2.0);
//affichage sur l'écran LCD
char ch[10];
sprintf(ch,
"red");
LCD_DOG_writeS
tr(ch, 3, 2);
LCD_DOG_clear(); // Pour effacer
l’écran c'est le meme pour la couleur
green: myRGBled.write(0.0,1.0,0.0);
//green
wait_us(2.0);
//
affichage
char
ch1[10];
sprintf(ch1, "green");
LCD_DOG_writeStr(ch1, 3, 2);
LCD_DOG_clear();
le couleur yellow :
myRGBled.write(1.0,0.2,0.0); //yellow = red + some
green wait_us(2.0);
//affichage char
ch2[10];
sprintf(ch2, "yellow");
LCD_DOG_writeStr(ch2, 3, 2);
LCD_DOG_clear();
Code complet :
22
23
24
4.
Compilation
Une fois le code source écrit dans le fichier main.c, il est
indispensable de compiler le code (pour le transformer dans un
langage de bas niveau compréhensible par le microcontroleur)
par l’intermédiaire de l’icône suivante sous Keil Studio (via
MBED) :