Outils pour utilisateurs

Outils du site


votre temps local: :: ()

heure officielle (en France) : ::(TZ:)

Heure UTC client: :: Offset client: s - delai: ms - - timeZone: Heure UTC: ::
fr:programmes_en_c_pour_communiquer_avec_le_dds

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
fr:programmes_en_c_pour_communiquer_avec_le_dds [2016/03/02 10:56]
fwiotte
fr:programmes_en_c_pour_communiquer_avec_le_dds [2016/03/02 11:22] (Version actuelle)
fwiotte
Ligne 2: Ligne 2:
  
 Exemple de programme en C écrit dans le microcontrôleur MSP430F169 ​ Exemple de programme en C écrit dans le microcontrôleur MSP430F169 ​
 +
 +Ce microcontrôleur dispose de 2 ports SPI.
  
 Mode SPI : Single-bit serial 2-wire mode (default mode)  Mode SPI : Single-bit serial 2-wire mode (default mode) 
Ligne 39: Ligne 41:
 Ci-dessous le sous programme d'​initialisation des ports du microcontrôleur et du SPI pour le MSP430F169 : TI fourni de nombreux exemples de codes de bases pour configurer les modes SPI, I2C et utiliser la mémoire Flash: {{:​fr:​slac015p.zip|}} Ci-dessous le sous programme d'​initialisation des ports du microcontrôleur et du SPI pour le MSP430F169 : TI fourni de nombreux exemples de codes de bases pour configurer les modes SPI, I2C et utiliser la mémoire Flash: {{:​fr:​slac015p.zip|}}
       ​       ​
-      ​#​include ​ <​msp430x16x.h>​ +      ​void_init_SPI(void)
-      void DDS_quartz_oscillator_init(void)+
       {       {
         BCSCTL1 |= XTS;               ACLK= LFXT1= HF XTAL          BCSCTL1 |= XTS;               ACLK= LFXT1= HF XTAL 
Ligne 65: Ligne 66:
       }       }
  
-BCSCTL1 |= XTS; et BCSCTL2 |= SELM_3; ​ permet d'​être en mode HF XTAL le MSP430 fonctionnera à 8MHZ au lieu+BCSCTL1 |= XTS; et BCSCTL2 |= SELM_3; ​ permet d'​être en mode HF XTAL le MSP430 fonctionnera à 8MHz au lieu
 de 32KHz par défaut. de 32KHz par défaut.
 +
                ​MSP430F169                ​MSP430F169
              ​-----------------              ​-----------------
Ligne 97: Ligne 99:
 === Interface avec un microcontrôleur ARM TI: le TM4C123GH6PM === === Interface avec un microcontrôleur ARM TI: le TM4C123GH6PM ===
  
-Exemple de programme en C écrit dans le microcontrôleur ​MSP430F169 ​+Exemple de programme en C écrit dans le microcontrôleur ​ARM TM4C123GH6PM
  
-Mode SPI : Single-bit serial ​2-wire mode (default ​mode) +Ce microcontrôleur dispose de 4 ports SPI. Horloge par défaut = 80MHz 
 + 
 +Mode SPI : Single-bit serial ​3-wire mode   
 + 
 + 
 +la routine pour le chargement des données en mode SPI de l'ARM TM4C123GH6PM : 
 + 
 +   int i=0; 
 +   ​SSI0_DR_R =  instruction;​  
 +    while( num_byte ​) 
 +     { 
 +          while(!(SSI0_SR_R & SSI_SR_TNF)) {} // SPI0 du TM4C123GH6PM 
 +          SSI0_DR_R =  data >>​(num_byte-1-i)*8;​ 
 +          num_byte--; ​           
 +     } 
 +     
 +    while( !( SSI0_SR_R & SSI_SR_TNF ) ) 
 +          { 
 +            ; 
 +          } 
 +La routine init (SPI) pour l'ARM TM4C123GH6PM:​  
 + 
 +    // Enable Peripheral SSI0 
 +    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);​ //Enable GPIO port A SSI0. 
 +    SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);​ 
 +    GPIOPinConfigure(GPIO_PA2_SSI0CLK);​  
 +    GPIOPinConfigure(GPIO_PA3_SSI0FSS);​ 
 +    GPIOPinConfigure(GPIO_PA5_SSI0TX);​ 
 +    GPIOPinTypeSSI(GPIO_PORTA_BASE,​ GPIO_PIN_5 | GPIO_PIN_3 | GPIO_PIN_2);​ 
 +    //​GPIOPinTypeSSI(GPIO_PORTA_BASE,​ GPIO_PIN_5 | GPIO_PIN_2);​ 
 +    SSIConfigSetExpClk(SSI0_BASE,​ SysCtlClockGet(),​ SSI_FRF_MOTO_MODE_0,​ 
 +    SSI_MODE_MASTER,​ 10000000, 8);     
 +    SSIEnable(SSI0_BASE);​ // Enable the SSI  
 +     
 +Exemple d'​initialisation d'un PORT sur l'ARM TM4C123GH6PM ​    
 +  //void PortB_Init(void) 
 +  volatile unsigned long delay; 
 +  SYSCTL_RCGC2_R |= 0x00000002; ​    // 1) activate clock for Port B 
 +  delay = SYSCTL_RCGC2_R; ​          // allow time for clock to start 
 +  GPIO_PORTB_AMSEL_R = 0x00;        // 3) disable analog on PB 
 +  GPIO_PORTB_PCTL_R = 0x00000000; ​  // 4) PCTL GPIO on PB0 
 +  GPIO_PORTB_DIR_R |= 0xFF;         // 5) PB0-PB7 is out 
 +  //​GPIO_PORTB_AFSEL_R &= ~0x01; ​     // 6) disable alt funct on PB0 
 +  GPIO_PORTB_AFSEL_R &= ~0xFF; ​     // 6) disable alt funct on PB0-PB7 
 +  GPIO_PORTB_DEN_R |= 0xFF;         // 7) enable digital I/O on PB0-PB7 
 +   
 +Exemple d'​initialisation d'un PORT pour la communication série USB-UART0  
 +sur l'ARM TM4C123GH6PM: ​   
 + 
 +  //void init_UART0(void) 
 +  SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);​ 
 +  SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);​ 
 +  GPIOPinConfigure(GPIO_PA0_U0RX);​ 
 +  GPIOPinConfigure(GPIO_PA1_U0TX);​ 
 +  GPIOPinTypeUART(GPIO_PORTA_BASE,​ GPIO_PIN_0 | GPIO_PIN_1);​ 
 +  UARTConfigSetExpClk(UART0_BASE,​ SysCtlClockGet(),​ 9600,                       
 +  (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE));​ 
 +   
 +Exemple de déclaration et d'​initialisation des registres mot de fréquences:​ 
 +   
 +  //​AD9852//​ 
 +  int  FTW0_ADRESS = 0x02;  
 +  //unsigned long long FTW0 = 0x17E4B17E4B1;​ //​1.75MHz@300MHz clk 
 +   ​unsigned long long FTW0; 
 +  //float FTW0 = 0x17E4B17E4B1;​ //​1.75MHz@300MHz clk 
 +  int  FTW0_NUM_BYTE = 0x06; 
 + 
 +  //​AD9858//​ 
 +  int  FTW1_ADRESS = 0x03;  
 +  unsigned ​ long FTW1 = 0x418937; //​1MHz@1000MHz clk 
 +  int  FTW1_NUM_BYTE = 0x04; 
 + 
 +  //​AD9858//​ 
 +  int  CFR_ADRESS = 0x00;  
 +  unsigned ​ long CFR = 0x79; // MSB first 
 +  int  CFR_NUM_BYTE = 0x04;
fr/programmes_en_c_pour_communiquer_avec_le_dds.1456912586.txt.gz · Dernière modification: 2016/03/02 10:56 par fwiotte