Département IF / Architecture Matérielle
MSP430 TP1 : prise en main et programmation assembleur
Introduction
Dans cette série de TP «msp430», on va étudier le fonctionnement d’un (petit) ordinateur pour mieux
comprendre l’interface entre le logiciel et le matériel. Vous devrez donc faire les diverses manipulations
demandées, et par moment écrire des bouts de programme.
Nous ne ramasserons pas de compte-rendu ; par contre, vous avez intérêt à prendre des notes tout au long
du déroulement du TP pour pouvoir les relire par la suite : dans les TP d’après, mais aussi avant les QCM,
et aussi avant l’examen ! Pour chaque exercice, mettez donc par écrit (sur papier ou sur ordinateur) les
manips que vous faites, les questions que vous vous posez, et les nouvelles notions que vous comprenez.
1 Découverte de la carte
Exercice 1
Pour chaque binôme, allez prendre le matériel nécessaire au TP : une carte d’expérimentation,
une sonde JTAG (le boîtier gris avec une nappe d’un côté), et un câble USB.
1.1 La carte mère
La carte que nous allons utiliser en TP est illustrée dans le schéma ci-dessous. La puce principale est celle
repérée FG4618 : c’est un microcontrôleur, on y reviendra par la suite. Mais d’abord, faisons le tour de la
carte.
Extrait de la documentation : motherboard.pdf page 6
2
4. Functional Overview
The MSP430FG4618/F2013 experimenter’s board supports various applications
through the use of the on-chip peripherals connecting to a number of on-board
components and interfaces as shown in Figure 2.
LCD
FG4618
F2013
Wireless
CC1100/
2420/2500
EMK
Interface
JTAG2 JTAG1
Buzzer
Microphone
Analog
Out
Capacitive
Touch
Pad
Buttons
RS-232
Figure 2: Experimenter’s board block diagram
Wireless communication is possible through the expansion header which is
compatible with all Chipcon Wireless Evaluation Modules from Texas Instruments.
Interface to a 4-mux LCD, UART connection, microphone, audio output jack,
buzzer, and capacitive touch pad enable the development of a variety of
applications. Communication between the two on-board microcontrollers is also
possible. In addition, all pins of the MSP430FG4618 are made available either via
headers or interfaces for easy debugging. Sample code for this board is available
online at www.ti.com/msp430.
1
Sur cette carte mère, en plus du msp430, il y a tout un tas de périphériques :
1. un écran à cristaux liquides (pour afficher des chiffres et des icônes)
2. un microphone
3. un buzzer (pour jouer du son)
4. une prise casque (pour jouer du son aussi, mais plus joli)
5. un quartz (pour générer le signal d’horloge)
6. deux boutons poussoirs
7. des voyants lumineux (LED)
8. une roue tactile capacitive (touchpad) en forme de chiffre 4
9. un port série (RS-232)
etc. ...
Exercice 2
Pour chacun de ces éléments, indiquez sur le schéma page précédente son emplacement
approximatif. Certains éléments (LEDs, quartz) ne sont pas sur le schéma, vous devrez les chercher
directement sur la carte. Le quartz est repéré X2, et les diodes sont repérées LED1,LED2,LED3 et LED4.
Commentaire
Vous aurez peut-être remarqué que la carte comporte deux microcontrôleurs. L’un est un
MSP430F2013 (c’est le petit), et l’autre un MSP430FG4618 (c’est le gros). C’est avec ce second msp430
qu’on va travailler dans ces TP. Les diodes LED1, LED2, et LED4 y sont connectées par des pistes de la
carte mère. La diode LED3, par contre, est connectée au F2013, qu’on ne va pas utiliser du tout. Vous
pouvez dès maintenant oublier son existence, ainsi que celle de la LED3.
Exercice 3
L’encadré page suivante montre le schéma électrique de la carte mère. Retrouvez les différents
composants vus jusqu’ici, et indiquez leur emplacement sur le schéma.
2
Extrait de la documentation : motherboard.pdf page 19
Audio output jack
MSP430FG4618/F2013 Experimenter's Board
RF Daughter Card Connect Isolated RS232 Communication
Breadboard
Sallen-Key 2nd Order OA1 Active LPF
(For opt. F2013 programming)
0-00
SoftBaugh SBLCDA4
(A4/OA1I0)
(A3/OA1O)
(A7/DAC1)
(A0/OA0I0) (A5/OA2O)
(A1/OA0O)
(A2/OA0I1)
(Mic Supply)
MSP430FG4618 Pin Access Power Supply Configuration
(Output
Attn.)
VCC_1: FG4618 Supply Config
Pos 1-2: FET Powered
VCC_2: F2013 Supply Config
Pos 2-3: Battery Powered
Buzzer
Mute
Mic Input Circuitry and
1st Order OA0 Active HPF
MSP-EXP430FG4618 PCB Ver 0-00
Document Number:
Date: 26-Oct-2006 Sheet: 1/1
VER:
+
+
+
+
A1
C9 C10
C8
C13
C6
C2
12
H2
34
56
78
12
H3
34
56
78
12
H4
34
56
78
12
H7
34
56
78
12
H6
34
56
78
12
H8
34
56
78
C12
1
BATT
2
P1.0/TACLK/ACLK/A0+ 2
P1.1/TA0/A0-/A4+ 3
P1.2/TA1/A1+/A4- 4
P1.3/VREF/A1- 5
P1.4/SMCLK/A2+/TCK 6
P1.5/TA0/A2-/SCLK/TMS 7
P1.6/TA1/A3+/SDO/SCL/TDI/TCLK 8
P1.7/A3-/SDI/SDA/TDO/TDI 9
VCC
1
VSS
14
TEST/SBWTCK
11
XIN/P2.6/TA1
13
XOUT/P2.7
12
NMI/RST/SBWTDIO
10
U4
LED3
LED4
1
JP3
2
1
JP2
2
21
SP1
1
JP1
2
1
2
3
VCC_1
C18
12
H5
34
C19
C21
1
JP4
2
C1
12
H9
34
56
12
M1
+-
B1
7F_7G_7E_DP7
P$1 7A_7B_7C_7D
P$2 6F_6G_6E_DP6
P$3 6A_6B_6C_6D
P$4 5F_5G_5E_COL5
P$5 5A_5B_5C_5D
P$6 4F_4G_4E_DP4
P$7 4A_4B_4C_4D
P$8 3F_3G_3E_COL3
P$9 3A_3B_3C_3D
P$10 2F_2G_2E_DP2
P$11 2A_2B_2C_2D
P$12 1F_1G_1E_DP1
P$13 1A_1B_1C_1D
P$14
COM3 P$15
COM2 P$16
COM1 P$17
COM0 P$18
F5_PR_P4_P3 P$19
F1_F2_F3_F4 P$20
PL_P0_P1_P2 P$21
AU_AR_AD_AL P$22
BT_B1_B0_BB P$23
ANT_A2_A1_A0 P$24
ENV_TX_RX_8BC P$25
DOL_ERR_MINUS_MEM P$26
1
3
5
7
9
JTAG2
11
13
2
4
6
12
14
8
10
1
3
5
7
9
JTAG1
11
13
2
4
6
12
14
8
10
1
62
73
84
95
RS232
G1
G2
C3
D2
D1
2
3
7
8
5
6
U2
2
3
7
8
5
6
U1
Q1
12
S1
12
S2
R33 R31
R26R27R34
R29
R32
R30
R19
R18
R20
R13
R14
R15
R16
R23
R8
R3
R10
R1
R2
R5
R9
R4
R11
R12
R17
1
PWR2
2
1
PWR1
2
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
60
59
58
57
56
55
54
53
52
51
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
LED1
R6
LED2
R7
R28
C4
D3
X1
X2
C15
12
BB3
34
56
78
910
1112
1314
1516
1718
C5 C7
12
BB1
34
56
78
910
1112
1314
1516
1718
12
BB2
34
56
78
910
1112
1314
1516
1718
BAND
P$4
TIP
P$1
RING
P$2
12
H1
34
56
78
11 11
12 12
13 13
14 14
11
22
15 15
16 16
4
4
5
5
6
6
7
7
8
8
9
910
10
33
INNER_GND
INNER_GND
C11
C16 C17
R24 R25
1
2
3
VCC_2
R21
R22
C14
C20
1
3
5
2
4
6
7
9
8
10
11
13
15
12
14
16
17
19
RF1
18
20
1
3
5
2
4
6
7
9
8
10
11
13
15
12
14
16
17
19
RF2
18
20
GND
S0
S0
S1
S1
S2
S2
S3
S3
S5
S5
S6
S6
S7
S7
S8
S8
S9
S9
S10
S10
S11
S11
S12
S12
S13
S13
S14
S14
S4
S4
S15
S15
S16
S16
S17
S17
S18
S18
S19
S19
S20
S20
COM3
COM3
COM2
COM2
COM1
COM1
COM0
COM0
UCB0SDA
UCB0SDA
UCB0SDA
UCB0SCL
UCB0SCL
UCB0SCL
DVCC_4618
DVCC_4618
DVCC_4618
DVCC_4618
DVCC_4618
DVCC_4618
DVCC_4618
SIMO1
SIMO1
SIMO1
SOMI1 SOMI1
SOMI1
UCLK1
UCLK1
UCLK1
S21
S21
GDO2
GDO2
GDO2
GDO0
GDO0
GDO0
P3.0
P3.0
P3.0
UTXD1
UTXD1
URXD1
URXD1
P7.5
P7.5
2013_P1.2
2013_P1.3
2013_P1.4
2013_P1.5
SCL
SDA2013_P2.7
2013_P2.6
SBWTCK
SBWTCK
SBWTDIO
SBWTDIO
P6.0
P6.0
P6.0
P6.1
P6.1
P6.1
P6.2
P6.2
P6.2
P6.5
P6.5
P6.5
LCDCAP
LCDCAP
P10.7
P10.7
P5.1
P5.1
VEREF+
VEREF+
RESETCC
RESETCC
RESETCC
VREG_EN
VREG_EN
VREG_EN
FIFO
FIFO
FIFO
FIFOP
FIFOP
FIFOP
PC_GND
2013_P1.1
2013_P1.0
P2.0
P2.0
P2.2
P2.2
P2.6
P2.6
UCB0CLK
UCB0CLK
UCB0CLK
P3.4
P3.4
P3.5
P3.5 P3.5
P3.7
P3.7
P5.6
P5.6
P7.4
P7.4
P7.6
P7.6
P7.7
P7.7
VREF
VREF
P5.0
P5.0
P10.6
P10.6
P6.4
P6.4
P6.4
P6.6
P6.6
P6.3
P6.3
P6.3
P6.7
P6.7
P6.7
VEREF-
VEREF-
SW1
SW1
SW1
SW2
SW2
SW2
P2.1
P2.1
P2.3
P2.3
P2.3
P2.7
P2.7
UCA0TXD
UCA0TXD UCA0TXD
UCA0RXD
UCA0RXD UCA0RXD
P3.6
P3.6
P5.7
P5.7
P5.5
P5.5
P4.2
P4.2
P4.2
P7.0
P7.0
UCA0SIMO
UCA0SIMO
UCA0SOMI
UCA0SOMI
UCA0CLK
UCA0CLK
P4.7
P4.7
P4.6
P4.6
LCL_PWR1
LCL_PWR1
FET_PWR1
FET_PWR1
FET_PWR2
FET_PWR2
LCL_PWR2
LCL_PWR2
AVCC_4618
AVCC_4618
0.1uF 10uF
0.1uF
0.1uF
0.1uF
GND
GND
VCC
0.1uF
GND
GND
0.1uF
GND
VCC
GND
MSP430F2013PW
GND
GND
GND
AL60P
470n
GND
10uF
15p
GND
VCC
0.1uF
GND
GND
10uF
1N4148
1N4148
PS8802
PS8802
MMBT5088
GND
GND
VCC
GNDGND
10k 470k
4701k3k3
1k
0
150k
10
47k
470
5M1
5M1
5M1
5M1
470
10
47k
10
1k
2k2
100
2k2
2k2
100k
100k
470
GND
VCC_2013
GND
470
GND
470
22k
10uF
1N4148
10uF
10uF 10uF
VCC
VCC
1uF
22nF 3.3nF
1.4k 15.4k
0-DNP
0-DNP
DNP
470n
GND
GND
GND
3
1.2 Documentations techniques
Comme tout objet technologique, notre plate-forme de TP s’accompagne d’une documentation technique
abondante. Pour ne pas vous noyer sous la doc, nous vous en avons copié les extraits essentiels directement
dans le sujet, sous forme d’encadrés. Pour les plus curieux, nous vous avons aussi mis à disposition les
documents sur Moodle :
Motherboard.pdf décrit notre carte d’expérimentation et les différents composants présents sur la carte.
MSP430.pdf est le manuel générique de la puce MSP430. Le processeur est documenté au chapitre 3.
datasheet.pdf donne les détails techniques de notre modèle précis de msp430.
LCD.pdf décrit l’écran à crystaux liquides (qu’on utilisera à partir du TP2).
1.3 Vous avez dit microcontrôleur ?
Le MSP430FG4618 est un microcontrôleur, c’est à dire un System-on-Chip : une même puce qui contient à
la fois un processeur, de la mémoire, et des blocs périphériques. Si on zoome sur l’intérieur de la puce, on
a donc affaire à l’architecture illustrée ci-dessous.
Extrait de la documentation : msp430x4xx.pdf page 21
ACLK
Bus
Conv.
Peripheral
MAB 16-Bit
MDB 16-Bit
MCLK
SMCLK
Clock
System
Peripheral Peripheral
Peripheral
Peripheral Peripheral PeripheralRAM
Flash/
RISC CPU
16-Bit
JTAG interface
ACLK
SMCLK
ROM
JTAG
SMCLK
ACLK
Quartz
MAB 16-Bit
Peripheral
MDB 8-Bit
Commentaires
Les flèches repérées MAB et MDB sont respectivement le Memory Address Bus et
le Memory Data Bus (les mêmes que dans la micro-machine). Ce sont eux qui relient le processeur
au reste-du-monde, comme dans toute machine de von Neumann qui se respecte. Le bloc repéré
JTAG interface permet justement de venir intercepter tout ce qui passe sur le bus, et donc de
contrôler finement le comportement de la machine. C’est ce qu’on va faire dans ces TP.
Exercice 4
Branchez maintenant la sonde JTAG sur la carte. Vous devriez pouvoir choisir sans difficulté
entre les deux connecteurs JTAG.
1.4 Zoom sur le processeur
Si on se rapproche encore, on tombe sur l’architecture suivante :
4
Extrait de la documentation : msp430x4xx.pdf page 43
015
MDB MAB
16
Zero, Z
Carry, C
Overflow, V
Negative, N
16bit ALU
dst src
R8 General Purpose
R9 General Purpose
R10 General Purpose
R11 General Purpose
R12 General Purpose
R13 General Purpose
R14 General Purpose
R15 General Purpose
R4 General Purpose
R5 General Purpose
R6 General Purpose
R7 General Purpose
R3/CG2 Constant Generator
R2/SR/CG1 Status
R1/SP Stack Pointer
R0/PC Program Counter 0
0
16
Commentaire
Attention, ce schéma ne montre que la vue «externe», c’est à dire du point de vue
de l’utilisateur. Une «vue interne»
a
comporterait d’autres éléments nécessaires à l’implémentation
(automate de contrôle, registre d’instruction, etc).
Les seuls éléments représentés sur le schéma sont ceux qui sont accessibles au programmeur : les
16 registres architecturaux, ainsi que l’unité arithmétique et logique. Remarquez au passage que
les 4 premiers registres sont spécialisés pour un usage particulier (R0 est le compteur ordinal, etc).
À l’inverse les 12 autres registres sont généraux, on peut y mettre ce qu’on veut.
Nous vous avons reproduit en annexe (page 13 et suivantes) les passages correspondants de la
documentation. Vous n’en avez pas besoin pour l’instant, mais pensez à y revenir lorsque vous
voudrez des détails sur l’usage des registres.
a. voir par exemple les figures 9.2 et 9.3 du poly de cours (page 80)
Exercice 5
Allez lire la page
https://fr.wikipedia.org/wiki/Registre_de_processeur
et résumez, en
une phrase, la différence entre un registre spécialisé et un registre général.
5
1 / 17 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !