Arduino ve spojení s generátorem AD9850

Modul AD9850 se používá ke generování dvou sinusových a dvou čtvercových průběhů s frekvencí až 40 MHz. Systém komunikuje pomocí sériové sběrnice nebo paralelním odesíláním bitů. Je vybaven roztečí pájených spojů golpinů 2,54 mm pro integraci kontaktní desky nebo připojenípomocí vodičů .

Příklad používá následující prvky:

Připojení AD9850 k Arduinu:

Chcete-li generátor provozovat pomocí sériového rozhraní, připojte systém k Arduinu následujícím způsobem:

Kolík AD9850 Pin Arduino
W_CLK 2
FQ_UD 3
DATUM 4
RESETOVAT

5

VCC 5 V
GND GND

Schematické propojení čipu AD9850 s Arduino Uno.

Program pro Arduino

V příkladu byl použit následující kód:

 #define W_CLK 2 // Pin 2 - hodinový signál komunikační sběrnice (W_CLK)
 #define FQ_UD 3 // Pin 3 - Frequency change (FQ)
 #define DATA 4 // Pin 4 - datová linka sériového rozhraní (DATA)
 #define RESET 5 // Pin 5 - Reset modulu (RESET)
 
 #define pulseHigh (pin) {digitalWrite (pin, HIGH); digitalWrite (pin, LOW); } // funkční puls dočasně nastaví vysoký stav
 
 // přenos bajtu po kousku do modulu AD9850 přes DATA linku
void tfr_byte (byte data)
{
  pro (int i = 0; i <8; i ++, data >> = 1) {
    digitalWrite (DATA, datum a 0x01);
    pulseHigh (W_CLK); // Signál CLK je nastaven vysoko po každém bitu
  }
}
 
 // frekvence vypočtená podle vzorce na straně 8 dokumentace = * / 2 ^ 32
void sendFrequency (dvojnásobná frekvence) {
  int32_t freq = frekvence * 4294967295/125000000; // 125 MHz hodiny na AD9850
  pro (int b = 0; b <4; b ++, frekvence >> = 8) {
    tfr_byte (frekvence & 0xFF);
  }
  tfr_byte (0x000); // řídicí bajt, všechny nuly „0“ pro modul AD9850  
  pulseHigh (FQ_UD); // aktualizace frekvence
}
 
void setup () {
 // Konfigurace pinů Arduino
  pinMode (FQ_UD, OUTPUT);
  pinMode (W_CLK, OUTPUT);
  pinMode (DATA, VÝSTUP);
  pinMode (RESET, VÝSTUP);
 
  pulseHigh (RESET);
  pulseHigh (W_CLK);
  pulseHigh (FQ_UD); // povolit režim sériového rozhraní
}
 
void loop () {
  sendFrequency (100000); // dejte frekvenci generátoru
  while (1);
}

Vygenerovaný tvar vlny lze sledovat např. Na obrazovce osciloskopu.

Pokud se obdélníkový signál neobjeví, otočte potenciometr zabudovaný do modulu AD9850. Slouží k nastavení výplně obdélníkové vlny.

zveme vás ke spolupráci!