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: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:dds [2016/03/02 10:48]
fwiotte
fr:dds [2018/03/23 14:39] (Version actuelle)
fwiotte [Les dernières applications DDS au LPL]
Ligne 12: Ligne 12:
 [[fr: programmes en C pour communiquer avec le DDS]] [[fr: programmes en C pour communiquer avec le DDS]]
  
-**Exemple de programme en C écrit dans le microcontrôleur MSP430F169** +[[fr: Nouveau développement 2018-> double DDS sorties ​pour piège RF programmation QSPI]] 
- +===== Un schéma de base avec l'​AD9959 =====
-initialisation et chargement des registres CSR et CFTW0: +
- +
-      int  CSR_ADDRESS = 0x00;   ​AD9959 CSR adresss Byte +
-      int CSR_NUM_BYTE = 0x01;   CSR nombre d'​octet du registre +
-      long CSR0 = 0x10;          AD9959 du channel 0 MSB first SPI par défaut +
-          +
-      int  FTW_ADDRESS = 0x04;   ​AD9959 FTW adresss Byte +
-      int FTW_NUM_BYTE = 0x04;   FTW nombre d'​octet du registre +
-      long FTW0 = 0x28F5C28F; ​   frequence en hex fout x2^32/​fclock +
-          +
-dans le main: +
-      P4OUT = 0x40;          AD9959 master reset bit de validation du MSP430 +
-      P4OUT = 0x00;          AD9959 master set   bit de validation du MSP430 +
-       +
-      write_serial_port(CSR_ADDRESS,​ CSR0, CSR_NUM_BYTE);​ +
-      P5OUT = 0x40;          I/O update du DDS bit de validation du MSP430  +
-      P5OUT = 0x00;          I/O update du DDS bit de validation du MSP430 ​  +
-       +
-      write_serial_port(FTW_ADDRESS,​ FTW0, FTW_NUM_BYTE);​ +
-      P5OUT = 0x40;          I/O update du DDS bit de validation du MSP430  +
-      P5OUT = 0x00;          I/O update du DDS bit de validation du MSP430 ​  +
- +
- +
-**Commentaires sur le programme:​** +
- +
-on fait un RESET du DDS (pin 3), on charge les données de chaque registre au travers du port SPI write_serial_port... +
-Puis on réalise un I/O UPDATE pin 46 du DDS pour la validation et le transfert des données. +
-Ce bout de programme permet de charger le channel 0 avec une fréquence de 80MHz et une amplitude par défaut FULL DAC. +
- +
-I/O_UPDATE is synchronous to the SYNC_CLK (Pin 54) = Master clock/4. +
-Voir figure 40 du datasheet du DDS. +
- +
-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 DDS_quartz_oscillator_init(void) +
-      { +
-        BCSCTL1 |= XTS;               ACLK= LFXT1= HF XTAL  +
-        BCSCTL2 |= SELM_3; ​           MCLK = LFXT1 (safe) pin 8,9 du MSP430 +
-        P1SEL = 0x00;                 P1 I/O select +
-        P2SEL = 0x00;                 P2 I/O select +
-        P3SEL = 0x00;                 P3 I/O select +
-        P4SEL = 0x00;                 P4 I/O select +
-        P5SEL = 0x0A;                 ​P5.1,​3 SPI option select +
-        P6SEL = 0x00;                 P6 I/O select +
-        P1DIR = 0xFF;                 ​P1.output direction +
-        P2DIR = 0xFF;                 P2 output direction +
-        P3DIR = 0xFF;                 P3 output direction +
-        P4DIR = 0xFF;                 P4 output direction +
-        P5DIR = 0xFF;                 P5 output direction +
-        P6DIR = 0xFF;                 P6 output direction +
-        ME2 |= USPIE1; ​               Enable USART1 SPI +
-        UCTL1 |= CHAR + SYNC + MM;    8-bit SPI Master **SWRST** +
-        UTCTL1 = CKPH + SSEL1 + STC;  SMCLK delayed, 3-pin +
-        UBR01 = 0x2;                  ACLK/2 for baud rate +
-        UBR11 = 0x0;                  ACLK/2 for baud rate +
-        UMCTL1 = 0x0;                 Clear modulation +
-        UCTL1 &= ~SWRST; ​             Initialize USART state machine +
-      } +
- +
-BCSCTL1 |= XTS; et BCSCTL2 |= SELM_3; ​ permet d'​être en mode HF XTAL le MSP430 fonctionnera à 8MHZ au lieu +
-de 32KHz par défaut. +
-               ​MSP430F169 +
-             ​----------------- +
-         /​|\| ​             XIN|- +
-          | |                 | HF XTAL (455k - 8Mhz) +
-          --|RST ​         XOUT|- +
-            |                 | +
-            |             ​P5.4|-->MCLK = XTAL +
- +
-D'​après : +
-//  M. Buccini +
-//  Texas Instruments Inc. +
-//  Feb 2005 +
-//  Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.21A    +
-   +
-la routine pour le chargement des données en mode SPI du MSP430F169 : +
- +
-        void write_serial_port(int instruction,​ long data, int num_byte) +
-        { +
-         int i=0; +
-   +
-         ​TXBUF1 = instruction;​ +
-          do +
-         { +
-         ​TXBUF1 = data >>​(num_byte-1-i)*8+
-         ​i++;​ +
-         } +
-          while (i < num_byte);​ +
-        } +
-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 +
- +
-====== Un schéma de base avec l'​AD9959 ​======+
 Parce qu'un schéma vaut mieux qu'un long discours! Parce qu'un schéma vaut mieux qu'un long discours!
 Cette carte est générique,​ et grâce au port SPI sur la carte on Cette carte est générique,​ et grâce au port SPI sur la carte on
Ligne 151: Ligne 20:
 {{:​fr:​carte_ad9959.png?​200|}} {{:​fr:​carte_ad9959.png?​200|}}
  
-====== La carte électronique pour l'​habillage du piège RF=====+==== La carte électronique pour l'​habillage du piège RF====
 ===== BEC de Rubidium ====== ===== BEC de Rubidium ======
 {{:​fr:​dds_ad9959_bec.pdf|}} {{:​fr:​dds_ad9959_bec.pdf|}}
Ligne 174: Ligne 43:
 Document complet Document complet
 {{:​fr:​cartes_dds_ad9858_et_ad9852_sur_carte_ni_dio_32hs.pdf|}} {{:​fr:​cartes_dds_ad9858_et_ad9852_sur_carte_ni_dio_32hs.pdf|}}
-====== Le programme sous windows avec interface CVI ======+===== Le programme sous windows avec interface CVI ===== 
 + 
 +Une routine sous Windows CVI à été développée avec une liaison USB-Série (un pont USB)  
 +pour charger les données via un PC.
  
-Une routine sous Windows CVI à été développée avec une liaison USB-Série (un pont USB). 
 Ci-dessous le programme en C dans le microcontrôleur qui permet le transfert des données à une vitesse maximale de 1Mb Ci-dessous le programme en C dans le microcontrôleur qui permet le transfert des données à une vitesse maximale de 1Mb
   data1 => données séries venant du pont USB-serial.puce FTDI    data1 => données séries venant du pont USB-serial.puce FTDI 
Ligne 212: Ligne 83:
  
 {{:​fr:​20151027electroniqueatomesfroidslpl2-a0.pdf|}} {{:​fr:​20151027electroniqueatomesfroidslpl2-a0.pdf|}}
 +
 +{{ :​fr:​geneyig.pdf |}}
 +
 +{{ :​fr:​notebusdds.pdf |}}
 +
 +
fr/dds.1456912096.txt.gz · Dernière modification: 2016/03/02 10:48 par fwiotte