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. |