Osazení je jednoduché. Nejdříve je třeba začít s SMD součástkami na spodní straně desky. Pak je třeba osadit všechny konektory a nakonec zapájet DDS modul. Pro DDS modul není možné použít konektory a je třeba ho zapájet co nejníže nad plošný spoj. Jinak ztratíme možnost přidávat nad desku další moduly (shieldy).
Schéma zapojení |
Plošný spoj |
Pohled na spodní stranu plošného spoje |
Součástka | Hodnota |
C1 | 100nF |
C2 | 100nF |
C3 | 100nF |
C4 | 100nF |
IC1 | 74AC74D |
M1 | |
OUT | BNC konektor |
Q1 | 2n2222 |
Q2 | 2n2222 |
R1 | 1k |
R2 | 100 |
R3 | 1k |
R4 | 470 |
Zde je ukázkový kód, který zinicializuje DDS modul a začne generovat 10 MHz. Další programy budou v budoucnu následovat. Je možné jich získat spoustu také na internetu.
Ukázkový kód pro Arduino:
/*
* A simple single freq AD9850 Arduino test script
* Original AD9851 DDS sketch by Andrew Smallbone at www.rocketnumbernine.com
* Modified for testing the inexpensive AD9850 DDS modules
* 9850 datasheet at http://www.analog.com/static/imported-files/data_sheets/AD9850.pdf
* Use freely
*/
#define W_CLK 2 // Pin 2 - connect to AD9850 module word load clock pin (CLK)
#define FQ_UD 3 // Pin 3 - connect to freq update pin (FQ)
#define DATA 4 // Pin 4 - connect to serial data load pin (DATA)
#define RESET 5 // Pin 5 - connect to reset pin (RST).
#define pulseHigh(pin) {digitalWrite(pin, HIGH); digitalWrite(pin, LOW); }
// transfers a byte, a bit at a time, LSB first to the 9850 via serial DATA line
void tfr_byte(byte data)
{
for (int i=0; i<8; i++, data>>=1) {
digitalWrite(DATA, data & 0x01);
pulseHigh(W_CLK); //after each bit sent, CLK is pulsed high
}
}
// frequency calc from datasheet page 8 = <sys clock> * <frequency tuning //word>/2^32
void sendFrequency(double frequency) {
int32_t freq = frequency * 4294967295/125000000; // note 125 MHz clock on 9850
for (int b=0; b<4; b++, freq>>=8) {
tfr_byte(freq & 0xFF);
}
tfr_byte(0x000); // Final control byte, all 0 for 9850 chip
pulseHigh(FQ_UD); // Done! Should see output
}
void setup() {
// configure arduino data pins for output
pinMode(FQ_UD, OUTPUT);
pinMode(W_CLK, OUTPUT);
pinMode(DATA, OUTPUT);
pinMode(RESET, OUTPUT);
pulseHigh(RESET);
pulseHigh(W_CLK);
pulseHigh(FQ_UD); // this pulse enables serial mode - Datasheet page 12 figure //10
}
void loop() {
sendFrequency(10.e6); // freq 10.00000 MHz
while(1);
}
Stavebnici je možné zakoupit na Hamshop.cz.