Comment programmer la carte Launchpad MSP430 ?

Table des Matières

MSP430 Programming MSP430F5529 LaunchPad board

Vous recherchez un microcontrôleur à très faible consommation pour optimiser vos applications de mesure portables ? Ne cherchez pas plus loin que la gamme MSP430 de Texas Instruments ! Avec plusieurs appareils dotés de divers ensembles de périphériques destinés à des applications spécifiques, la gamme MSP430 est une solution puissante et efficace pour répondre à vos besoins.

Qu'est-ce que le microcontrôleur MSP430 ?

Le micro-ordinateur monopuce de la série MSP430 est un processeur à signaux mixtes doté d'un ordinateur à jeu d'instructions réduit (RISC). Doté d'un puissant processeur RISC 16 bits, de registres 16 bits et de générateurs de constantes, il est conçu pour une efficacité maximale du code. De plus, grâce à cinq modes de faible consommation et à un oscillateur à commande numérique (DCO), vous pouvez prolonger la durée de vie de la batterie et bénéficier d'un temps de réveil rapide, passant des modes de faible consommation au mode actif en moins de 6 µs.

Caractéristiques du microcontrôleur MSP430

Le microcontrôleur de la série MSP430 présente les caractéristiques suivantes, qui en font un dispositif puissant et polyvalent pouvant être utilisé pour diverses applications :

Capacité de traitement élevée :

Le MSP430 est un microcontrôleur 16 bits qui utilise une architecture RISC (Reduced Instruction Set Computing) avec 27 instructions de base et un grand nombre d'instructions analogiques. Il dispose de sept modes d'adressage des opérandes source et de quatre modes d'adressage des opérandes destination. De plus, il dispose de nombreux registres et d'une mémoire de données intégrée qui peuvent participer à plusieurs opérations, garantissant ainsi une programmation efficace.

Vitesse de traitement rapide :

Le MSP430 peut atteindre un temps de cycle d'instruction de 40 ns lorsqu'il est piloté par un oscillateur à quartz de 25 MHz. La largeur de données de 16 bits, le cycle d'instruction de 40 ns et le multiplicateur matériel (qui peut effectuer des opérations de multiplication et d'addition) lui permettent de mettre en œuvre certains algorithmes de traitement du signal numérique, tels que la FFT.

Consommation électrique ultra-faible :

Le MSP430 consomme très peu d'énergie grâce à ses caractéristiques uniques qui permettent de réduire la tension de la puce et de contrôler la fréquence d'horloge. La plage d'alimentation en tension du MSP430 est comprise entre 1,8 et 3,6 V. Ainsi, à une fréquence d'horloge de 1 MHz, la consommation de courant de la puce n'est que de 165 μA, et la consommation d'énergie la plus faible en mode de conservation de la mémoire RAM n'est que de 0,1 μA.

Ressources riches sur puce :

Le microcontrôleur MSP430 dispose de nombreux périphériques intégrés tels que des temporisateurs, UART, SPI, I2C, ADC, DMA, ports E/S et contrôleur USB. Ces périphériques peuvent être combinés pour répondre à diverses exigences d'application. Par exemple, le temporisateur de surveillance assure une réinitialisation rapide en cas de défaillance du programme. Les temporisateurs 16 bits disposent d'une fonction de capture/comparaison et d'un grand nombre de registres de capture/comparaison qui peuvent être utilisés pour le comptage d'événements, la génération de synchronisation et la modulation PWM. Le convertisseur analogique-numérique matériel 10/12 bits offre un taux de conversion élevé, pouvant atteindre 200 kbps, ce qui le rend adapté à la plupart des applications d'acquisition de données. Il peut piloter directement jusqu'à 160 segments d'écran LCD et mettre en œuvre deux conversions N/A 12 bits.

Modèles de la gamme MSP430

Série MSP430x15x/16x/161x

La série MSP430x15x/16x/161x va encore plus loin avec deux temporisateurs 16 bits intégrés, un convertisseur A/N 12 bits rapide, un double convertisseur N/A 12 bits, une ou deux interfaces de communication série universelles synchrones/asynchrones (USART), I2C, DMA et 48 broches d'E/S. Et pour les applications gourmandes en mémoire et les besoins importants en pile C, la série MSP430x161x offre un adressage RAM étendu.

Série 430F2xx

La série 430F2xx est une gamme de microcontrôleurs à très faible consommation d'énergie basés sur une mémoire flash, fonctionnant dans une plage de tension comprise entre 1,8 V et 3,6 V et offrant des performances pouvant atteindre 16 MIPS. Elle comprend un oscillateur à très faible consommation d'énergie (VLO), des résistances internes de pull-up/pull-down et une option à faible nombre de broches.

La consommation ultra-faible est la suivante :

  • 0,1 μA RAM (mode veille)
  • 0,3 μA (mode veille prolongée) (VLO)
  • 0,7 μA (mode horloge en temps réel)
  • 220 μA/MIPS (mode actif)
  • Réveil rapide depuis le mode veille prolongée en moins de 1 μs.

Spécifications de l'appareil :

  • Options Flash : 1 Ko – 120 Ko
  • Options RAM : 128 octets – 8 Ko
  • Options GPIO : 10, 16, 24, 32, 48, 64 broches
  • Options ADC : SAR à pente 10 et 12 bits, ADC Σ-Δ 16 bits
  • Autres périphériques intégrés : comparateur analogique, multiplicateur matériel, DMA, SVS, DAC 12 bits, amplificateur opérationnel.

Série MSP430C3xx

La série 430C3xx est une ancienne série de dispositifs ROM ou OTP qui fonctionne dans une plage de tension comprise entre 2,5 V et 5,5 V et offre jusqu'à 32 Ko de ROM, 4 MIPS et FLL.

Sa consommation d'énergie ultra-faible est la suivante :

  • 0,1 μA RAM (mode veille)
  • 0,9 μA (mode horloge en temps réel)
  • 160 μA/MIPS (mode actif)
  • Réveil rapide du mode veille prolongée en moins de 6 μs.

Spécifications de l'appareil :

  • Options ROM : 2 Ko – 32 Ko
  • Options RAM : 512 octets – 1 Ko
  • Options GPIO : 14, 40 broches
  • Options ADC : SAR à pente de 14 bits
  • Autres périphériques intégrés : contrôleur LCD, multiplicateur matériel.

Série MSP430F5xx

La série 430F5xx est une nouvelle gamme de produits à mémoire flash qui offre la plus faible consommation électrique en fonctionnement et des performances pouvant atteindre 25 MIPS dans une plage de tension de 1,8 V à 3,6 V. Elle comprend un module de gestion de l'alimentation innovant optimisé pour la consommation électrique.

La consommation d'énergie ultra-faible est la suivante :

  • 0,1 μA RAM (mode veille)
  • 2,5 μA (mode horloge en temps réel)
  • 165 μA/MIPS (mode actif)
  • Réveil rapide du mode veille prolongée en moins de 5 μs.

Spécifications de l'appareil :

  • Options Flash : jusqu'à 256 Ko
  • Options RAM : jusqu'à 16 Ko
  • Options ADC : SAR 10 et 12 bits
  • Autres périphériques intégrés : USB, comparateur analogique, DMA, multiplicateur matériel, RTC, USCI, DAC 12 bits.

Comment programmer le MSP430 ?

Dans ce projet, nous utiliserons la carte MSP430F5529. Voici toutes les étapes à suivre :

  1. Choisissez une carte de développement ou un programmateur compatible avec le microcontrôleur MSP430. Parmi les options les plus courantes, on trouve le MSP430 LaunchPad et le MSP430 Programmer.
  2. Installez les outils logiciels nécessaires à la programmation du MSP430, tels que Code Composer Studio ou Energia.
  3. Connectez la carte de développement ou le programmateur à votre ordinateur via USB.
  4. Écrivez votre code dans un éditeur de texte ou un environnement de développement intégré (IDE) et enregistrez-le sous forme de fichier .c ou .cpp.
  5. Ouvrez votre code dans Code Composer Studio ou Energia et configurez les paramètres du projet selon vos besoins.
  6. Compilez le projet pour vérifier qu'il ne contient pas d'erreurs et générer un fichier binaire.
  7. Programmez le microcontrôleur MSP430 à l'aide du programmateur ou de la carte de développement et du fichier binaire généré.
  8. Testez votre code sur le MSP430 et effectuez les ajustements ou modifications nécessaires.

Outils requis

  • Code Composer Studio (CCS)
  • Émulateur MSP430 : MSP-FET, MSP430-JTAG-TINY-V2, MSP-GANG, MSP430-BSL.
  • Carte de développement MSP430 : MSP430 Launchpad, MSP-EXP430G2ET ou toute autre carte. 
  • Programmeur MSP430 : MSP430 Launchpad, MSP-FET, Black Magic Probe, etc.

Remarque : si vous n'avez pas accès à une carte de développement MSP430 physique, vous pouvez utiliser un émulateur MSP430 pour simuler le comportement du microcontrôleur sur votre ordinateur. Cet outil peut s'avérer utile pour déboguer et tester votre code avant de le programmer sur un appareil physique.

Étape 1 : Configuration du matériel

Connectez la carte de développement MSP430 Launchpad à votre ordinateur à l'aide du câble USB. La carte doit s'allumer et les voyants LED doivent clignoter. Cela indique que la carte est sous tension et fonctionne correctement.

Étape 2 : Installation de Code Composer Studio (CCS)

Téléchargez et installez Code Composer Studio (CCS) depuis le site officiel. CCS est un environnement de développement intégré (IDE) qui vous permet d'écrire, de compiler et de déboguer du code pour les microcontrôleurs MSP430.

Install and Setup Code Composer Studio
Install and Setup Code Composer Studio

Étape 3 : Création d'un nouveau projet

Ouvrez Code Composer Studio et créez un nouveau projet. Sélectionnez MSP430F5529 comme périphérique cible et choisissez le modèle de projet approprié. Donnez un nom à votre projet et enregistrez-le à l'emplacement souhaité.

Create a New Project in CCS
Create a New Project in CCS

Étape 4 : Écrire le code

Dans l'éditeur CCS, écrivez le code suivant pour faire clignoter la LED sur la carte de développement MSP430 Launchpad :

Write the blinking LED code in CCS Editor
Write the blinking LED code in CCS Editor

Voici le code LED clignotant :

				
					#include <msp430.h>

void delay(void)
{
    volatile unsigned int i;
    for (i = 0; i < 50000; i++);
}

int main(void)
{
    WDTCTL = WDTPW + WDTHOLD;       // Stop WDT
    P1DIR |= BIT0;                  // P1.0 output
    while(1)
    {
        P1OUT ^= BIT0;              // Toggle P1.0 using XOR operator
        delay();                    // Delay
    }
}

				
			

Étape 5 : Création et compilation du code

Cliquez sur le bouton Build dans CCS pour compiler votre code. Cela générera un fichier exécutable qui pourra être programmé sur le microcontrôleur MSP430.

Build Project in CCS to Compile the Code
Build Project in CCS to Compile the Code

Étape 6 : Programmation de la carte de développement MSP430 Launchpad

Connectez le programmateur MSP430 à votre ordinateur et à la carte de développement MSP430 Launchpad. Dans CCS, cliquez sur « Run > Load » (Exécuter > Charger) pour programmer le code sur le microcontrôleur. La LED sur la carte devrait clignoter conformément au code que vous avez écrit.

Programming the Code onto the MSP430 microcontroller
Programming the Code onto the MSP430 microcontroller

Étape 7 : Débogage et dépannage

Si vous rencontrez des erreurs ou des problèmes avec votre code, utilisez les outils de débogage de CCS pour localiser et corriger le problème. Vous pouvez également consulter la documentation et les ressources en ligne pour obtenir de l'aide et du soutien supplémentaires.

Exemples de code MSP430

Exemple de code ADC10

Ce code montre comment utiliser le module ADC10 (convertisseur analogique-numérique) du MSP430 pour mesurer la tension d'un capteur externe. Le code initialise le module ADC10, configure les broches GPIO et lit la valeur ADC.

				
					#include <msp430.h>

void init_ADC10(void)
{
    ADC10CTL0 = ADC10ON | ADC10SHT_2 | SREF_0 | ADC10IE;
    ADC10CTL1 = INCH_0 | SHS_0 | ADC10DIV_0 | ADC10SSEL_0 | CONSEQ_0;
    ADC10AE0 |= BIT0;
}

unsigned int read_ADC10(void)
{
    unsigned int result = 0;
    ADC10CTL0 |= ENC | ADC10SC;
    while(ADC10CTL1 & ADC10BUSY);
    result = ADC10MEM;
    ADC10CTL0 &= ~ENC;
    return result;
}

void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;
    init_ADC10();
    while(1)
    {
        unsigned int adc_value = read_ADC10();
        // Do something with adc_value
    }
}

				
			

Exemple de code PWM

Ce code montre comment utiliser le module Timer_A du MSP430 pour générer un signal PWM (modulation de largeur d'impulsion). Le code initialise le module Timer_A, configure les broches GPIO et définit le rapport cyclique du signal PWM.

				
					#include <msp430.h>

void init_Timer_A(void)
{
    TA0CTL = TASSEL_2 | MC_1 | ID_0;
    TA0CCR0 = 1000;
    TA0CCR1 = 500;
    TA0CCTL1 = OUTMOD_7;
}

void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;
    P1DIR |= BIT0;
    P1SEL |= BIT0;
    init_Timer_A();
    while(1);
}

				
			

Exemple de code UART

Ce code montre comment utiliser le module UART (Universal Asynchronous Receiver/Transmitter) du MSP430 pour communiquer avec un ordinateur ou un autre appareil via une communication série. Le code initialise le module UART, configure les broches GPIO et envoie et reçoit des données via l'interface UART.

				
					#include <msp430.h>

void init_UART(void)
{
    P1SEL |= BIT1 | BIT2;
    P1SEL2 |= BIT1 | BIT2;
    UCA0CTL1 |= UCSSEL_2;
    UCA0BR0 = 104;
    UCA0BR1 = 0;
    UCA0MCTL = UCBRS0;
    UCA0CTL1 &= ~UCSWRST;
}

void send_UART(char data)
{
    while(!(IFG2 & UCA0TXIFG));
    UCA0TXBUF = data;
}

char receive_UART(void)
{
    while(!(IFG2 & UCA0RXIFG));
    return UCA0RXBUF;
}

void main(void)
{
    WDTCTL = WDTPW + WDTHOLD;
    init_UART();
    while(1)
    {
        char received_data = receive_UART();
        // Do something with received_data
        send_UART('X');
    }
}

				
			

MSP430 contre MSP432

MSP430 et MSP432 sont deux familles de microcontrôleurs de Texas Instruments. La famille MSP430 est composée de microcontrôleurs 16 bits, tandis que la famille MSP432 est composée de microcontrôleurs 32 bits. Voici une comparaison de certaines de leurs principales caractéristiques :

FeatureMSP430MSP432
Architecture16-bit RISC32-bit ARM Cortex-M4F
Clock SpeedUp to 25 MHzUp to 48 MHz
Operating Voltage1.8 V to 3.6 V1.62 V to 3.7 V
Flash MemoryUp to 256 KBUp to 512 KB
RAMUp to 16 KBUp to 64 KB
ADC10-bit, up to 16 channels14-bit, up to 24 channels
DACNo2 x 12-bit
TimersUp to 6Up to 8
Communication InterfacesUART, SPI, I2CUART, SPI, I2C, USB, Ethernet, CAN
Package TypesDIP, QFP, BGADIP, QFP, BGA

En résumé, le MSP432 offre des performances supérieures et davantage de fonctionnalités que le MSP430, mais son coût est également plus élevé. Le MSP430 peut être un meilleur choix pour les applications simples et à faible consommation d'énergie, tandis que le MSP432 peut être plus adapté aux applications complexes et à hautes performances.

Abonnez-vous

Rejoignez notre liste d’abonnés pour obtenir mensuel blog des mises à jour, des nouvelles technologies, des études de cas. Nous n’enverrons jamais de spam, et vous pouvez vous désinscrire à tout moment.

Retour en haut

Instant Quote