« Projet DDS » : différence entre les versions

De Wiki_du_Réseau_des_Electroniciens_du_CNRS
Aller à la navigationAller à la recherche
Wiotte fabrice (discussion | contributions)
Wiotte fabrice (discussion | contributions)
Page blanchie
Balise : Blanchiment
 
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
<div class="subtab">[[Accueil|Home]] - [[Le groupe DDS]] - [[Le_groupe_DDS_:_Projet DDS|Projet DDS]]</div>
<hr/>


[[Fichier:Double dds board 2019.png|300px|thumb|left]]
'''Programme Python pour la liaison USB-Série :''' Pour charger les fréquences et les amplitudes des sorties RF j'ai utilisé Pyserial et Python 3.7
Ci-dessous le code Python éditer avec l'IDE Thonny ( pour les débutants comme moi c'est pas mal ;) !)
il suffit d'installer Python 3.7 puis d'importer la bibliothèque PySerial.
 
IMPORTANT : le code c pour transmettre et recevoir les données via l'UART ci-dessous un exemple:
  <syntaxhighlight lang="c">
  void write_immediate()  //AD9959
  { 
  //frequency DDS0//
  frequency_value_f1_DDS0 = temp[3]<<24|temp[2]<<16|temp[1]<<8|temp[0];
  FTW0_DDS0 = frequency_value_f1_DDS0 * 4294967296 / 500000000; //Convert to command for DDS  //ad9959
 
  frequency_value_f2_DDS0 = temp[7]<<24|temp[6]<<16|temp[5]<<8|temp[4];
  FTW1_DDS0 = frequency_value_f2_DDS0 * 4294967296 / 500000000; //Convert to command for DDS  //ad9959
 
  frequency_value_f3_DDS0 = temp[11]<<24|temp[10]<<16|temp[9]<<8|temp[8];
  FTW2_DDS0 = frequency_value_f3_DDS0 * 4294967296 / 500000000; //Convert to command for DDS  //ad9959
 
  frequency_value_f4_DDS0 = temp[15]<<24|temp[14]<<16|temp[13]<<8|temp[12];
  FTW3_DDS0 = frequency_value_f4_DDS0 * 4294967296 / 500000000; //Convert to command for DDS  //ad9959
  ....
  }
  //*****************************************************************************
  //
  //          The UART interrupt handler.
  //
  //*****************************************************************************
  void UARTIntHandler(void)
{
    uint32_t ui32Status;
    ui32Status = UARTIntStatus(UART0_BASE, true);
    UARTIntClear(UART0_BASE, ui32Status);
 
  while(UARTCharsAvail(UART0_BASE)) //loop while there are chars
    {
      //send data to uC via USB/Uart for change one output frequency ( 4 octets)
      temp[t++] = UART0_DR_R; //Read from buffer
          if(t >...)
            {
              write_immediate();
              t = 0; //Reset read length
            }
    }
  }
  </syntaxhighlight>
  Code Python:  [[Fichier:code python.pdf]]
  Ci-dessous Code Python avec l'interface graphique [[Fichier:code python avec l'interface numérique.pdf]]
[[Fichier:Interface tkinter.png|500px|thumb|left]]

Dernière version du 12 octobre 2024 à 11:33