Outils pour utilisateurs

Outils du site

Traductions de cette page:

votre temps local: :: ()

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

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

Panneau latéral

  • Corrélateurs
  • Bruits inhérent au numérique : bruit de phase, gigue, stabilité temporelle des circuits numériques
  • Compteur à intervalle de temps
  • Détection synchrone
  • Choix ADC/DAC pour applications TF
  • Mesure Sphi(f) et sigma_y(tau)
  • Servo controls (Liens fibrés, …)
  • Manipulation d'objets et fréquences (atomes froids, spectral hole burning, ions ….)
  • Datations « officielles »
  • Compteurs, avec et sans temps morts.
  • Logiciel / Pilotes
  • IP cores (FPGA)
  • Chipscope
fr:exemple_de_developpement_autour_d_un_dds_l_ad9959

Je vais présenter un développement électronique à base d'un DDS, l'AD9959.

Ce dernier à été utilisé dans le cadre de l'électronique des stations répétitrices développées pour le projet REFIMEVE+.

Au laboratoire LPL pour une équipe de recherche travaillant sur un condensant d'atomes nous avons développé une électronique à base de plusieurs DDS (AD9959),voir ci-dessous:

Projet Habillage piège RF quadrupolaire à base de DDS

L'objectif de l'électronique développée était d'envoyer de la RF de polarisation circulaire avec deux antennes au niveau d'un piège magnétique.

A partir d'un signal d'horloge externe, deux voies devaient être en quadrature de phase puis modifiable par la suite du PC de la manip. Les sorties sont programmables numériquement (fréquence, amplitude, phase..) avec un programme écrit sous Labwindows CVI.

Ce DDS fait partie d'une série de composants spécifique d'Analog Device, celui-ci ce programme uniquement en mode série (SPI) sachant que d'autres DDS acceptent les deux modes : SPI et Parallèle. La fréquence d'horloge est de 500MHz et il peut fournir quatres sortie RF: DC-200MHz. Je vais présenter les éléments de bases pour programmer ce DDS sachant que cela peut s'appliqué à d'autres DDS de la même famille. Ci-dessous la doc de l'AD9959. http://www.analog.com/static/imported-files/data_sheets/AD9959.pdf.

Ce DDS à été programmé par l'intermédiaire d'un microcontrôleur 16-bit de chez TI, le MSP430F169 à 8MHz d'horloge: http://www.ti.com/lit/ds/symlink/msp430f1611.pdf.

L'environnement de programmation du MSP430 est IAR Embdedded Workbench et téléchargeable sur le site de Texas Instruments. http://www.iar.com/Products/IAR-Embedded-Workbench/TI-MSP430

Je conseille d'acheter le kit de débogage MSP430USB MSP-FET430UIF qui permet un débogage pas à pas si vous souhaiter utiliser cette famille de microcontrôleur.

Bien entendu bien d'autres microcontrôleur peuvent êtres utilisés à partir du moment que l'on dispose d'au moins d'un port SPI. En l'occurrence un développement avec L'AD9959 à été réalisé avec un Microcontrôleur Atmel Arduino due, Microcontrôleur 32-bit ARM core @84MHz d'horloge et chargement SPI 4 fils. http://www.atmel.com/Images/doc11057.pdf

Les derniers développements au service électronique ont étés réalisés avec un ARM Cortex 4@80MHz de TI Tiva séries TM4C123GH6PM. http://www.ti.com/tool/EK-TM4C123GXL avec l'AD9852,l'AD9911,l'AD9959 et l'AD9858 d'Analog Device.

Je présenterai les derniers développement DDS avec comme interface de programmation le microcontrôleur ARM Cortex 4@80MHz de TI Tiva séries TM4C123GH6PM.

Comment lire la datasheet d'un DDS!

Décrypter Les différents registres d'un DDS: l'AD9959

Le premier registre à programmer est le registre CSR: table 28 du datasheet

    registre CSR (channel select register) 
    One byte is assigned to this register:  nombre d'octets du registre 
    CSR serial address = 0x00; 
    CSR defaut value = 0xF0; 
    

Ce registre active les voies de sorties et les modes SPI: Par défaut tous les voies sont activées et le mode SPI Single-bit serial 2-wire est sélectionné. Il est évidemment possible de redéfinir ce registre suivant son application.

Le second registre est le registre FR1: table 28 du datasheet

    registre FR1 (fonction register 1) 
    three bytes is assigned to this register: nombre d'octets du registre 
    FR1 serial address = 0x01; 
    FR1 defaut value = 0x00; 
    

Ce registre permet en autres de définir la PLL interne et le coefficient multiplicateur x4 à x20. Pour exemple la valeur à fournir pour activer la PLL x20 ⇒ FR1 = 0xD00000; Dans ce cas il suffit de fournir un quartz à 25MHz avec la PLL activée x20 on a 500MHz d'horloge PIN 22 et 23 du DDS.

Le troisième registre est le registre CFR table 29 du datasheet

    registre CFR (Channel Function Register) 
    three bytes is assigned to this register: nombre d'octets du registre 
    CFR serial address = 0x03; 
    CFR defaut value =0x302; 
    

Ce registre défini les différents mode de fonctionnement du DDS.Ce registre est important si vous utiliser certains modes de fonctionnement: balayage de fréquence, de phase, ou d'amplitude. Important par défaut les sortie sont en mode DAC full-scale current.

Le quatrième registre est le registre CFTW0: table 29 du datasheet

    registre CFTW0 (Channel Frequency Tuning Word 01) 
    four bytes is assigned to this register: nombre d'octets du registre 
    CFTW0 serial address = 0x04; 
    CFTW0 defaut value =0x00; 
    

Ce registre permet de rentrer la fréquence désirée suivant la relation ci-dessous:

    FTW0 = frequency output x 2^32 /frequency clock
        

Le cinquième registre est le registre CPOW0 table 29 du datasheet

    registre CPOW0 (Channel Phase Offset Word 01) 
    two bytes is assigned to this register:  nombre d'octets du registre 
    CPOW0 serial address = 0x05; 
    CPOW0 defaut value =0x00; 
    

Ce registre définie la phase du signal de sortie codé sur 14 bits avec la relation ci-dessous:

    CPOW0 = Delta phi x 2^14 /360°
         

Le sixième registre est le registre ACR: table 29 du datasheet

    registre ACR (Amplitude Control Register)
    two bytes is assigned to this register:  nombre d'octets du registre 
    ACR serial address = 0x06; 
    ACR defaut value =0x00; 
    

Ce registre permet de définir l'amplitude. Par défaut l'amplitude est en mode full scale mais programmable si on modifie le registre CFR.

Les autres registres sont utiles pour programmer le DDS pour des balayages de fréquences, de phases et d'amplitudes en autres.

    Registre FR2 (Function Register 2)
    Registre LSRR (Linear Sweep Ramp Rate1)
    Registre FDW (LSR Falling delta Word1) 
    Registre RDW (LSR Risingdelta Word1)
    Registre CW1 (Channel Word 1)
    ...
fr/exemple_de_developpement_autour_d_un_dds_l_ad9959.txt · Dernière modification: 2016/03/02 19:59 par fwiotte