A DDS áramkörök használata. Az is lehet, hogy a DDS-ek a legjobb találmányok közé tartoznak egy rádióamatőr számára. Egy stabil frekvenciájú jelforrás előállítása házi körülmények között minden időben a legnagyobb kihívásnak számított a konstruktőr hajlamú amatőröknek. A DDS-ek használatbavételéhez azonban nem elegendő egy, mondjuk negyven évvel ezelött szerzett diploma, vagy technikusi oklevél. Az sem állítható, hogy a mai technikai eredmények ismerete kellene hozzá. Akkor hogyan kellene elkezdeni az ismerkedést a DDS-ekkel? Szerencsére a gyártók, közülük is a legszignifikánsabb, az Analog Device, gondoskodik arról, hogy termékeit népszerüsítse, hiszen ez gazdasági érdeke. Egyszerűbben szólva, minden le van írva, ami ahhoz kell, hogy valaki DDS-t tartalmazó áramköröket tervezzen, megépítsen. Ebben a dokumentumban nem cél ezeknek az áramköröknek vagy a bennük alkalmazott algoritmusoknak a tárgyalása. A kerékpározáshoz nem kell tudni a küllőgyártás technológiai részleteit. Mindössze az egyensúlyozás és a kormányzás, -szélsőséges esetben a fékezés tudományát kell elsajátítani hozzá. Az AD a DDS IC-k egész családját kifeljesztette, és egyre gyorsabb, tisztább kimenőjellel rendelkező áramköröket dob piacra. Tegyük fel, hogy valaki rendelkezik egy DDS IC-vel. Kért mintát a gyártótól, vagy rábeszélt egy alkatrész kereskedőt, hogy rendeljen neki egy ilyet. Ez utóbbi eset persze veszélyes, mert azt azért előre illik tudni, hogy milyen tulajdonságokkal rendelkező áramkörre van szüksége, és nem feltétlenül érdemes egy gyors, drága áramkört vásárolni, ha a készítendő szerkezettel szemben támasztott igényekhez olcsóbb is megfelel. Az egyes DDS áramkörök dokumentációja hozzáférhető az AD honlapjain. Ha ismeretes egy DDS IC tipusa, akkor letölthető a hozzá tartozó doku pdf állománya. Ez megkerestethető a neten, de az egyszerűség kedvéért lehet a következő linkre kattintani: http://www.analog.com/en/technical-documentation/resources/index.html
A veboldalon a Data Sheet Finder mezőbe kell írni a keresett DDS tipusát, és hozzáférhetővé válik az áramkör leírását tartalmazó pdf állomány. Ezekben az állományokban minden megtalálható, ami az adott tok használatához kell. A dokumentumok angol nyelvűek, és főleg olyan szakkifejezéseket használnak amit egy angolul egyébként tökéletesen beszélő angol háziasszony sem ért. A rádióamatőrre azonban hobbija során ráragad a műszaki terminológiából sok szakkifejezés, amit felfedezhet ezekben a leírásokban. Az is lehet, hogy csak sejtései vannak az IC egyik másik kivezetésének szerepéről, de ha kitartóan foglalkozik a témával, akkor egyszer csak világossá válik a dolog. A megismerési folyamat elkezdéséhez érdemes megvizsgálni, hogy mik a a legfontosabb tudnivalók. Nyilvánvaló, hogy az áramkörnek vannak kimenetei, ahol az általa előállított jel kijön. A kimeneti jel szinusz lefolyású, és ha például két ilyen kimenet van, akkor ezeken ellenfázisú a jel. Ismeretesek olyan áramkörök is, ahol négyfázisú jel nyerhető a kimeneten, ez például nagyon alkalmas az SDR vevők számára. Néha a kimenőjel négyszög formájában is hozzáférhető. A kimeneti jel pontossága, frekvenciája és spektrális tisztasága attól függ, hogy milyen órajellel dolgozik az adott áramkör. A fejlődés az egyre magasabb órajel frekvenciák irányába halad. Ezért az újabb tipusok egyre pontosabban tudják előállítani az analógnak számító kimenőjelet, mert egyre apróbb részletekből állítják elő a kimenőjel lefutását, is meg a periódusidőt. Az áramkörnek tehát szüksége van órajelre. Az órajel beadható az IC-nek külső kvarcoszcillátorból, vagy kvarc kapcsolódhat az IC két erre szolgáló lábára, és belső áramkör rezgeti be a rezonátort. Az áramkör, a kimenőjel frekvenciáját úgy állítja elő, hogy párhuzamosan vagy sorosan be kell
adni neki a frekvencia értékét . A frekvencia és a beküldött adat közötti összefüggést tartalmazza a doku, de később ez még részletezve lesz. Az áramkörnek beküldendő adat általában több bájt. Bizonyos bájtokat parancsnak értelmez az áramkör. Ha például egy DDS két frekvenciaregisztert tartalmaz, akkor a parancsbájt alapján dönti el az áramkör, hogy a frekvenciát meghatározó bájtok amik az adat vezetéken jönnek be bitenként, melyik regiszterbe kerüljenek. Lehet adat nélküli vezérlőbájtot is elképzelni, ha a kétféle frekvencia már be van töltve, de ki kell belőle választani valamelyiket, hogy a másik frekvenciára váltson az IC. Ezeket a beküldendő bájtokat a doku terminológiája vezérlő szónak nevezi. A vezérlő szó hossza tipusonként eltérő lehet. Ráadásul nem feltétlenül kell minden bájtot kiküldeni. Egy hangolható oszcillátor esetén elegendő csak a frekvenciát meghatározó bájtokat módosítani, és beáll az új frekvencia. Sajnos a vezérlő szó összeállítását tudni kell. A vezérlő szót például egy PIK-ben össze lehet állítani, és ki kell küldetni bitenként a DDS IC-nek. A frekvenciát az AD9851 tipusban négy bájt határozza meg. A kívánt frekvenciához tartozó tartalom kiszámításához a dokumentáció ismerteti a képletet. A számítás azonban elkerülhető. Az AD gondoskodik a rádióamatőr életének megkönnyítéséről. Létrehozott egy interaktív tervező oldalt, melyen kiválasztható az eszköz tipusa, a használt órajel, tápfeszültség, és egyéb beállítások, például, hogy a csip sokszorozza e magától a külső órajelet, és ha igen, akkor hányszorozza. Az oldalt használni kell! http://designtools.analog.com/dtDDSWeb/dtDDSMain.aspx Nézzünk egy példát. Legyen az áramkör a korábban említett AD9851. A Select DDS ablakban kiválasztandó ez a tipus. A Ref Clock Frequency ablakban beállítandó, hogy a frekvenciát például MHz-ben akarjuk megadni. Ezután beírjuk az órajel generátor frekvenciáját. Ha például egy régi PC alaplap 30 MHz-es kristályoszcillátorát használjuk a DDS IC referencia órajelének, írjunk ide 30-at. Legyen a kívánt kimeneti frekvencia mondjuk 9.0015 MHz, ami 9 megás kvarcszűrőnk felső oldalfrekvenciája. Írjuk be. A 9851 rendelkezik egy belső órajel frekvencia sokszorozóval. Állítsuk be, hogy ezt kell használni, és legyen a sokszorozás 6 szoros. Ekkor az IC órajele 180 MHz lesz. Az IC nem tud pontosan olyan frekit kiadni amit szeretnénk, de az oldal közli az aktuális frekvenciát, ami elég jól közelti a 9.0015 értéket. Most válasszuk ki, hogy a Frequency Tuning Word, a frekvenciát beállító vezérlő szó milyen formátumú legyen. Válasszuk a hex formátumot, mert a pik-be, a kiküldendő vezérlő szót ilyen formátumban kell majd beírni. A RUN MODELL gombra kattintva a program kiszámítja, és megjeleníti a vezérlőszót. A vezérlő szó esetünkben ez lesz: 0C CD 58 9C. A négy bájt közül a 0C a legmagasabb helyiértékű bájt, a 9C pedig a legalacsonyabb. A megjelenítendő jel spektrális karakterisztikája és a jelalak is megjelenik a lap alján található ablakokban. Most már tudjuk, mit kell kiküldeni a DDS-nek ahhoz, hogy 9.0015 MHz-et adjon ki. A következő kérdés az, hogyan tehető meg ez egy pikkel. A pikek programozása misztikus dolognak tűnik az avatatlanok számára. Ennek ellenére nem nehéz kitalálni, hogyan lehet rávenni egy piket, hogy kiküldje a vezérlőszót a DDS IC-nek. A DDS IC soros irásához 3 jelvezeték szükséges. Adatvezeték, melyen a vezérlőszó bitjei majd egymást követően megjelennek. A 9851 áramkörnél ez a 25-ös láb. Ez a vezeték a továbbiakban az adat vezeték nevet viseli. Minden adatbit érvényességét jelezni kell a DDS IC-nek. Erre külön vezeték szolgál, a jel neve W_CLK ( vezérlőszó órajel). Ez a DDS 7-es lába. A DDS IC-nek azt is tudni kell, hogy mikor kezdődik, és mikor fejeződik be a vezérlőszó kiküldése. Erre külön vezeték szolgál, melynek FQ_UD ( frekvencia beírás) a neve és a DDS IC 8-as lába. A vezérlőszó utolsó bítjének kiküldése után ezen a vezetéken egy pillanatra
magas szintnek kell megjelenni, amiből a DDS tudja, hogy vége a vezérlőszónak, és a vett bájtokat el lehet tárolni. Az idődiagramm a DDS dokuban látható. A három vezetéket a piknek kell kezelni. Kezdetben el kell dönteni, hogy melyik port melyik bitjei szolgáljanak a három jelvezeték meghajtására. Legyen a példa kedvéért a pik tipusa PIC16f84. Ennek RA0, RA1 és RA2 portbitje – rendre a 17,18 és 1-es láb megfeletetve az FQ_UD,W_CLK és adat vezetéknek. A pik programmnak a következő lépéseket kell végrehajtani: 1. Legyen minden bit alacsony az A porton. 2. A vezérlőszó legalacsonyabb helyiértékű bitje kerüljön rá az RA2 kimenetre. 3. Az RA1 kimenet váltson magasra, majd alacsonyra ( órajel). 4. A következő bit kerüljön rá az RA2 kimenetre. 5. Az RA1-en ismét jöjjön ki egy órajel. 6. Ismétlődjön a procedúra, amíg a 40 bit ( mivel a vezérlő szó 5 bájtos) ki nem ment. 7. Az RA0 kimnet váltson magasra, majd vissza ( FQ_UD) Ezután a DDS IC kimenetén megjelenik a kívánt frekvencia. A példában említett 9.0015 Mhz-el jelhez négy adatbájt tartozik: 0C CD 58 9C. A 9851 soros írásához és a hatszoros órafrekvencia beállításához tartozó parancsbájt értéke 01. A teljes kiküldendő bitsorozat 40 bitből áll. A kiküldés sorrendje nem mindegy. Először a legalacsonyabb helyiértékű bájt legalacsonyabb helyiértékű bítjét kell kiküldeni. Esetünkben ez 0, mivel a C0 bájt legalacsonyabb helyiértékű bítje éppen nulla. A könnyebb elképzelhetőség kedvéért álljon itt kiküldési sorrendben az összes bit: 0011 1001 0001 1010 1011 0011 0011 0000 1000 0000 Ez a bítsorozat megfelel a 01 0C CD 58 9C vezérlőszónak, csak a bitek sorrendje fordított. A bítek kiküldésére sokféle módszer elképzelhető. A kiküldést végző program akkor jobb, ha kevesebb programlépésből áll. Ennek kitalálása a programozó fantáziájától függ. Legegyszerűbb módszer az, ha a biteket egymás után állítgatjuk a szükséges értékre a pik portjain. Ilyet senki nem csinál, de az elv megértéséhez ez a legalkalmasabb. A korábban felsorolt 7 lépés nincs végig kifejtve, mert az elv megértéshez elég csak megindulni. A pikek feltétlenül ismerik a következő két utasítást: bsf és bcf. Ezekkel az utasításokkal megadott biteket lehet be illetve kibillenteni. Az 1. pontban felsorolt feladatot az alábbi utasításokkal lehet megvalósítani: bcf PORTA,0 ;FQ_UD bit legyen alacsony. bcf PORTA,1 ;W_CLK bit legyen alacsony. bcf PORTA,2 ;data legyen alacsony. A bitek, illetve a PORTA 0,1 és 2 kimenetei itt egyesével lettek nullára állítva. Küldjünk ki néhány bitet: bcf PORTA,2 ;mivel az első kiküldendő bit nulla értékű bit clear -törlés utasítás ;legyen. bsf PORTA,1 ;a W_CLK billenjen be, ez lesz az órajel felfutó éle. bcf PORTA,1 ; a W_CLK billenjen ki, ez lesz az órajel lefutó éle. bcf PORTA,2 ;a második bit is nulla bsf PORTA,1 ;második órajel. bcf PORTA,1 ;második órajel vége bsf PORTA,2 ;harmadik bit egyes bsf PORTA,1 ;harmadik órajel.
bcf PORTA,1 ;harmadik órajel vége ….... …... A 40 db bitet hasonló módon lehetne kiküldeni. A felsorolt utasítások az elv megértéséhez elegendőek. Nézzük a vezérlőszó utolsó bitjének, és a lezárásnak a kiküldését. bsf PORTA,2 ;a 40-ik bit nulla bsf PORTA,1 ;a 40-ik órajel. bcf PORTA,1 ;a 40-ik órajel vége. bsf PORTA,0 ;az FQ_UD jel legyen magas bcf PORTA,0 ;az FQ_UD jel legyen alacsony. Ezután a DDS frekvencia a kívánt értékre áll. A gyakorlatban ilyen programot senki nem használ. A kiküldés bájtonként történik. Az egy bájt kiküldésére lehet optimalizálni egy önálló programot, Úgynevezett szubrutint, melynek argumentumként, -kezdeti értékként- meg kell adni a kiküldendő bájtot. A szubrutin a W_CLK biteket is kiküldi. Ha például az egy bájt kiküldésére alkalmas szubrutint Sendbyte-nak nevezzük, akkor az öt bájt kiküldése egyszerűsödik. Ehhez még két pik utasítást kell tudni az egyik betölt egy megadott hexa számot a W regiszterbe, ez a movlw, a másik meghív ( elindít ) egy szubrutint, ez a call. A hexa szám megadása 0x-el kezdődik. Így a DDS feltöltése a vezérlő szóval egyszerűbb: movlw 0x9c ;legalacsonyabb helyiértékű bájt betöltése call Sendbyte ;a bájt kiküldése bitenként. movlw 0x58 ;alacsony helyiértékű bájt betöltése call Sendbyte ;a bájt kiküldése movlw 0xcd ;középső bájt betöltése call Sendbyte ;középső bájt kiküldése movlw 0x0c ;magas helyiértékű bájt betöltése. call Sendbyte ;magas bájt kiküldése. movlw 0x01 ;parancs bájt betöltése call Sendbyte ;parancs bájt kiküldése. bsf PORTA,0 ;az FQ_UD jelet magunk adjuk ki. bcf PORTA,0 Mint látható a program írás egyszerűsíthető. Mások által írt asm programok tanulmányozása rengeteg jó ötlet plagizálására alkalmas. A DDS áramkörök programból történő kezeléséhez sok szubrutin összegyüjthető. Szükségessé válhatnak nyomógombok, LCD kijelzők, vagy hangolásra alkalmas egér enkóderek kezelésére alkalmas programok, melyekből építkezni lehet. A frekvencia kijelzés általában nem méréssel történik DDS IC-k alkalmazása esetében. A vezérlő szó eleve tartalmazza a frekvenciát, ezt szoftverből át lehet alakítani az LCD számára alkalmas formába. A DDS-t kezelő pik az LCD-t is írhatja. Az asm programokat le kell fordítani a pikbe tölthető hex fájlokra. Ilyen programok írását, szerkesztését és a fordítást például a netről letölthető MPLAB nevű programmal lehet elvégezni. A hex fájlokat egy égetővel kell beírni a pikekbe. Az égetőkhöz szintén a neten megtalálható PC-s programok tömege áll rendelkezésre.
DDS áramkörök készítése.
A DDS IC-k felületszerelt áramkörök számára készülnek. Amatőr kísérletekhez készíthető hozzájuk vendégnyák, mely bedugaszolható alkalmasan kiválasztott IC foglalatokba. Kisérletekhez univerzális nyák panelek is megfelenek. Ezekből látható néhány megoldás a mellékelt képeken. AD9851 dds generátor. A fekete kocka amatőr készítésű tokozás a DDS IC számára. Az IC lábai 0.05 ös zománcozott huzalokkal lettek kihosszabbítva egy IC foglalat lábaihoz. A kis lemezből készült dobozkába helyezett áramkör műgyantával lett kiöntve. A generátor frekvenciájának változtatására az egér enkóder szolgál. A hangolás gyorsítása érdekében az áramkör két gombbal rendelkezik: jobbra és balra. Gombokkal kiválasztható a kijelzőn az a digit, melyet az egér léptet. A kijelzés olyan LCD kijelzőn történik, melynek negatív tápfeszültségre van szüksége a kontraszt állításához. Ezt a negatív feszültséget az LCD órajelének egyenirányításával, közvetlenül a kétsoros LCD panelen lehetett megoldani. A 9851 IC-hez YO5AT tervezett egy vendégnyákot. Az IC erre beültethető, és a vendégnyák lábai IC foglalatba dugaszolhatók. Ez a generátor is egér enkóderrel hangolható, egysoros reflexiós LCD kijelzővel működik. A következő fotó AD9951 DDS IC-vel működik. A generátor áramkör 0-160 MHz tartományban hangolható egér enkóderrel. A hangolást itt is a digitek választásával lehet gyorsítani, illetve pontosítani. Mivel ez a tipus 1.8V tápfeszültséget igényel, a kimeneti feszültség is kisebb. A szintemelés szélessávú kétfokozatú műveleti erősítővel valósul meg.
A PIK18f252 áramkör három porttal rendelkezik, így lehetőséget kínál VFO és sávváltó kialakítására. A 9 amatőrsávra ( alul és felül frekvenciakorláttal ellátott VFO áramkör) a 9 RH amatőrsávnak megfelelő frekvenciatartományt állítja elő, beégetett középfrekvenciák alkalmazása mellett, a CW,
LSB és USB shiftnek megfeleően. A VFO RIT lehetséggel is rendelkezik, mellyel akár keresztsávos üzem is beállítható. Az alkalmazott pik analóg bemenetekkel is rendelkezik, így a kétsoros háttérvilágításos LCD kijelző második sorában lehetőség nyílt digitális S mérő kialakítására, mely adáskor kimenő szintet is jelezhet. Az áramkör 9 állású yaxley tárcsát fogad a sáv beállítására, 3 állású kapcsoló a CW, LSB illetve USB üzemet váltja. Fogadja a RIT aktiválására szolgáló kapcsolót illetve a PTT jelet az adási és vételi frekvenciák módosítására.
A PIC18f252 lehetőségeit ( de korlátozottan) kihasználó áramköri megoldás a következő 0-160 MHz között hangolható áramkör. A DDS IC ebben is AD9951 tipusu. A sávokat lévén kísérleti darab- itt egy 4 áramkörös dip kapcsolóval lehet beállítani. A vendégnyák HA2NJ vasalóját dícséri. Régebbi, és ezért alacsonyabb felső határfrekvenciával rendelkező DDS IC felhasználásával készült az 5-5.5 MHz tartományban hangolható VFO. Az eszköz tipusa AD9834. A jel szűrésére és szintjének emelésére szolgál a kimenetet követő sávszűrő. A DDC IC itt is vendégnyákon van, Így kihúzható, és szükség esetén másik áramkörbe dugaszolható.
A frekvencia hangolásra sokféle egér enkóder megoldás született. Többnyire meghíbásodás miatt kiselejtezett egerek optikai érzékelőjéből és a hozzájuk tartozó fényrekeszek felhasználásával készültek. Az eredeti nyákból lomfűrésszel kivágott nyomtatott áramköri részletek a más célra már használhatatlan potencióméterek csapágyainak kombinálásával születtek.
Az induktív enkóderek is kipróbálhatók. Az ábrán egy floppy egység léptetőmotorjából kialakított enkóder látható. Noha a tekercsekben indukálódott feszültséget nagy erősítésű duál műveleti erősítő igyekszik TTL szintű négyszöggé alakítani, a lassú forgatás esetén, ha például pontosan kell ráállni egy adott frekvenciára, használhatatlannak bizonyult. 2009 február 3 HA5KJ -Jóska.