Codey OnlineBibliothèque de composants Arduino & ESP32 › AD9850 DDS Signal Generator Module
AD9850 DDS Signal Generator Module
Autres

AD9850 DDS Signal Generator Module

Module générateur de signal DDS AD9850 (Direct Digital Synthesis). Génère des signaux sinusoïdaux et carrés d’environ 0 à 40 MHz grâce à une horloge de référence embarquée de 125 MHz. Le mot de réglage de fréquence est chargé via une interface série simple (W_CLK, FQ_UD, DATA, RESET) ou via un bus parallèle 8 bits (D0-D7). Sorties sinusoïdales ZOUT1/ZOUT2, sorties carré/compateur QOUT1/QOUT2. Alimenté en 5V.

Protocoles: serial, parallel Largeur: 27.5 mm

Brochage — AD9850 DDS Signal Generator Module

Broche Signal Description
ZOUT2 analog Sine-wave DDS analog output from the AD9850 output network.
ZOUT1 analog Sine-wave DDS analog output from the AD9850 output network.
QOUT2 digital Square-wave comparator output derived from the DDS sine signal.
QOUT1 digital Square-wave comparator output derived from the DDS sine signal.
GND ground Ground reference for power, logic control, and output signals.
RESET reset AD9850 reset control input; use to initialize the DDS state.
DATA data Serial programming data input for loading frequency and control words.
FU_UD digital Frequency update strobe; latches loaded tuning word into the DDS.
W_CLK clock Serial word clock input for shifting programming data into the AD9850.
VCC power Module power input, typically 5 V for AD9850 operation.
GND.1 ground Ground reference for power, logic control, and output signals.
D7 data Parallel programming data bus bit 7 input for the AD9850.
D6 data Parallel programming data bus bit 6 input for the AD9850.
D5 data Parallel programming data bus bit 5 input for the AD9850.
D4 data Parallel programming data bus bit 4 input for the AD9850.
D3 data Parallel programming data bus bit 3 input for the AD9850.
D2 data Parallel programming data bus bit 2 input for the AD9850.
D1 data Parallel programming data bus bit 1 input for the AD9850.
D0 data Parallel programming data bus bit 0 input for the AD9850.
VCC.1 power Module power input, typically 5 V for AD9850 operation.

Conseils de câblage

Alimentez le module en 5V (VCC) et GND. Commande série (recommandée, 4 fils) : W_CLK (word clock), FQ_UD (frequency update / latch), DATA (données série) et RESET, chacun vers une broche numérique libre du microcontrôleur. Attention : sur ce module, la broche d’update est étiquetée FU_UD (= FQ_UD). En alternative, on peut utiliser le bus parallèle 8 bits D0-D7 plus W_CLK/FQ_UD/RESET. Sorties : ZOUT1/ZOUT2 fournissent le sinus, QOUT1/QOUT2 la sortie carrée/compateur. Le module dispose de sa propre horloge de référence 125 MHz ; aucun composant de protection externe n’est nécessaire pour les cartes 5V. Sur une carte 3,3V (ESP32/ESP8266), connecter les lignes de commande via un level shifter.

Exemple de schéma de câblage — AD9850 DDS Signal Generator Module

De Vers Fil
board:5V x1:VCC red
board:GND x1:GND black
board:D8 x1:W_CLK green
board:D9 x1:FU_UD blue
board:D10 x1:DATA yellow
board:D11 x1:RESET purple

Exemple de code Arduino — AD9850 DDS Signal Generator Module

Cet exemple a été écrit et vérifié à la compilation pour le arduino-uno. Codey Online l'adapte pour vous à toute autre carte prise en charge.

// Canonical beginner example for the AD9850 DDS Signal Generator Module
// This sketch sends a serial programming word to set an output frequency.
// Wiring used:
//   D8  -> W_CLK
//   D9  -> FU_UD
//   D10 -> DATA
//   D11 -> RESET
//   5V  -> VCC
//   GND -> GND

const int PIN_W_CLK = 8;
const int PIN_FQ_UD = 9;   // Module label is FU_UD
const int PIN_DATA  = 10;
const int PIN_RESET = 11;

const unsigned long CLOCK_HZ = 125000000UL; // AD9850 reference clock on the module

void pulsePin(int pin) {
  digitalWrite(pin, HIGH);
  delayMicroseconds(1);
  digitalWrite(pin, LOW);
  delayMicroseconds(1);
}

void ad9850Reset() {
  digitalWrite(PIN_RESET, HIGH);
  delayMicroseconds(1);
  digitalWrite(PIN_RESET, LOW);
  delayMicroseconds(1);
  pulsePin(PIN_W_CLK);
  pulsePin(PIN_FQ_UD);
}

void ad9850SetFrequency(double frequencyHz) {
  // DDS tuning word = frequency * 2^32 / clock
  uint32_t tuningWord = (uint32_t)((frequencyHz * 4294967296.0) / (double)CLOCK_HZ);

  // Send 32-bit tuning word, LSB first
  for (int i = 0; i < 32; i++) {
    digitalWrite(PIN_DATA, (tuningWord >> i) & 0x01);
    pulsePin(PIN_W_CLK);
  }

  // Control byte: 0x00 for normal 28-bit frequency mode
  for (int i = 0; i < 8; i++) {
    digitalWrite(PIN_DATA, LOW);
    pulsePin(PIN_W_CLK);
  }

  // Latch the new frequency
  pulsePin(PIN_FQ_UD);
}

void setup() {
  pinMode(PIN_W_CLK, OUTPUT);
  pinMode(PIN_FQ_UD, OUTPUT);
  pinMode(PIN_DATA, OUTPUT);
  pinMode(PIN_RESET, OUTPUT);

  digitalWrite(PIN_W_CLK, LOW);
  digitalWrite(PIN_FQ_UD, LOW);
  digitalWrite(PIN_DATA, LOW);
  digitalWrite(PIN_RESET, LOW);

  Serial.begin(9600);
  while (!Serial) {
    ;
  }

  Serial.println(F("AD9850 DDS generator starting..."));
  ad9850Reset();

  // Set a beginner-friendly test frequency
  ad9850SetFrequency(1000000.0); // 1 MHz
  Serial.println(F("Output frequency set to 1 MHz"));
}

void loop() {
  // Nothing to do here for the canonical example.
  delay(1000);
}

Composants similaires

4-Channel Optoisolator Board

4-Channel Optoisolator Board

Adjustable Step-down Module 3-40VDC  1.5-35VDC LM2596

Adjustable Step-down Module 3-40VDC 1.5-35VDC LM2596

Breadboard 400 pin

Breadboard 400 pin

DC 12V adjustable timer delay, time delay relay turn off switch module time relay time switch 0~25sec for smart home, automatic control

DC 12V adjustable timer delay, time delay relay turn off switch module time relay time switch 0~25sec for smart home, automatic control

Construisez votre projet Arduino ou ESP32 avec l'IA

Décrivez ce que vous voulez créer. Codey Online écrit le code, dessine le schéma de câblage, le compile et flashe votre carte directement depuis le navigateur.

Commencez gratuitement