-
2018-09-24
1
Traduit et adapté de l’anglais
EMB7000, Ch. 2
Les microcontrôleurs MSP430 de Texas Instrument
MSP430
Copyright 2009 Texas Instruments All Rights Reserved
Traduit et adapté de l’anglais
Objectifs d’apprentissage
• Survol d’une famille de microcontrôleurs typique– Famille MSP430 de Texas Instrument
• Outils de développement logiciel
-
2018-09-24
2
Processeurs de TI pour systèmes embarqués
3
32-bit ARMCortex™-M3
MCUs
16-bit ultra-low power
MCUsDSP
DSP+ARM ARM
Cortex-A8 MPUs
Stellaris®ARM® Cortex™-M3MSP430™
Sitara™ ARM® Cortex™-A8
& ARM9
C6000™ DaVinci™
video processors
TI Embedded ProcessorsDigital Signal Processors (DSPs)Microcontrollers (MCUs) ARM®-Based Processors
OMAP™
Software & Dev. Tools
Up to 100 MHz
Flash8 KB to 256 KB
USB, ENET MAC+PHY CAN, ADC, PWM, SPI
Connectivity, Security,Motion Control, HMI,
Industrial Automation
$1.00 to $8.00
300MHz to >1GHzCache,
RAM, ROMUSB, CAN,
PCIe, EMACIndustrial computing,
POS & portable data terminals
$5.00 to $20.00
Up to 25 MHz
Flash1 KB to 256 KB Analog I/O, ADCLCD, USB, RF
Measurement,Sensing, General
Purpose
$0.25 to $9.00
300MHz to >1Ghz +Accelerator
CacheRAM, ROM
USB, ENET, PCIe, SATA, SPIFloating/Fixed PointVideo, Audio, Voice,
Security, Conferencing$5.00 to $200.00
32-bit real-time
MCUs
C2000™Delfino™Piccolo™
40MHz to 300 MHz Flash, RAM
16 KB to 512 KB
PWM, ADC, CAN, SPI, I2CMotor Control, Digital Power,
Lighting, Ren. Enrgy
$1.50 to $20.00
Ultra Low power
DSP
C5000™
Up to 300 MHz+Accelerator
Up to 320KB RAMUp to 128KB ROM
USB, ADC McBSP, SPI, I2C
Audio, VoiceMedical, Biometrics
$3.00 to $10.00
Multi-coreDSP
C6000™
24.000 MMACS
CacheRAM, ROM
SRIO, EMACDMA, PCIe
Telecom test & meas, media gateways,
base stations
$40 to $200.00
Traduit et adapté de l’anglais
La famille TMS430
• Architecture RISC de 16 bits• Consommation de courant compatible avec l’alimentation par batterie ; aussi peu que :– 100 nA‐ en mode de sommeil profond– 0.7‐2.5 uA‐ en mode sommeil avec réveil par horloge– 100 uA/MHz en mode actif– Réveil en moins de 1‐5 us– Courant de fuite des lignes d’e/s
-
2018-09-24
3
Traduit et adapté de l’anglais
Plusieurs modes d’opération pour la conservation d’énergie
• La consommation en courant dépend essentiellement du nombre d’horloges actives et de leurs fréquences – Utilisation de modes de dormance pour l’optimisation
Mode CPU et horlogesActive CPU active. All enabled clocks
activeLPM0 CPU, MCLK disabled. SMCLK,
ACLK active
LPM1 CPU, MCLK disabled. DCO disabled if not used for SMCLK.
ACLK activeLPM2 CPU, MCLK, SMCLK, DCO
disabled. ACLK activeLPM3 CPU, MCLK, SMCLK, DCO
disabled. ACLK activeLPM4 CPU and all clocks disabled
Traduit et adapté de l’anglais
Horloges• Au moins 4 sources avec diviseurs de fréquence Cristal : basse (32KHz) et
haute fréquence (ex. 4 MHz) DCOCLK (Digitally‐Controlled Oscillator clk) :
Interne calibrée à haute fréquence VLOCLK (Very Low‐power clk) :
Interne de ~12kHz
• Trois signaux utilisables MCLK (Main clk) et SMCLK (Sub‐main clk)
toutes sources possibles; horloges du CPU et des périphérique quand le CPU est dormant
ACLK : Auxiliary clock (conserve l’énergie)
-
2018-09-24
4
Traduit et adapté de l’anglais
Horloges actives et modes d’opérationMode CPU et horlogesActive CPU active. All enabled clocks
activeLPM0 CPU, MCLK disabled. SMCLK,
ACLK active
LPM1 CPU, MCLK disabled. DCO disabled if not used for SMCLK.
ACLK activeLPM2 CPU, MCLK, SMCLK, DCO
disabled. ACLK activeLPM3 CPU, MCLK, SMCLK, DCO
disabled. ACLK activeLPM4 CPU and all clocks disabled
43
BOR
POR
Active Mode
PUC
LPM3.5
LPM4.5LPM0
LPM1
LPM2
LPM3
LPM4
Traduit et adapté de l’anglais
Usage des modes d’opérationMode d’opération Impact Courant typique Usage typique
Normal (« Active ») Dépend de l’horloge ~2‐3 mA typique Opération normale
Somnolant (« Doze »)
CPU : ralenti , Périphériques : normal
35‐75% du courant en mode normal
Applications utilisant les périphériques avec peu de traitement
Repos (« idle ») –LPM0‐LPM3
CPU : arrêtPériphériques : variable
10‐25% du courant en mode normal
Attente d’un évènement sur un périphérique
Dormant (« sleep ») –LPM4
CPU : arrêtPériphériques : arrêt ~100 nA
Attente d’un évènement externe peu fréquent
Sommeil profond (« Deep Sleep ») –LPM4.5 ‐5
LPM4 avec RAM non conservée ~
-
2018-09-24
5
Traduit et adapté de l’anglais
La source affecte la consommation d’énergie
Clock Frequency Precision Current Draw Crystal Required
High-FrequencyDCO 100kHz – 60MHz Low 60uA
HFXT1/ XT2
4 - 32MHz High 260uA/12MHz X
MODOSC 5MHz n/a n/aLow-Frequency
LFXT1 32kHz High 300nA XVLO ~10kHz Low 60nA
REFO 32kHz Medium/High 3uA
RTC
41
MSP430 Generations
6
Category 2xx 4xx 5xxCPU Clock (max) 16MHz 8MHz 25MHzActive Current(@ 3.0V, typical)
515uA @ 1MHz4.2mA @ 8MHz9.1mA @ 16MHz
600uA @ 1MHz4.8mA @ 8MHzN/A
290uA @ 1MHz1.84mA @ 8MHz 230 uA/MHz8.90mA @ 25MHz
120KB / 8KB (Flash / RAM) 120KB / 8KB (Flash / RAM) 256KB / 16KB (Flash / RAM)
Wake-up Time From LPM3 1us 6us 5usStandby LPM3 Current 0.9 – 1.1uA 1.1 – 2.5uA 1.9uA (RTC, WDT, SVS enabled) LPM4 Current 0.1uA 0.1uA 1.2uA (LPM4) / 0.1uA (LPM4.5)Flash ISP Minimum DVCC 2.2V 2.7V 1.8VPort I/O Interrupt Capability P1/P2 P1/P2 P1/P2
Some devices also P3/P4Prog. Port Pin Drive Strength N/A N/A All port pinsProg. Pull-ups / Pull-downs All port pins N/A All port pins12-bit A/D Internal Reference Current
500 uA 500 uA 100 uA*
12-bit A/D Active Conversion Current
800 uA 800 uA 150 uA*
Available MCLK Sources DCO LFXT1XT2 (if available)VLO
FLLLFXT1XT2 (if available)
FLLLFXT1 / XT1
UCS XT2 (if available)VLO REFO
Available FLL Reference Clocks
N/A LFXT1 LFXT1, REFO, & XT2 (if present)
* 2xx, 4xx – ADC12; 5xx - REF & ADC12_A
-
2018-09-24
6
MSP430 Roadmap
7
100+ devices2xx-Catalog• 16 MIPS• 120 kB Flash• 8 kB RAM• 500 nA Standby• 1.8 – 3.6V
75+ devices1xx-Catalog• 8MIPS• 60 kB Flash• 10 kB RAM• 1.8 – 3.6 V
G = Value LineF = FlashFR = FRAM
100+ devices4xx: LCD• 16 MIPS• 120 kB Flash• 8 kB RAM• LCD Controller, 160
segments• 1.8 – 3.6V
F23x0
The New Generation5xx-6xx• 25MIPS• 256 kB Flash• 16 kB RAM• 1.8 – 3.6V• FRAM, USB, RF• 6xx: LCD Controller• 160 uA/MIPS
ProductionDevelopment
Device
F23x-F24x
F261xF241x
F20xxF21x1
F21x2F22xx
F13x-F14xF15x-F16x
F541x F543xA
Fx42x0Fx42x
F44xFx43x
FG461x
FE42x2
F47x4Fx47x
F43x
F23x0
F11xxF12xx
F41x F41x2
FR57xxFRAM
F550x USB
F51x2Lighting
L0920.9V Native
F53xxGen Purpose
F6/563xBGM, Catalog
G2xx1
F552xUSB
CC430RF
G2xx2G2xx5
F471xx
Traduit et adapté de l’anglais
La famille MSP430 : Architecture générale
• Bus de données interne de 16 bits et externe de 8 bits• Jusqu’à 20 bits d’espace d’adressage• Interface JTAG (Joint Test Action Group) pour la programmation/débogage (Spy‐by‐wire)• Site web de TI
-
2018-09-24
7
Traduit et adapté de l’anglais
La famille TMS430 : Le CPU
• Architecture RISC à architecture de Von Neumann (mémoire commune pour les instructions et les données)
• Seize registres de 16‐20‐bits– 4 registres sont à fonctions dédiées
(PC, SP, SR, et générateur de constantes)– 12 sont à usage général (R4 ‐R15)
• Unité arithmétique et logique (ALU):– Addition, soustraction, comparaison et
opérations logiques (AND, OR, XOR) ;– Sémaphores pour débordement, zéro,
négatif et bit de retenue• Architecture optimisée pour les
compilateurs du langage c
Traduit et adapté de l’anglais
La famille TMS430 : 27 Instructions de base
• Moins d’instructions => décodeur d’instructions simplifié => consommation d’énergie plus faible
-
2018-09-24
8
Traduit et adapté de l’anglais15
• Remplacées par des instructions de base dans le programme d’assemblage du code
La famille TMS430 : 24 instructions émulées
Traduit et adapté de l’anglais
La famille TMS430 : 51 instructions au total
-
2018-09-24
9
Traduit et adapté de l’anglais
La famille TMS430 : Mode d’adressage
• 7 modes pour la source :
• 4 modes pour la destination :– Register mode; Indexed mode; Symbolic mode; Absolute mode.
5xx + RF faible puissance = SoCCC430
CI Radio
RF
Low‐power RF SoC
•Ultra‐low power •High analog performance•High level of integration• Ease of development• Sensor interface
•High sensitivity• Low current consumption• Excellent blocking performance• Flexible data rate & modulation format•Backwards compatible
MSP4305xx MCU
Transmetteur RF faible puissance
MSP430 MCU
Processeur pourapplication et protocole RF
• TI offre aussi un portfolio basé sur le uC 8051 d’Intel ou un ARM, offrant des solutions qui couvrent les protocoles VelociTI (propriétaire), Zigbee, Bluetooth et Wi‐Fi à 2.4 MHz (CC2xxx et CC3xxx)
-
2018-09-24
10
Portfolio partiel de produits LPRF
Software
ProtocolProcessor
Systemon Chip
Transceiver
Transmitter
RFFront End
Narrowband Proprietary
Sub 1 GHz
ZigBee / IEEE802.15.4
2.4 GHzProprietary
CC111x
CC430CC2431
CC2530
CC2430
CC2480
CC2590CC2591
CC1150CC1070 CC2550
CC1020CC1101
CC2520 CC2500
CC251x
SimpliciTI
SimpliciTI TIMACZ-Stack
SimpliciTI
CC1100E
DesignDiagramme d’un exemple d’application LPRF
MCUMSP430
RF TransceiverCC1101, C1020,
CC2500,CC2480*, CC2520
AntennaLPRF System on Chip
CC111x / CC251x / CC243x / CC253x / CC430
PA \ LNACC2590CC2591
Power Supply
TPS76933
SPI
Minimum BOM:• LPRF Système sur Puce or
MSP430 MCU + transmetteur RF
• Antenne (PCB) & Composants d’adaptation RF
• Alimentation à batterie ou autre
Composants additionnels :• CC259x extendeur de portée
• Antenne externe (flexible (whip) ou monopuce (chip)) pour une meilleure performance RF
*ZigBee network processor
-
2018-09-24
11
Traduit et adapté de l’anglais
La famille TMS430 : Périphériques intégrés
• Choix varié CAN 10/12 bits SAR, 16 bits Sigma
Delta CNA 12 bits Comparateur analogique Contrôleur LCD Moniteur d’alimentation Amplificateurs opérationnels Temporisateurs à 16 et 8 bits LDO/PMM RF
Chien de garde UART/LIN I2C SPI IrDA USB Multiplieur en matériel Contrôleur DMA Capteur de température Horloge temps‐réel
Traduit et adapté de l’anglais
MSP430F5438A Block Diagram
22
-
2018-09-24
12
Traduit et adapté de l’anglais 23
La famille TMS430 : L’espace d’adressage
• Distribution uniforme:– Couvre la mémoire (RAM et Flash/ROM), les registres spécialisés (SFRs), les
registres dédiés aux périphériques et les vecteurs d’interruption.
– Carte :Memory Address Description Access
End: 0FFFFhStart: 0FFE0h
Interrupt Vector Table Word/Byte
End: 0FFDFh Flash/ROM
0F800h Start *:01100h
Word/Byte
010FFh End *:0107Fh Information Memory
Start: 01000h (Flash devices only) Word/Byte
End: 0FFFhStart: 0C00h
Boot Memory (Flash devices only) Word/Byte
09FFh End *:027Fh RAM
Start: 0200h Word/Byte
End: 01FFhStart: 0100h
16-bit Peripheral modules Word
End: 00FFhStart: 0010h
8-bit Peripheral modules Byte
End: 000FhStart: 0000h
Special Function Registers Byte
Traduit et adapté de l’anglais 24
La famille TMS430 : sources d’interruption• Vecteurs situés en haut de l’espace mémoire (16 deniers mots de la mémoire
Flash/ROM): 0FFE0h ‐ 0FFFEh ;• La priorité de service est implicite en partant de la plus haute adresse
Reset
-
2018-09-24
13
Traduit et adapté de l’anglais
Kits de démarrage (Launchpad)
Embedded Emulation
6-pin eZ430 Connector
Part and Socket
Crystal Pads
Power Connector
Reset ButtonLEDs and JumpersP1.0 & P1.6
P1.3 Button
Chip Pinouts
USB EmulatorConnection
Famille G2x
•16kB Flash• 512B RAM• 2 Timer_A3’s• 8 Ch. Comp_A+• 8 Ch. ADC10• USCI
•
-
2018-09-24
14
Traduit et adapté de l’anglais
Traduit et adapté de l’anglais
Booster packs
• Modules qui s’enfichent sur le Launchpad et permettent d’augmenter sa fonctionnalité– Permettent le prototypage et la validation rapides– Inspirés des shields de l’Arduino
-
2018-09-24
15
Traduit et adapté de l’anglais
• Le MSP430 USB stick peut servir à concevoir des projets à base de microcontrôleurs F2012 et F2013
• Un projet peut être développé comme système autonome ou comme partie d’un système plus grand en y intégrant le circuit imprimé détachable contenant le microcontrôleur
• Le port USB fournit suffisamment d’énergie pour opérer le MSP430
• 20 $!
Kits de démarrage eZ430‐F2xx 1/2
Traduit et adapté de l’anglais
• Toutes les 14 broches d’entrées/sorties du microcontrôleur MSP430F2013 sont accessibles sur le circuit imprimé détachable
• Une des broches d’e/s est reliée à une diode LED,• Caractéristiques du microcontrôleur MSP430F2013 et
périphériques intégrés :– Performance de 16‐MIPS– Convertisseur A‐N Sigma‐Delta avec 16 bits de résolution– Compteur/temporisateur de 16 bits– Temporisateur de surveillance (« Watchdog timer »)– Détecteur de sous‐tension d’alimentation (« Brownout detector »)– Module sériel synchrone supportant SPI and I2C– 5 modes d’opération à faible courant (0.5 μA en mode standby)
Kits de démarrage eZ430‐F2xx 2/2
-
2018-09-24
16
Traduit et adapté de l’anglais
Kits de démarrage eZ430‐RF2500 1/2• Outil de développement pour le microcontrôleur MSP430F2274 et le
transmetteur sans fil 2.4 Ghz CC2500;• Circuit imprimé cible Z430‐RF2500T détachable : peut être utilisé seul,
intégré dans un système, ou avec l`interface de débogage USB;• Peut communiquer avec un PC par le biais du UART intégré dans le
MSP430.• Alimentation autonome ou via le port USB• 50 $
Traduit et adapté de l’anglais
Kit de démarrage eZ430‐RF2500 2/2
• Performance de 16‐MIPS;• Convertisseur A‐N à approximations successives avec 10 bits de
résolution et fréquence d`échantillonnage jusqu’à 200 ke/s • Compteur/temporisateur de 16 bits• 2 amplificateur opérationnels intégrés• Compteur/temporisateur de 16 bits• Chien de garde (« Watchdog timer »)• Module sériel universel supportant UART/LIN, (2) SPI, I2C, or IrDA• Taux de transfert de données programmable jusqu’à 500 kb/s• 5 modes d’opération à faible courant (0.7 μA en mode standby)
• Transmetteur RF 2.4‐GHz externe (CC2500)
-
2018-09-24
17
Traduit et adapté de l’anglais
MSP‐EXP430F5438• Easy power select
– USB, JTAG, Battery• USB communication• Microphone• Filtered PWM audio output
– Active, selectable gain– Headphone compatibility
• 2‐axis accelerometer• Dot‐matrix LCD (138x110)
– Integrated backlight• 1 x 5‐direction switch • 2 x push‐button switches • RF Interface
– CCxxxx EVMs– EZRF I/F (6 & 18‐ pin)
Please ensure 2 x AA batteries are in place on the back of the board
Load your F5438A into the socket in the appropriate orientation
23
Traduit et adapté de l’anglais
• Connector for CC1100/CC1101/CC2500/CC2420 EMs
• Includes support for the CC2480 ZigBee Processor
• SW examples and function library available at www.ti.com/ccmsplib
MSP-EXP430FG4618
79
-
2018-09-24
18
Traduit et adapté de l’anglais
Et plus encore… Le kit chronos permet de faire du
développement à base de 5xx tout en ayant une montre, un altimètre, un thermomètre, un compteur de rythme cardiaque et un transmetteur sans-fil quant on ne s’en sert pas!
8 ans d’autonomie de batterie avec un cycle d’éveil de 5%
75
Traduit et adapté de l’anglais36
Development de code
• Demande un ordinateur hôte et une carte contenant le microcontôleur cible
• Un environnement de développement logiciel– Code Composer Studio (basé sur Eclipse)– IAR– GNU…
Development environment Target processor
-
2018-09-24
19
Traduit et adapté de l’anglais
Cycle de développement logiciel
Compilateur
Editeur de liens
Fichier c Fichier c Fichierasm
Fichier de code object
Fichier de code object
Fichier de code object
Fichier de code exécutable
Assembleur
Librairie
Phase de codage par l’hôte
Débogueur
Phase de validation dans la cible
• Demande des logiciels qui s’exécutent sur un ordinateur hôte– Compilateur et assembleur
pour le MCU ciblé– Éditeur de liens pour générer
le code exécutable final du MCU ciblé
– Débogeur pour surveiller l’exécution sur le microcontrôleur
• L’exécution peut aussi être simulée sur l’hôte
Traduit et adapté de l’anglais
EDITOR
ASSEMBLER
LINKER
LOCATOR
HEX Conversion
source file (*.s)
relocatable object file (*.o)
relocatable linked object file
absolute executable file (*.axf)
list file (*.lst)
linker map file (*.map)
locator map file (*.map)
Other object filesfrom assembler
or HLL compilers
Target
Exemple de processus global de génération de code• Des fichiers intermédiaires
sont générés• Des fichiers d’information
sont aussi générés • Un fichier de configuration
est aussi requis pour l’éditeur de liens
-
2018-09-24
20
Traduit et adapté de l’anglais
Exécution du code généré
EDITOR
ASSEMBLER
LINKER/LOCATOR
ADuC7026Simulator
source file (*.s)
relocatable object file (*.o)
absolute executable file (*.axf)
ULink JTAG Pod
list file (*.lst)
map file (*.map)
Other object filesfrom assembler
or HLL compilers
ADuC7026Hardware
HEXconversion
DeviceProgrammer
JTAG PODDevice Simulator
Target hardware
Target Device