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