You are on page 1of 39

Informatique Industrielle

Les Microcontrôleurs et le MSP430

IST
3eme année
Joël SEKA 2017-2018
Les Microcontrôleurs

• Le microcontrôleur est un circuit intégré rassemblant


dans un même boîtier un microprocesseur, plusieurs
types de mémoires, et des éléments personnalisés
selon l'application.
• Les avantages du microcontrôleur
– Cout réduit (quelques milliers de CFA)
– Encombrement moindre (Quelques cm²)
– Fiabilité
– Mise en œuvre plus simple
– Consommation plus faible (Quelques dizaines de mA)

2
Les Microcontrôleurs

3
Les Microcontrôleurs

• Quelques familles de microcontrôleur


– Atmel AT91
– Atmel AVR
– C167 de Siemens / Infineon
– Hitachi H8
– Freescale 68HC08
– PIC de Microchip (~1000 composants)
– ST6, ST7, ST10, STR7, STR9 de STMicroelectronics
– ADuC d'Analog Devices
– PICBASIC de Comfile Technology
– MSP430 de Texas Instruments (+300 composants)
– V800 de NEC
4
Définition

5
Le MSP430

• Schéma fonctionnel du MSP430G2553 de Texas


instrument

6
Le MSP430

• Brochage du MSP430G2553

7
Le MSP430G2553

• General Purpose I/O


– Entrées/sorties programmable indépendamment
– Toutes les combinaisons sur les entrées et les sorties sont possibles
(sélection des fronts possibles pour les interruptions)
– Accès en lecture et en écriture aux registres contrôlant les ports
supportés par toutes les instructions
– Chaque entrées/sorties possède une résistance de pull-up/pull-dowm
– Certaines entrées peuvent accueillir des éléments capacitifs ( capteur
capacitif, écran tactile)

• Deux Timers 16 bits


– Capture d'évènement & sources d'interruption

• Watchdog Timer (chien de garde)


8
Le MSP430G2553

• USCI: Universal serial communication interface


– Gestion des liaison série de type I2C et SPI

• Comparateur analogique
– Filtre RC sélectionnable
– Sources d'interruption

• Convertisseur analogique numérique 10bits


– 8 canaux de conversion
– Tension de référence programmable
– sources d'interruption

• Brownout Reset
– Fourni les signaux de reset à la mise sous tension et à la mise hors
tension 9
Le MSP430G2553

• Le microprocesseur du MSP430G2553
– Type RISC
• 27 instructions de base + 24 instructions «
émulées »
– Architecture de Von neuman
– Contient 16 registres de 16 bits
• R0 est le program counter,
• R1 est le stack pointer,
• R2 est le status register

10
Le MSP430G2553
• Le microprocesseur du MSP430G2553
• R3 est un registre spécial appelé le constant
generator, et donnant accès à 6 constantes
utilisées fréquemment sans devoir utiliser
d’autres opérandes.
• R4 à R15 disponibles pour usage général.
• Modes d’adressage
– 7 modes d’adressage pour l’opérande source
– 4 modes d’adressage pour l’opérande destination

11
Le MSP430G2553

• Les Modes d’adressage du MSP430


– 7 modes d’adressage pour l’opérande source
– 4 modes d’adressage pour l’opérande destination

12
Le MSP430G2553

• Mapping Mémoire

13
Le MSP430G2553

• Les horloges
– MCLK : Master clock.
• Horloge haute fréquence, utilisée par le CPU et le système.
– ACLK : Auxiliary clock.
• Horloge basse fréquence (économique) sélectionnable en software
pour cadencer les périphériques.
– SMCLK : Sub-main clock.
• Horloge haute fréquence, sélectionnable en software pour cadencer
les périphériques.
– Ces 3 signaux sont produits par divers oscillateurs internes ou
externe.
• DCOCLK (Digitally Controlled Oscillator):16MHz (interne)
• VLOCLK (Very Low power Oscillateur): 12Khz (interne)
14
Le MSP430G2553

• Les horloges

15
Le MSP430G2553
• La consommation électrique à 2,2V
– 0,1 µA pour la rétention de la RAM

– 0,4 µA en Standby mode (VLO)

– 250 µA / MIPS active (Million d‘Instructions Par Seconde)

– Réveil du Standby mode < 1µs

16
Le MSP430G2553
• 3 ports programmables d'entrée-sortie
– P1 et P2 sur les modèles 20 broches

• Chaque port a huit broches d'entrée-sortie et chaque


broche est configurable
– Individuellement
– programmation / configuration indépendantes pour chaque broche de
chaque port
– les ports P1 et P2 individuellement configurables comme sources
d’interruption,
– registres d’entrées et registre de sorties séparés et indépendant.
• PxDIR: définir la direction des pattes du port Px
• PxIN: lire les valeurs logiques appliquées sur les pattes (qu'elles
soient en entrée ou en sortie).
• PxOUT: définir la valeur effective sur les pattes de sorties
17
Exercice

• Ecrire un programme allumant une


LED branchée sur P1.7 (broche 7 du
Port P1) si l’entrée P1.0 (broche 0
du Port P1) est à l’état « haut ».
Sinon la LED s’éteint.

Manipuler des bits individuellement à


l'intérieur de registre

18
Les champs de bits

• Mise à 1 d’un bit: Set bit


• Mise à 0 d’un bit: Clear bit
• Tester la valeur d'un bit: Test bit

19
Les champs de bits

• Mise à 1 d’un bit: Set bit


X7 X6 X5 X4 X3 X2 X1 X0

X7 X6 X5 X4 X3 1 X1 X0

20
Les champs de bits

• Mise à 1 d’un bit: Set bit


X7 X6 X5 X4 X3 X2 X1 X0
OU
0 0 0 0 0 1 0 0

X7 X6 X5 X4 X3 1 X1 X0

Exemple : P1DIR= P1DIR |0b00000100;


P1DIR |= 0b00000100;
P1DIR |= (1<<2);

21
Les champs de bits

• Mise à 0 d’un bit: Clear bit


X7 X6 X5 X4 X3 X2 X1 X0

X7 X6 0 X4 X3 X2 X1 X0

22
Les champs de bits

• Mise à 0 d’un bit: Clear bit


X7 X6 X5 X4 X3 X2 X1 X0
ET
1 1 0 1 1 1 1 1

X7 X6 0 X4 X3 X2 X1 X0

Exemple : P1DIR= P1DIR & 0b11011111;


P1DIR &= 0b11011111;
P1DIR &=~ (1<<5);

23
Les champs de bits

• Tester la valeur d'un bit: Test bit


Tester un bit à 0 Tester un bit à 1
X X X X X X X 0 X X X X X X X 1
ET ET
7 6 5 4 3 2 1 7 6 5 4 3 2 1
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Valeur nulle Valeur non nulle
FAUX VRAI

Exemple : if (P1IN & 0b00000001)...


if (P1IN & (1<<0))…

24
Les interruptions
Les Interruptions

• Exécuter un sous-programme particulier suite à


l'apparition d’un événement spécifique.
– Scrutation : Interroger régulièrement le périphérique ou le composant
afin de savoir si l’événement est survenu.
– Interruption : le périphérique ou le composant signale que l'événement
est survenu.

26
Les Interruptions

• L'interruption est un mécanisme fondamental de tout


processeur. Il permet de prendre en compte des
événements et de leur associer un traitement
spécifique.
• Ce mécanisme permet d’implémenter une réaction à
une sollicitation en respectant les exigences suivantes
– Offrir un délai de réponse très bref
– Programmation indépendante du code en cours d’exécution.

27
Les Interruptions

• Les sources d’interruptions :


– Un composant extérieur au microcontrôleur
• Interruption initiée via une ou plusieurs broches d’entrées/sorties
– Un périphérique interne du microcontrôleur
• Interruption initiée par un timer, convertisseur A/N, watchdog, ...
– soit le CPU
• Exception d’exécution:
– Compteur de programme contenant une valeur supérieure à
l’adresse max de la mémoire.
• ….

28
Les Interruptions

• Le mécanisme des interruptions

Programme
Principale
Routine
d'interruption
Instruction
Instructionn
Instruction
Événement Instruction
Instruction
n+1
Déclencheur
Instruction

Instruction n+2
Instruction
Instruction

29
Les Interruptions

• Le mécanisme des interruptions


1. L’instruction en cours termine son exécution.
2. L’adresse de la prochaine instruction à exécuter est sauvegardée sur
la pile.
3. Saut à l’adresse de la routine d’interruption appropriée.
4. La routine d’interruption est exécutée.
5. A la fin de la routine d’interruption, le microprocesseur reprend
l’exécution du programme suspendu à l’adresse sauvegardée sur la
pile.

30
Les Interruptions

• Les 3 types d’interruptions


1. Reset du système.
2. Les interruptions non-masquable (NMI:Non Maskable Interrupt)
• Ne sont pas activés/désactivés par le General Interrupt Enable bit
(GIE) mais activés par des bits individuels (NMIIE, ACCVIE,
OFIE).
• Causées par :
– Un changement d’état logique sur la pin RST/NMI (lorsque
configurée en mode NMI)
– Une faute d'oscillateur.
– Une violation d'accès dans la mémoire flash
3. Les interruptions masquable
• Peuvent être activée/désactivée individuellement par un bit
individuel et/ou elles peuvent être tous activées/désactivées par le
bit GIE.
• Causés par des périphériques ayant des capacités d'interruption.
31
Les Interruptions

• La sauvegarde du contexte
– Le bon fonctionnement d’un programme ne doit pas être altéré par les
interruptions pouvant survenir pendant son exécution.
– Il est donc indispensable que les routines d’interruption préservent
l’état du processeur (valeur des bits d’états (flags), la configuration des
périphériques, ...).
– Pour cette raison, les routines d’interruption commencent par des
opérations de sauvegarde du contexte (sur la pile ou dans un espace de
stockage spécifique), et se terminent par une restauration de celle-ci.

• La hiérarchie des interruptions


– Les priorités d'interruptions déterminent quel interruption est choisi
lorsqu'il y en a plusieurs simultanés.

32
Les Interruptions

• MSP430G2553 : Sources et vecteurs d’interruptions

33
Les Interruptions

• Exécution d’une routine d’interruption durant laquelle


une autre interruption moins prioritaire survient
9

34
Les Interruptions

• Exécution d’une routine d’interruption durant laquelle


une autre interruption plus prioritaire survient
4 9

35
Les Interruptions

• Exemple

36
Les Interruptions

• Exemple

Nom de la routine
d’interruption
La directive « pragma vector » permet de spécifier
l’adresse ou doit se trouver la 1ere instruction de la
routine d’interruption déclarée à la ligne suivante.

37
Les Interruptions
Exemple

Le programme permet de faire clignoter P1.0 utilisant l'interruption du Timer0.


Le Timer0 est configuré en "Upmode" il déborde lorsqu'il atteint la valeur TA0CCR0.
MCLK = SMCLK = TACLK = DCO 38
Les Interruptions
Exemple

39

You might also like