vrijdag 20 juli 2012

ad9850 dds

Op ebay kun je voor rond de 5 euro een module kopen met de ad9850 dds van analog
Met deze module zou je een meetzender of een vfo voor een ontvanger kunnen maken.
De aansluitingen van de module zijn wel te vinden op internet.
Het lastige is het berekenen van de data wat de ad9850 in moet voor het zetten van de frequentie.
Volgens de datasheet,
freq_out = (data-dds * clockfreq) / 2^32

Het probleem om het in 1 keer te bereken is de 2^32, hier kunnen we in proton niks mee.
Dit zijn namelijk 33 bitjes. De oplossing is om het bit voor bit te doen.
Op de volgende manier:

dds = 0
calfreq = freq
For teller = 31 To 0 Step -1      ' 32 bits berekenen
calfreq = calfreq // clock << 1  ' restant *2
calbit = calfreq / clock             ' volgende bit
If calbit = 1 Then SetBit dds,teller
Next  teller

waarbij freq de gewenste freq is.
clock de klokfrequentie van de ad9850, Op de module zit een oscillator van 125mhz.
en in dds de output wat naar de ad9850 toemoet.
alle variabelen zijn 32 bits breed.
we kunnen nu dus op de hertz nauwkeurig de data voor de ad9850
berekenen.


Op de foto zien we het resultaat, we moeten wel 10mhz van de frequentie aftrekken.
dus de dds gaat draaien op 4.169 mhz. De kleinste stap word 10hz.
De bedoeling is om in eerste instantie de dds te laten draaien van 4.0 tot 4.35 mhz
voor mijn qrp transceiver voor de 20m, De taurus van sp5ddj.
waarbij een mf van 10mhz wordt gebruikt.Het nadeel van de dds is wel dat er
nog al wat rommel geproduceerd word. Een extra bandfilter achter de dds
zal zeker nodig zijn.
Nu nog de software verder afmaken en de module testen.


Geen opmerkingen:

Een reactie posten