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:54]
fwiotte
fr:programmes_en_c_pour_communiquer_avec_le_dds [2016/03/02 11:22] (Version actuelle)
fwiotte
Ligne 3: Ligne 3:
 Exemple de programme en C écrit dans le microcontrôleur MSP430F169 ​ Exemple de programme en C écrit dans le microcontrôleur MSP430F169 ​
  
-Single-bit serial 2-wire mode (default mode) +Ce microcontrôleur dispose de 2 ports SPI. 
 + 
 +Mode SPI : Single-bit serial 2-wire mode (default mode) 
  
 initialisation et chargement des registres CSR et CFTW0: initialisation et chargement des registres CSR et CFTW0:
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 95: Ligne 97:
           while (i < num_byte);           while (i < num_byte);
         }         }
 +=== Interface avec un microcontrôleur ARM TI: le TM4C123GH6PM ===
 +
 +Exemple de programme en C écrit dans le microcontrôleur ARM TM4C123GH6PM
 +
 +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.1456912442.txt.gz · Dernière modification: 2016/03/02 10:54 par fwiotte