Weet er iemand een interessante link, of heeft uitleg over DDS? Hoe werkt het? Wat zijn de mogelijkheden en minpunten van zo'n systeem?

- - big bang - -

Merci! Hoe kan ik daar zo naast gekeken hebben. Ik heb een tijdje op die site van Analog Devices gezeten, naar de AD98XX familie aant kijken geweest.

Stof tot lezen.

- - big bang - -

Ga je iets met DDS bouwen bb? Leuk! Een vriend van me is daar ook erg druk mee. Heeft een SDR (software defined radio) gebouwd met een DDS als afstem oscillator. Succes met lezen!

http://hem.passagen.se/communication/dds.html

Ben ik eens mee aan het stoeien geweest, helaas niet aan de gang gekregen.Ik vermoed dat er iets fout gegaan is tijdens solderen.

Op 26 februari 2007 19:48:39 schreef big bang:
Merci! Hoe kan ik daar zo naast gekeken hebben. Ik heb een tijdje op die site van Analog Devices gezeten, naar de AD98XX familie aant kijken geweest.

Stof tot lezen.

- - big bang - -

Ik ben aan het stoeien met een AD9835BRU, DRM ontvanger, pc gestuurd. Werkt leuk, moet alleen een ander X-tal oscillator hebben.

Bedankt voor de reakties zover.
Komt precies wel regelmatig voor in digitale radio toepassingen.

Enfin, de interesse hier is eigenlijk ontstaan door het onderzoek van de markt op gebied van functiegeneratoren door Elektuur. Daarin werden naast de analoge types ook DDS gestuurde types voorgesteld.

Misschien nog eens iets om zelf te ontwerpen.

- - big bang - -

ik zit nu met een project waar 2 AD9581 's inz itten.
die wordne gebruikt om de clock te genereren voor een AWG.

ik heb een blokje code in een FPGa zitten wat eigenlijk een snelle programmeerbare teller is.
door middel van 2 registers kan ik begin en eindpunt opgeven.

een comparator vergelijkt de tellerstand met het eindpunt register en als die gelijk zijn dan wordt de teller herladen met het beginpunt bij de volgende klokpuls.

de dds genereert de klokpulsen.

die teller stuurt de addresslijnen van een blok heel snelle statische ram ( 4 nanoseconden toegangstijd )
bij de stijgende flank veranderen de addreslijnen , bij de dalende flank wordt de data die uit de ram komt in een register geladen wat naar een DAC gaat ( een snelle 14 bit DA convertor. )

ik kan dus verschillende waveforms in die ram zetten.
door begin en eindpunt op te geven kan ik dus die waveform loopen , en de snelhied waarmee dat gebeurt regel ik door de DDS te programmeren.

simpel als pompwater.

der zitten zo 2 generatoren in 1 FPGatje. ik kan kiezen : ofwel ontkoppeld ( dus elk geklokt door hun eigen DDS ) ofwel synchroon starten ( maar wel nog met elk hun eigen DDS )

ofwel lopen vanuit 1 DDS ( tussen de master DDS en de Clock ingang van de 2e zit een programmeerbare deler, zo kan ik daar ook nog een beetje spelen. )

de boel wordt gestuurd door ene 8051 . een Xport ethernet blokje eraan. webpaginatje erop.

ik moet nu nog de vinculums draaiende zien te krijgen. ze staan op het bord maar ik heb er nog niks mee gedaan.

dan wordt het helemaal leuk.
waveform op een memory stick zwieren. in de usb poort prikken , de filebrowser openen op het display wat an de 8051 hangt , file selecteren. 8051 leest de file vanaf de memorystick en mept hem in de ram ...

[Bericht gewijzigd door free_electron op ]

Yes, yes, yes, da is het! Zoiets. Waveforms van een memorystick loaden en in een Arbitrary Waveform Generator dumpen en die zijn ding laten doen.
Ik moet alle info over DDS, NCO's en dergelijke eerst nog wel eens goed doornemen, zodat ik weet met wat ik bezig ben.

Een FPGA, nu je het zegt, kan je er misschien in je aanstaande boek ook over hebben met dit soort toepassingen? Razend interessant. Absoluut niet dat je een heel project uit de doeken moet doen, ik begrijp heel goed dat dat trouwens geen weggevers zijn, maar de krijtlijnen trekken waar iedereen mee aan de slag kan? Een tip?

Merci tot dusver.

- - big bang - -

FE, als je toch al een FPGA hebt, waarom maak je dan die beide DDS-en ook niet daarin? Gebruik je speciale functies van de externe chip?

omdat ik nog geen DDS macrocellen gevonden heb ...

toch niet wat die analog devices chips kunnen doen ...

Op 28 februari 2007 22:21:23 schreef free_electron:
omdat ik nog geen DDS macrocellen gevonden heb ...

toch niet wat die analog devices chips kunnen doen ...

opzich is het princiepe niet zo lastig. Ik heb jaren geleden al wel PIC software gezien waar ze een DDS mee hadden gemaakt. DDS van analog is wel sneller dan deze oplossing ;)

Is je AWG een prive project? Ben wel benieuwd. Ik zit zelf ook nog met wat ideeen voor wat meetapparatuur.

Nu alleen eerst me werkplek thuis vrijmaken |:-(

ande rprobleem als je die dds in een fpga mapt is dat je tegen snelhiedslimieten gaat aanlopen + je gaat roblemen krijgen met je verschillende clock domains.

twas simpeler om die dingen gewoon extern te hangen. kost niks.

nee is geen prive project. project voor het werk.

een power Arbitrary waveform generator. ( de outputstage swingt tussen +40 en -40 volt , heeft een stijgtijd van ongeveer 15nS ( van -40 naar +40 in 15 nanoseconde ... ) en kan 3 ampere pompen...

de bedoeling is om glitches te kunnen injecteren op de voedingslijnen van chips om die te testen. CMRR , PSRR , brownout detectie , POR , overstress , spikes en allerhande andere rotzooi.

tis ene leuk dingetje. 19 in ch rackje. usb en ethernet erop , 240x64 optrex display , rotary encoders , keyboard ,2 usb host controllers( vinculums ) ene intern aangesloten op een laptop harddiskje . de ander op het forntpanel zoadat je memory stickjes kan pluggen.
8051f120 als host controller.
Cyclone II fpga , 256 megabyte Sram voor patternbuffers. een snelle DAC en dan de output stage ( 2 x een PA19 van apex ).

Knappe dinges,
Met zo'n CV kan je direct bij Agilent, LeCroy of Rhode&Swartz aan de slag!

- - big bang - -

Henry,

Ik lees dat jij al met die DDS chip hebt gewerkt. Wel ik ben er ook mee bezig en zou graag weten in welke volgorde ik dat moet programmeren en welk algoritme ik moet volgen op de datasheets want ik gebruik een AD9833

Met vriendelijke groet

Weet ik zo niet, was kant en klaar :)

Zet je probleem hier eens neer Stephane (zonder dat we zelf de datasheet moeten gaan lezen). Meestal programmeer je gewoon een soort deeltal en misschien nog wat config bitjes. Echt een algoritme hoef je niet te volgen bij mijn weten.