Xitoydan DDS signal generatori dizaynerining sinovi. Mikrokontrollerdagi funksiya generatori avr kontrollerlaridagi funksiya generatorlarining sxemalari

Maksimal chastota - 65534 Gts (va kvadrat to'lqinli 8 MGts gacha HS chiqishi). Va keyin men generatorni FPGA o'zini eng yaxshi ko'rsatishi mumkin bo'lgan ajoyib vazifa deb o'yladim. Sport masalasiga kelsak, men FPGA-da loyihani takrorlashga qaror qildim, shu bilan birga ikki hafta oxiri ichida belgilangan muddatlarni bajarib, parametrlarni aniq belgilanmagan, lekin maksimal mumkin. Bundan nima chiqqanini kesish ostida bilib olishingiz mumkin.

Nolinchi kun

Dam olish kunlari kelishidan oldin, men amalga oshirish haqida o'ylash uchun biroz vaqtim bor edi. Vazifamni soddalashtirish uchun men generatorni tugmalar va LCD displeyli alohida qurilma sifatida emas, balki USB orqali kompyuterga ulanadigan qurilma sifatida qilishga qaror qildim. Buning uchun menda USB2RS232 plata bor. Kengash haydovchilarni (CDC) talab qilmaydi, shuning uchun u Linux ostida ishlaydi deb o'ylayman (ba'zilar uchun bu muhim). Bundan tashqari, men allaqachon RS232 orqali xabarlarni qabul qilish bilan ishlaganimni yashirmayman. Men opencores.com saytidan RS232 bilan ishlash uchun tayyor modullarni olaman.

Sinus to'lqin signalini yaratish uchun sizga DAC kerak bo'ladi. Asl loyihada bo'lgani kabi DAC turini tanladim - R2R 8-bit. Bu sizga yuqori chastotalarda, megaherts tartibida ishlash imkonini beradi. Ishonchim komilki, FPGA buni engishi kerak

Men COM porti orqali ma'lumotlarni uzatish uchun dasturni qanday yozish haqida o'ylardim. Bir tomondan, siz Delphi7 da yozishingiz mumkin, sizda bunday dasturni yozish tajribangiz bor va bundan tashqari, bajariladigan fayl hajmi katta bo'lmaydi. Men HTML-sahifada java skripti ko'rinishida Serial bilan ishlash uchun biror narsani chizishga harakat qildim, lekin u ko'proq yoki kamroq faqat Chrome serial API orqali ishladi, lekin buning uchun plaginni o'rnatishingiz kerak ... umuman , bu ham gap emas. Men PyQt5-ni o'zim uchun yangilik sifatida sinab ko'rdim, lekin bunday loyihani tarqatishda siz bir nechta kutubxonalarni sudrab olishingiz kerak. PyQt loyihasini exe fayliga kompilyatsiya qilishga urinib ko'rganimizdan so'ng, u 10 MB dan ortiq bo'lib chiqdi. Ya'ni, u C++\Qt5 da yozilgan dasturdan yaxshiroq bo'lmaydi. Shuni ham hisobga olish kerakki, menda python-da rivojlanish bo'yicha tajribam yo'q, lekin Qt5da tajribam bor. Shuning uchun tanlov Qt5 ga tushdi. Beshinchi versiyadan boshlab serial bilan ishlash moduli paydo bo'ldi va men u bilan allaqachon ishlaganman. Qt5-ga asoslangan dasturni Linux va Mac-ga o'tkazish mumkin (ba'zilar uchun bu muhim) va 5.2 versiyasidan QWidgetlarga asoslangan ilovalar hatto smartfonga ham o'tkazilishi mumkin!

Yana nima kerak? Tabiiyki, platada FPGA mavjud. Menda ulardan ikkitasi bor (10 ming hujayra uchun Cyclone iv EP4CE10E22C8N va 5 ming hujayra uchun Cyclone ii EP2C5). Men faqat qulayroq ulagich tufayli chap tomonni tanlayman. Hajmi bo'yicha loyiha katta bo'lishni maqsad qilgan emas, shuning uchun u ikkalasiga ham mos keladi. Ular tezlikda farq qilmaydi. Ikkala platada ham bortda 50 MGts chastotali osilatorlar mavjud va FPGA ichida PLL mavjud, uning yordamida chastotani rejalashtirilgan 200 MGts ga oshirishim mumkin.

Birinchi kun

Sintezator loyihamda allaqachon DDS modulini yasaganim sababli, men darhol lehim temirini oldim va DACni rezistorlar bilan lehimlashni boshladim. Men prototip taxtasini oldim. O'rnatish o'rash yordamida amalga oshirildi. Texnologiyaga ta'sir qilgan yagona o'zgarish shundaki, men F38N kislotasidan voz kechib, TT ​​indikatorli oqim jeli foydasiga stendlarni qalay qildim. Texnologiyaning mohiyati oddiy: men tokchalarni bosilgan elektron plataga lehimlayman va bosilgan elektron plata tomonidan ularga rezistorlarni lehimlayman. Men etishmayotgan ulanishlarni burish orqali qilaman. Bundan tashqari, tokchalar qulay, chunki men ularni to'g'ridan-to'g'ri FPGA platasiga joylashtira olaman.

Afsuski, uyda 1 va 2 kilo-ohm rezistorlar mavjud emas edi. Do'konga borishga vaqt yo'q edi. Men qoidalarimdan biridan voz kechishim va eski keraksiz taxtadan rezistorlarni olib tashlashim kerak edi. U erda 15K va 30K rezistorlar ishlatilgan. Natijada bu Frankenshteyn:


Loyihani yaratgandan so'ng, siz maqsadli qurilmani o'rnatishingiz kerak: Menyu Assigments -> Device


Loyihada men boshqarilmaydigan asosiy DDS modulini belgilangan chastotaga kodladim.

1000 Hz generator moduli

modul signal_generator (clk50M, signal_out); kirish simi clk50M; sim chiqishi signal_out; tel clk200M; osc osc_200M reg akkumulyatori; signal_out = akkumulyatorni belgilash; //1000 Gts ni yaratishga harakat qiling //50 000 000 Gts - tashqi generatorning takt chastotasi //2^32 = 4,294,967,296 - DDS bit chuqurligi - 32 bit //1000Hz / 50,000,000 Gts ni ajrating / 29,000,000 Gts / har doim 2924, @729 = (posedge clk50M) akkumulyatorni ishga tushiring<= accumulator + 32"d42949; end endmodule


Shundan so‘ng, men “Kompilyatsiyani boshlash” tugmasini bosdim, shunda ishlab chiqish muhiti loyihaning asosiy modulida qanday kiritish/chiqish liniyalari borligi va ular qanday jismoniy PIN-kodlarga ulanganligini so‘raydi.Siz deyarli hamma bilan bog‘lanishingiz mumkin.Kompilyatsiyadan so‘ng, biz FPGA chipining haqiqiy PIN-kodlariga ko'rinadigan qatorlarni belgilang:

Menyu elementi Assigments -> Pin Planner

Iltimos, hozircha HS_OUT, key0 va key1 qatorlariga e'tibor bermang, ular loyihada keyinroq paydo bo'ladi, lekin boshida skrinshot olishga vaqtim yo'q edi.

Aslida, "Joylashuv" ustunida faqat PIN_nn-ni "ro'yxatdan o'tkazish" kifoya qiladi va qolgan parametrlar (I/U standarti, Current Strench va Slew Rate) sukut bo'yicha qoldirilishi mumkin yoki siz tomonidan taklif qilinganlarni tanlashingiz mumkin. hech qanday ogohlantirish bo'lmasligi uchun standart (standart) "ov.

Qaysi PIN-kod platadagi ulagich raqamiga mos kelishini qanday aniqlash mumkin?

Ulagichning pin raqamlari taxtada belgilangan


Va ulagich kontaktlari ulangan FPGA pinlari FPGA platasi bilan birga kelgan hujjatlarda tasvirlangan.




Pinlar tayinlangandan so'ng, men loyihani qayta kompilyatsiya qilaman va uni USB dasturchisi yordamida o'chirib qo'yaman. Agar sizda USB Byte blaster dasturchisi uchun drayverlar o'rnatilmagan bo'lsa, Windows-ga ular Quartus o'rnatilgan papkada joylashganligini ayting. Keyin uni o'zi topadi.

Dasturchi JTAG ulagichiga ulangan bo'lishi kerak. Va dasturlash uchun menyu elementi "Asboblar -> Dasturchi" (yoki asboblar panelidagi belgini bosing). "Ishga tushirish" tugmasi, quvonchli "Muvaffaqiyat" va proshivka allaqachon FPGA ichida va allaqachon ishlamoqda. Faqat FPGA-ni o'chirmang, aks holda u hamma narsani unutadi.

Asboblar -> Dasturchi


DAC FPGA plata ulagichiga ulangan. Men S1-112A osiloskopini DAC chiqishiga ulayman. Natijada "arra" bo'lishi kerak, chunki fazali akkumulyatorning DDS so'zining yuqori tartibli qismi 8 bitli chiqishga chiqariladi. Va u har doim to'lib toshib ketguncha ortadi.

Taxminan 1,5 soat va 1000 Gts chastotada men quyidagi oscillogrammani ko'raman:

Shuni ta'kidlashni istardimki, "arra" o'rtada kichik singan. Buning sababi rezistorlarning bir qator qiymatlarga ega bo'lishidir.

Aniqlanishi kerak bo'lgan yana bir muhim nuqta - bu DDS generatorining maksimal mumkin bo'lgan chastotasi. To'g'ri sozlangan TimeQuest parametrlari bilan "Tuzlama hisoboti" da kompilyatsiya qilingandan so'ng, kontaktlarning zanglashiga olib keladigan tezligi 200 MGts dan yuqori ekanligini ko'rishingiz mumkin. Bu PLL yordamida 50 MGts generator chastotasini 4 ga ko'paytiraman degan ma'noni anglatadi.DDS fazali akkumulyatorning qiymatini 200 MGts chastota bilan oshiraman. Bizning sharoitimizda olinishi mumkin bo'lgan oxirgi chastota diapazoni 0 - 100 MGts. Chastotani sozlash aniqligi:

200 000 000 Gts (clk) / 2^32 (DDS) = 0,047 Gts
Ya'ni, ~0,05 Gts dan yaxshiroqdir. Men bunday ish chastotalari diapazoni (0 ... 100 MGts) bo'lgan generator uchun hertsning bir qismining aniqligini etarli deb hisoblayman. Agar kimdir aniqlikni oshirishi kerak bo'lsa, buning uchun ular DDS bit chuqurligini oshirishi mumkin (TimeQuest Timing Analyzer-da mantiqiy zanjirning ishlash tezligi CLK = 200 MGts oralig'ida ekanligini tekshirishni unutmang, chunki bu toplayıcı) yoki oddiygina agar bunday keng chastota diapazoni talab qilinmasa, soat chastotasini kamaytiring.

TimeQuest vaqt tahlilchisi


Ekranda "ko'rdim" ni ko'rganimdan so'ng, oilaviy muammolar meni mamlakatga borishga majbur qildi (bu mening dam olish kunim edi). U erda men o'rgandim, pishirdim, mangal pishirdim va kechqurun meni kutayotgan syurpriz haqida hech qanday tasavvurga ega emasdim. Kechga yaqinroq, yotishdan oldin, men boshqa chastotalar uchun signal shakliga qarashga qaror qildim.

100 kHz chastota uchun

250 kHz chastota uchun

500 kHz chastota uchun

1 MGts chastota uchun

Ikkinchi kun

DAC 100 va 200 Ohm rezistorlarda qanday ishlashi qiziq bo'lganligi sababli, men darhol lehim temirini oldim. Bu safar DAC aniqroq bo'lib chiqdi va uni o'rnatish uchun kamroq vaqt kerak bo'ldi.

Biz DACni FPGA platasiga joylashtiramiz va uni osiloskopga ulaymiz

1 MGts tekshirilmoqda - VO! Bu butunlay boshqa masala!

10 MGts ni ko'rdim

25 MGts ni ko'rgan


10 MGts arra shakli hali ham to'g'ri shaklga o'xshaydi. Ammo 25 MGts chastotada u endi "chiroyli" emas. Biroq, C1-112a 10 MGts tarmoqli kengligiga ega, shuning uchun bu holda sabab allaqachon osiloskopda bo'lishi mumkin.

Asosan, DAC bilan bu masalani yopiq deb hisoblash mumkin. Endi yuqori tezlikdagi chiqishning to'lqin shakllarini olaylik. Buning uchun biz FPGA ning alohida PIN-kodiga eng muhim bitni chiqaramiz. Biz ushbu qator uchun ma'lumotlarni DDS akkumulyatorining eng muhim bitidan olamiz.

hs_out = akkumulyatorni belgilang;

Kvadrat to'lqin 1 MGts

Kvadrat to'lqin 5 MGts

Kvadrat to'lqin 25 MGts

50 MGts kvadrat to'lqin hozir deyarli ko'rinmas


Lekin menimcha, FPGA chiqishi qarshilik bilan yuklanishi kerak. Ehtimol, jabhalar tikroq bo'lar edi.

Sinus jadvalga muvofiq amalga oshiriladi. Jadval hajmi 8 bitning 256 qiymatidan iborat. Ko'proq olish mumkin edi, lekin menda allaqachon tayyor mif fayli bor edi. Sehrgardan foydalanib, mif faylidan sinus jadval ma'lumotlari bilan ROM elementini yaratamiz.

ROM yaratish - Asboblar -> Mega Wizard Plugin menejeri


1 port ROMni tanlang va modulga nom bering

Biz rozimiz

Bu erda biz ham rozi bo'lamiz

Browse-dan foydalanib, biz sinus jadvali bilan mif faylimizni topamiz

Biz bu erda ham hech narsani o'zgartirmaymiz.

Sine_rom_bb.v modulidan belgini olib tashlang - bu kerak emas. Keyingi tugatish. Quartus sizdan loyihaga modul qo'shishingizni so'raydi - biz rozimiz. Shundan so'ng, modul Verilog'dagi boshqa har qanday modul kabi ishlatilishi mumkin.


DDS akkumulyator so'zining yuqori 8 biti ROM manzili sifatida ishlatiladi va ma'lumotlar chiqishi sinus qiymati bo'ladi.

Kod

//sine rom sim sine_out; sine_rom sine1(.clock(clk200M), .manzil(akkumulyator), .q(sine_out));


Turli chastotalardagi sinus to'lqinining oscillogrammasi ... bir xil ko'rinadi.

Agar xohlasangiz, rezistor tarqalishi bilan bog'liq DAC muammolarini ko'rib chiqishingiz mumkin:

Xo'sh, dam olish kunlarining oxiri. Ammo kompyuterdan boshqarish uchun dasturiy ta'minot hali yozilmagan. Men rejalashtirilgan muddatlarni bajarmaganimni tan olishga majburman.

Uchinchi kun

Vaqt juda oz, shuning uchun dasturni shoshqaloqlik bilan yozamiz (eng yaxshi an'analarda). Ba'zi joylarda harflar sonini kamaytirish va klaviaturadan ma'lumotlarni kiritish qulayligi uchun vidjet nomi bilan hodisa filtri qo'llaniladi. Iltimos, tushuning va kechiring.

Interfeys

Analoglar bilan havolalar

To'liq ro'yxat emas
Funktsional DDS generatori. AVR asosida yaratilgan. Chastotalar 0… 65534 Hz.
GK101 DDS generatorini ko'rib chiqish. Altera MAX240 FPGA yordamida yaratilgan. 10 MGts gacha bo'lgan chastotalar.
PIC16F870 da ko'p funksiyali generator. Chastota diapazoni: 11 Hz - 60 kHz.
generatorlar Teglar qo'shish

So'nggi paytlarda raqamli chastota sintezi (DDS) usullari keng tarqaldi va amalga oshirish usullari juda xilma-xildir. Amalga oshirish usuli va usuli generatorga qo'yiladigan talablarga bog'liq.

    Menda generator uchun asosiy talablar bor edi:
  • 1. 0,01 Gts dan 50000 Gts gacha bo'lgan 0,01 Gts qadamlardagi chastota
  • 2. Butun diapazonda mumkin bo'lgan maksimal chiziqlilik.
  • 3. Kam empedansli yukda ishlash (dinamiklar va ultratovushli magnitostriktiv emitentlarni sinash uchun)
  • 4. "Issiq" sozlashning qulayligi va tezligi.
  • 5. Berilgan diapazonni berilgan qadam bilan skanerlash (har qanday narsaning rezonans chastotasini aniqlash uchun qulay)
  • 6. Ko'p sonli to'lqin shakllari va kalibrlash uchun doimiy kuchlanish.
  • 7. Displeyning axborot mazmuni.
AVR va Microchip kontrollerlari uchun dasturlarni yozishga tez-tez duch kelganim uchun men ular orasidan tanladim ... Lekin AVR arzonroq va funktsionalroq bo'lib chiqdi. Tezlik va kerakli miqdordagi pinlar nuqtai nazaridan ATMega16 mos edi. Endi hisob-kitoblar haqida ...
F max = 16000000Hz (atmega chastotasi)
Fazali akkumulyatorni, LUT dan namunani va chiqishni o'zgartirish uchun 15 tsiklni olamiz.
Jami Fclk=16000000Hz/15=1066666,6667Hz
Kerakli aniqlik uchun men 32 bitli fazali akkumulyatorni tanladim.
Endi minimal qadamni hisoblaymiz:
Qadam(Hz)= 1066666,6667Hz/(2^32)= 0,0002483526865641276041667(Hz)
Jeneratör kodining o'zi:
esa (1)( #asm QO'SHISH R1,R6 ADC R2,R7 ADC R3,R8 ADC R4,R9 #endasm PORTC=Signalning_LUT;
50000 Gts chastotada har bir davr uchun signal DAC chiqishida ~21 kuchlanish o'zgarishi natijasida hosil bo'ladi.
DAC sifatida men oddiy R-2R matritsasini tanladim - bu stroblarni talab qilmaydi va 8 bit shartlarni to'liq qondiradi. Bular. (|12|+|-12|) / 2^8 = 0,09375~ 0,1V

Chastotani sozlashning qulayligi va tezligi uchun men VK6BRO radio havaskori tomonidan taklif qilingan sxema bo'yicha step motoridan valkoderdan foydalandim.

Kodlovchidan noto'g'ri pozitivlarni oldini olish uchun nazoratchi qadamlar davomida ko'rsatmalarni bir necha marta tekshiradi va shundan keyingina o'zgarishlarni qayd qiladi.
Qolgan parametrlar 4 tugma yordamida o'rnatiladi.

    Jeneratör quyidagi signal shakllarini takrorlash qobiliyatiga ega:
  • 1. Sinus to'lqin
  • 2. Meandr
  • 3. H-to'lqini
  • 4. Simmetrik narvon
  • 5. Trapetsiya
  • 6. Ko'rgan
  • 7. Simmetrik to‘rtburchak
  • 8. Asimmetrik zinapoya
  • 9. Asimmetrik to‘rtburchak
  • 10. Doimiy "+"
  • 11. Doimiy "-"
Ish haqida video
Shuningdek, men sozlanishi qadam bilan ma'lum chastota diapazonini skanerlash funksiyasini qo'shdim.
Qadam 0,01Hz-0,1Hz-1Hz-10Hz-100Hz va aksincha o'rnatiladi. Displeyning qulayligi va dasturni yozish qulayligi uchun men Nokia 3310 (84x48) LCD displeydan foydalandim. Kodlovchining o'zi sifatida men eski qattiq diskdan bipolyar step motorini ishlatardim. Men Proteus-da butun qurilma va dasturni simulyatsiya qildim.
Jeneratorning analog qismi


DAC bir qutbli signal ishlab chiqarganligi va g'oya bipolyar generatorni yaratish bo'lganligi sababli, kuchaytirgichda egilishdan foydalanish kerak. Men kuchlanish mos yozuvlar manbai sifatida TL431 ni tanladim. Men kuchaytirgichning o'zini 2 bosqichda amalga oshirdim. Yuk ko'tarish qobiliyatini oshirish uchun men TDA2030A chipida kuchlanish izdoshidan foydalandim.

U3 qurilmasining chiqishidagi signal kirish signalini shakl va amplitudada takrorlaydi, lekin ko'proq quvvatga ega, ya'ni. sxema past empedansli yukda ishlashi mumkin. Takrorlagich past chastotali generatorning chiqish quvvatini oshirish uchun ishlatiladi (shuning uchun karnay boshlari yoki akustik tizimlar to'g'ridan-to'g'ri sinovdan o'tkazilishi mumkin). Repetitorning ish chastotasi diapazoni DC dan 0,5...1 MGts gacha chiziqli bo'lib, bu past chastotali generator uchun etarli.

Quvvat manbai - har qanday (impuls yoki chiziqli), tercihen +5, +12/-12V manbalari bilan barqarorlashtirilgan.

Assambleya haqida
Yig'ish paytida hech qanday muammo yo'q edi, o'rnatish simmetriyaning analog qismini va chiqish signalining amplitudasini sozlashni o'z ichiga oladi. Yo'nalish R1 va R6 rezistorlar tomonidan o'rnatiladi.Birinchi bosqichning amplitudasi R5, ikkinchisi R8.

Maksimal chastota - 65534 Gts (va kvadrat to'lqinli 8 MGts gacha HS chiqishi). Va keyin men generatorni FPGA o'zini eng yaxshi ko'rsatishi mumkin bo'lgan ajoyib vazifa deb o'yladim. Sport masalasiga kelsak, men FPGA-da loyihani takrorlashga qaror qildim, shu bilan birga ikki hafta oxiri ichida belgilangan muddatlarni bajarib, parametrlarni aniq belgilanmagan, lekin maksimal mumkin. Bundan nima chiqqanini kesish ostida bilib olishingiz mumkin.

Nolinchi kun

Dam olish kunlari kelishidan oldin, men amalga oshirish haqida o'ylash uchun biroz vaqtim bor edi. Vazifamni soddalashtirish uchun men generatorni tugmalar va LCD displeyli alohida qurilma sifatida emas, balki USB orqali kompyuterga ulanadigan qurilma sifatida qilishga qaror qildim. Buning uchun menda USB2RS232 plata bor. Kengash haydovchilarni (CDC) talab qilmaydi, shuning uchun u Linux ostida ishlaydi deb o'ylayman (ba'zilar uchun bu muhim). Bundan tashqari, men allaqachon RS232 orqali xabarlarni qabul qilish bilan ishlaganimni yashirmayman. Men opencores.com saytidan RS232 bilan ishlash uchun tayyor modullarni olaman.

Sinus to'lqin signalini yaratish uchun sizga DAC kerak bo'ladi. Asl loyihada bo'lgani kabi DAC turini tanladim - R2R 8-bit. Bu sizga yuqori chastotalarda, megaherts tartibida ishlash imkonini beradi. Ishonchim komilki, FPGA buni engishi kerak

Men COM porti orqali ma'lumotlarni uzatish uchun dasturni qanday yozish haqida o'ylardim. Bir tomondan, siz Delphi7 da yozishingiz mumkin, sizda bunday dasturni yozish tajribangiz bor va bundan tashqari, bajariladigan fayl hajmi katta bo'lmaydi. Men HTML-sahifada java skripti ko'rinishida Serial bilan ishlash uchun biror narsani chizishga harakat qildim, lekin u ko'proq yoki kamroq faqat Chrome serial API orqali ishladi, lekin buning uchun plaginni o'rnatishingiz kerak ... umuman , bu ham gap emas. Men PyQt5-ni o'zim uchun yangilik sifatida sinab ko'rdim, lekin bunday loyihani tarqatishda siz bir nechta kutubxonalarni sudrab olishingiz kerak. PyQt loyihasini exe fayliga kompilyatsiya qilishga urinib ko'rganimizdan so'ng, u 10 MB dan ortiq bo'lib chiqdi. Ya'ni, u C++\Qt5 da yozilgan dasturdan yaxshiroq bo'lmaydi. Shuni ham hisobga olish kerakki, menda python-da rivojlanish bo'yicha tajribam yo'q, lekin Qt5da tajribam bor. Shuning uchun tanlov Qt5 ga tushdi. Beshinchi versiyadan boshlab serial bilan ishlash moduli paydo bo'ldi va men u bilan allaqachon ishlaganman. Qt5-ga asoslangan dasturni Linux va Mac-ga o'tkazish mumkin (ba'zilar uchun bu muhim) va 5.2 versiyasidan QWidgetlarga asoslangan ilovalar hatto smartfonga ham o'tkazilishi mumkin!

Yana nima kerak? Tabiiyki, platada FPGA mavjud. Menda ulardan ikkitasi bor (10 ming hujayra uchun Cyclone iv EP4CE10E22C8N va 5 ming hujayra uchun Cyclone ii EP2C5). Men faqat qulayroq ulagich tufayli chap tomonni tanlayman. Hajmi bo'yicha loyiha katta bo'lishni maqsad qilgan emas, shuning uchun u ikkalasiga ham mos keladi. Ular tezlikda farq qilmaydi. Ikkala platada ham bortda 50 MGts chastotali osilatorlar mavjud va FPGA ichida PLL mavjud, uning yordamida chastotani rejalashtirilgan 200 MGts ga oshirishim mumkin.

Birinchi kun

Sintezator loyihamda allaqachon DDS modulini yasaganim sababli, men darhol lehim temirini oldim va DACni rezistorlar bilan lehimlashni boshladim. Men prototip taxtasini oldim. O'rnatish yordamida amalga oshirildi. Texnologiyaga ta'sir qilgan yagona o'zgarish shundaki, men F38N kislotasidan voz kechib, TT ​​indikatorli oqim jeli foydasiga stendlarni qalay qildim. Texnologiyaning mohiyati oddiy: men tokchalarni bosilgan elektron plataga lehimlayman va bosilgan elektron plata tomonidan ularga rezistorlarni lehimlayman. Men etishmayotgan ulanishlarni burish orqali qilaman. Bundan tashqari, tokchalar qulay, chunki men ularni to'g'ridan-to'g'ri FPGA platasiga joylashtira olaman.

Afsuski, uyda 1 va 2 kilo-ohm rezistorlar mavjud emas edi. Do'konga borishga vaqt yo'q edi. Men qoidalarimdan biridan voz kechishim va eski keraksiz taxtadan rezistorlarni olib tashlashim kerak edi. U erda 15K va 30K rezistorlar ishlatilgan. Natijada bu Frankenshteyn:


Loyihani yaratgandan so'ng, siz maqsadli qurilmani o'rnatishingiz kerak: Menyu Assigments -> Device


Loyihada men boshqarilmaydigan asosiy DDS modulini belgilangan chastotaga kodladim.

1000 Hz generator moduli

modul signal_generator (clk50M, signal_out); kirish simi clk50M; sim chiqishi signal_out; tel clk200M; osc osc_200M reg akkumulyatori; signal_out = akkumulyatorni belgilash; //1000 Gts ni yaratishga harakat qiling //50 000 000 Gts - tashqi generatorning takt chastotasi //2^32 = 4,294,967,296 - DDS bit chuqurligi - 32 bit //1000Hz / 50,000,000 Gts ni ajrating / 29,000,000 Gts / har doim 2924, @729 = (posedge clk50M) akkumulyatorni ishga tushiring<= accumulator + 32"d42949; end endmodule


Shundan so‘ng, men “Kompilyatsiyani boshlash” tugmasini bosdim, shunda ishlab chiqish muhiti loyihaning asosiy modulida qanday kiritish/chiqish liniyalari borligi va ular qanday jismoniy PIN-kodlarga ulanganligini so‘raydi.Siz deyarli hamma bilan bog‘lanishingiz mumkin.Kompilyatsiyadan so‘ng, biz FPGA chipining haqiqiy PIN-kodlariga ko'rinadigan qatorlarni belgilang:

Menyu elementi Assigments -> Pin Planner

Iltimos, hozircha HS_OUT, key0 va key1 qatorlariga e'tibor bermang, ular loyihada keyinroq paydo bo'ladi, lekin boshida skrinshot olishga vaqtim yo'q edi.

Aslida, "Joylashuv" ustunida faqat PIN_nn-ni "ro'yxatdan o'tkazish" kifoya qiladi va qolgan parametrlar (I/U standarti, Current Strench va Slew Rate) sukut bo'yicha qoldirilishi mumkin yoki siz tomonidan taklif qilinganlarni tanlashingiz mumkin. hech qanday ogohlantirish bo'lmasligi uchun standart (standart) "ov.

Qaysi PIN-kod platadagi ulagich raqamiga mos kelishini qanday aniqlash mumkin?

Ulagichning pin raqamlari taxtada belgilangan


Va ulagich kontaktlari ulangan FPGA pinlari FPGA platasi bilan birga kelgan hujjatlarda tasvirlangan.




Pinlar tayinlangandan so'ng, men loyihani qayta kompilyatsiya qilaman va uni USB dasturchisi yordamida o'chirib qo'yaman. Agar sizda USB Byte blaster dasturchisi uchun drayverlar o'rnatilmagan bo'lsa, Windows-ga ular Quartus o'rnatilgan papkada joylashganligini ayting. Keyin uni o'zi topadi.

Dasturchi JTAG ulagichiga ulangan bo'lishi kerak. Va dasturlash uchun menyu elementi "Asboblar -> Dasturchi" (yoki asboblar panelidagi belgini bosing). "Ishga tushirish" tugmasi, quvonchli "Muvaffaqiyat" va proshivka allaqachon FPGA ichida va allaqachon ishlamoqda. Faqat FPGA-ni o'chirmang, aks holda u hamma narsani unutadi.

Asboblar -> Dasturchi


DAC FPGA plata ulagichiga ulangan. Men S1-112A osiloskopini DAC chiqishiga ulayman. Natijada "arra" bo'lishi kerak, chunki fazali akkumulyatorning DDS so'zining yuqori tartibli qismi 8 bitli chiqishga chiqariladi. Va u har doim to'lib toshib ketguncha ortadi.

Taxminan 1,5 soat va 1000 Gts chastotada men quyidagi oscillogrammani ko'raman:

Shuni ta'kidlashni istardimki, "arra" o'rtada kichik singan. Buning sababi rezistorlarning bir qator qiymatlarga ega bo'lishidir.

Aniqlanishi kerak bo'lgan yana bir muhim nuqta - bu DDS generatorining maksimal mumkin bo'lgan chastotasi. To'g'ri sozlangan TimeQuest parametrlari bilan "Tuzlama hisoboti" da kompilyatsiya qilingandan so'ng, kontaktlarning zanglashiga olib keladigan tezligi 200 MGts dan yuqori ekanligini ko'rishingiz mumkin. Bu PLL yordamida 50 MGts generator chastotasini 4 ga ko'paytiraman degan ma'noni anglatadi.DDS fazali akkumulyatorning qiymatini 200 MGts chastota bilan oshiraman. Bizning sharoitimizda olinishi mumkin bo'lgan oxirgi chastota diapazoni 0 - 100 MGts. Chastotani sozlash aniqligi:

200 000 000 Gts (clk) / 2^32 (DDS) = 0,047 Gts
Ya'ni, ~0,05 Gts dan yaxshiroqdir. Men bunday ish chastotalari diapazoni (0 ... 100 MGts) bo'lgan generator uchun hertsning bir qismining aniqligini etarli deb hisoblayman. Agar kimdir aniqlikni oshirishi kerak bo'lsa, buning uchun ular DDS bit chuqurligini oshirishi mumkin (TimeQuest Timing Analyzer-da mantiqiy zanjirning ishlash tezligi CLK = 200 MGts oralig'ida ekanligini tekshirishni unutmang, chunki bu toplayıcı) yoki oddiygina agar bunday keng chastota diapazoni talab qilinmasa, soat chastotasini kamaytiring.

TimeQuest vaqt tahlilchisi


Ekranda "ko'rdim" ni ko'rganimdan so'ng, oilaviy muammolar meni mamlakatga borishga majbur qildi (bu mening dam olish kunim edi). U erda men o'rgandim, pishirdim, mangal pishirdim va kechqurun meni kutayotgan syurpriz haqida hech qanday tasavvurga ega emasdim. Kechga yaqinroq, yotishdan oldin, men boshqa chastotalar uchun signal shakliga qarashga qaror qildim.

100 kHz chastota uchun

250 kHz chastota uchun

500 kHz chastota uchun

1 MGts chastota uchun

Ikkinchi kun

DAC 100 va 200 Ohm rezistorlarda qanday ishlashi qiziq bo'lganligi sababli, men darhol lehim temirini oldim. Bu safar DAC aniqroq bo'lib chiqdi va uni o'rnatish uchun kamroq vaqt kerak bo'ldi.

Biz DACni FPGA platasiga joylashtiramiz va uni osiloskopga ulaymiz

1 MGts tekshirilmoqda - VO! Bu butunlay boshqa masala!

10 MGts ni ko'rdim

25 MGts ni ko'rgan


10 MGts arra shakli hali ham to'g'ri shaklga o'xshaydi. Ammo 25 MGts chastotada u endi "chiroyli" emas. Biroq, C1-112a 10 MGts tarmoqli kengligiga ega, shuning uchun bu holda sabab allaqachon osiloskopda bo'lishi mumkin.

Asosan, DAC bilan bu masalani yopiq deb hisoblash mumkin. Endi yuqori tezlikdagi chiqishning to'lqin shakllarini olaylik. Buning uchun biz FPGA ning alohida PIN-kodiga eng muhim bitni chiqaramiz. Biz ushbu qator uchun ma'lumotlarni DDS akkumulyatorining eng muhim bitidan olamiz.

hs_out = akkumulyatorni belgilang;

Kvadrat to'lqin 1 MGts

Kvadrat to'lqin 5 MGts

Kvadrat to'lqin 25 MGts

50 MGts kvadrat to'lqin hozir deyarli ko'rinmas


Lekin menimcha, FPGA chiqishi qarshilik bilan yuklanishi kerak. Ehtimol, jabhalar tikroq bo'lar edi.

Sinus jadvalga muvofiq amalga oshiriladi. Jadval hajmi 8 bitning 256 qiymatidan iborat. Ko'proq olish mumkin edi, lekin menda allaqachon tayyor mif fayli bor edi. Sehrgardan foydalanib, mif faylidan sinus jadval ma'lumotlari bilan ROM elementini yaratamiz.

ROM yaratish - Asboblar -> Mega Wizard Plugin menejeri


1 port ROMni tanlang va modulga nom bering

Biz rozimiz

Bu erda biz ham rozi bo'lamiz

Browse-dan foydalanib, biz sinus jadvali bilan mif faylimizni topamiz

Biz bu erda ham hech narsani o'zgartirmaymiz.

Sine_rom_bb.v modulidan belgini olib tashlang - bu kerak emas. Keyingi tugatish. Quartus sizdan loyihaga modul qo'shishingizni so'raydi - biz rozimiz. Shundan so'ng, modul Verilog'dagi boshqa har qanday modul kabi ishlatilishi mumkin.


DDS akkumulyator so'zining yuqori 8 biti ROM manzili sifatida ishlatiladi va ma'lumotlar chiqishi sinus qiymati bo'ladi.

Kod

//sine rom sim sine_out; sine_rom sine1(.clock(clk200M), .manzil(akkumulyator), .q(sine_out));


Turli chastotalardagi sinus to'lqinining oscillogrammasi ... bir xil ko'rinadi.

Agar xohlasangiz, rezistor tarqalishi bilan bog'liq DAC muammolarini ko'rib chiqishingiz mumkin:

Xo'sh, dam olish kunlarining oxiri. Ammo kompyuterdan boshqarish uchun dasturiy ta'minot hali yozilmagan. Men rejalashtirilgan muddatlarni bajarmaganimni tan olishga majburman.

Uchinchi kun

Vaqt juda oz, shuning uchun dasturni shoshqaloqlik bilan yozamiz (eng yaxshi an'analarda). Ba'zi joylarda harflar sonini kamaytirish va klaviaturadan ma'lumotlarni kiritish qulayligi uchun vidjet nomi bilan hodisa filtri qo'llaniladi. Iltimos, tushuning va kechiring.

Interfeys

Analoglar bilan havolalar

To'liq ro'yxat emas
Funktsional DDS generatori. AVR asosida yaratilgan. Chastotalar 0… 65534 Hz.
GK101 DDS generatorini ko'rib chiqish. Altera MAX240 FPGA yordamida yaratilgan. 10 MGts gacha bo'lgan chastotalar.
PIC16F870 da ko'p funksiyali generator. Chastota diapazoni: 11 Hz - 60 kHz.
generatorlar
  • Qt5
  • Teglar qo'shing

    DDS generatori yoki to'g'ridan-to'g'ri raqamli sintez generatori hozirda yangilikdan uzoqdir. Internetda, asosan, AVR mikrokontrollerlarida taqdim etilgan ko'plab sxemalar mavjud. DAC asosan R-2R matritsasidir, lekin AD9850 chipida dizaynlar ham mavjud (darvoqe, ular narxi past emas). Ammo, afsuski (yoki xayriyatki?), ularda menga kerak bo'lgan narsa yo'q edi: kichik o'lcham va arzon narx. Natijada, ushbu sxema ishlab chiqildi.

    Ushbu maqolada men ATmega8 mikrokontrollerida ishlab chiqarilgan DDS generatorini taqdim qilmoqchiman. Ma'lumotni ko'rsatish uchun grafik LCD LPH8731-3C ishlatiladi. Ushbu qurilma o'zboshimchalik shakli (100 ball) va belgilangan amplitudali davriy signalni olish imkonini beradi.

    Texnik xususiyatlari:

    • Ta'minot kuchlanishi: 5V
    • Joriy iste'mol:<100мА
    • Min. chiqish kuchlanishi: 0,5V
    • Maks. chiqish kuchlanishi: 2,5V
    • Voltajni sozlash bosqichi: 0,5V
    • Min. signal chastotasi: 10Hz
    • Maks. Signal chastotasi: 2kHz (10kHz)
    • Chastota qadami: 10Hz (100Hz)
    • Oldindan o'rnatilgan signallar soni: 8
    • Ma'lumotlar displeyi: grafik LCD
    • To'lqin shaklini "parvozda" qo'shish imkoniyati (miltillamasdan): yo'q
    • Orqa yorug'lik yorqinligi: sozlanishi, miltillashni talab qiladi
    • Maks. Xotiradagi shakllar soni: kamida 20

    Qurilma diagrammasi quyida keltirilgan:

    Sxemaning asosi, yuqorida aytib o'tilganidek, ATmega8-16AU mikrokontrolleridir. Indeks "...16" kerak, chunki sxema 16 MGts chastotali kvarts rezonatoridan foydalanadi. DAC R-2R matritsasida yaratilgan. Ushbu harakat sizga maxsus mikrosxemalardan foydalanishdan qochish imkonini beradi, lekin afsuski, bu sizga 10 .. 12 bitdan yuqori (havaskorlik sharoitida) haqiqiy DAC ruxsatiga erishishga imkon bermaydi. Operatsion kuchaytirgich matritsaning chiqishiga rezistiv kuchlanish bo'luvchi (R17, RV1) orqali ulanadi, takrorlanuvchi sxema bo'yicha ulanadi va oqimni kuchaytirishga xizmat qiladi.

    Qurilma tugmalar yordamida boshqariladi. Old panelda faqat SB1-SB4 tugmachalarini joylashtirish tavsiya etiladi. SB5 tugmasi "funktsional" rolini o'ynaydi va SB1-SB4 tugmalari uchun "asosiy"lardan farqli harakatlardan foydalanishga imkon beradi. Switch SA1 mos ravishda "generatsiya" va boshqaruv tugmalarini yoqadi/o'chiradi. Uning birinchi holatida boshqaruv yoqiladi va signal ishlab chiqarish o'chiriladi, ikkinchisida esa vaziyat birinchisiga mutlaqo ziddir. J2 ulagichini plataga yo'naltirish shart emas, chunki u faqat mikrokontrollerni dasturlashda platani quvvat bilan ta'minlash uchun mo'ljallangan (lekin siz to'g'ridan-to'g'ri treklarga ulanishingiz kerak bo'ladi).

    Qurilmaning bosilgan elektron platasi ikki tomonlama folga materialida ishlab chiqariladi va o'lchamlari (_ x _) ga ega. Uni ishlab chiqarishdagi asosiy qiyinchilik mikrokontrollerni o'rnatish uchun yo'llarning joylashuvidir, ammo agar siz bunday platalarni ishlab chiqarishda tajribangiz va / yoki fotorezist / LUT dan foydalanish qobiliyatiga ega bo'lsangiz, unda ishlab chiqarish jarayonida hech qanday muammo bo'lmasligi kerak.

    Qurilmani yig'ishda men vizalarning yaxshi lehimlanganligini va mikrokontroller oyoqlari va bosilgan elektron plata yo'llari orasidagi aloqa ishonchliligini tekshirishni qat'iy tavsiya qilaman. Men mikrokontrollerning faqat 1 ta lehimsiz pinini o'tkazib yubordim va natijada muammoni topish uchun bir necha kun kerak bo'ldi.

    Mikrodastur

    Mikrokontroller uchun proshivka yozilgan edi. .hex faylini to'ldirish uchun dasturchi va dasturiy ta'minot ishlatilgan. Quyida sug'urta bitlarini o'rnatish misoli bilan skrinshot keltirilgan. Bosilgan elektron platada dasturlash uchun maxsus ulagich bo'lmaganligi sababli, mikrokontrollerning dasturiy ta'minotini miltillash uchun siz vaqtincha mos keladigan treklarga (mikrokontroller pinlari "MISO", "MOSI", "SCK", "RESET") lehimlashingiz kerak bo'ladi.

    Qurilmani yig'ish va joylashtirish

    Qurilmani korpusga joylashtirishda SB5 tugmachasini uning yon tomoniga o'rnatish tavsiya etiladi. Mening versiyamdagi SA1 kaliti yukni ulash uchun ulagich kabi pastki uchida joylashgan edi. USB ulagichi korpusning yuqori qismida o'rnatilgan, chunki reja 3,7 -> 5V DC-DC konvertoridan foydalanish edi. Ammo men ko'p qirrali bo'lishni xohlaganim uchun, men bu blokni olinadigan qilishga qaror qildim.

    Elementlarni almashtirish imkoniyati

    Mikrokontrollerdan faqat ATmega8-16AU foydalanish mumkin. LM358 operatsion kuchaytirgichi SO-8 to'plamida o'xshash (masalan, NE532, OP04, OP221, OP290, ...) va mumkin bo'lgan pin mos kelmasligi haqida unutmasligingiz kerak. Transistor Q1 har qanday kam quvvatli n-p-n dan olinishi mumkin, masalan, mahalliy KT315 yoki KT3102. R1-R16 rezistorlarini minimal bardoshlik (0,5...1%) bilan qabul qilish tavsiya etiladi, lekin keng tarqalgan 2...5% ham ishlaydi (lekin bu erda signal shakli biroz yomonroq bo'lishi mumkin). Bundan tashqari, bir xil qiymatdagi rezistorlarni olish tavsiya etiladi (u 10 kOm bo'lsin), keyin 2R kerak bo'lganda, 10 kOm, R esa - 2x10 kOm parallel ravishda qo'ying. 22...33pF oralig'ida C1, C2 kondansatkichlarini olish maqsadga muvofiqdir. Amaldagi kvarts rezonatori past profilli, 16 MGts chastotada. Rezistor RV1 ko'p burilishli. Zener diyotini faqat 3,3V ga o'rnatish mumkin.

    LCD displeydan faqat sariq fon va "LPH8731-3C" yozuvi bilan foydalanish mumkin. U Siemens A60, A65 va boshqalar mobil telefonlarida uchraydi va 101x80 piksel o'lchamiga ega.

    Sozlamalar

    To'g'ri yig'ilgan qurilma sozlashni talab qilmaydi va boshqaruvchi yig'ilgandan va miltillagandan so'ng darhol ishlashi kerak. Agar bu sodir bo'lmasa, bosilgan elektron platadagi qisqa yo'llarni, LCD displeyning to'g'ri ulanishini, SA1 kalitidan simlarning yaxlitligini, shuningdek zener diyotining va quvvat manbai / USB ning xizmat ko'rsatish qobiliyatini tekshiring. kabel.

    Muvaffaqiyatli birinchi yoqilgandan so'ng, displeydagi sozlamalarga muvofiq chiqish signali darajasini sozlash uchun osiloskop va kesish rezistori RV1 dan foydalanishingiz kerak.

    Tugmalarning maqsadi: SB1 - "Chapta" (Chiqish kuchlanishi kamroq), SB2 - "O'ng" (Chiqish kuchlanishi ko'proq), SB3 - "Chastotalar +10" (Chastotalar +100), SB4 - "Chastotalar -10" ( Chastotasi - 100)<-- SB5 - Отжата (Нажата).

    Qurilmaning fotosurati va videosi:


    Quyidagi ikkita fotosurat 2 kHz dan yuqori chastotani qanday olishingiz mumkinligini ko'rsatadi. Lekin bu signalning sifati bilan bog'liq (to'rtburchaklar uchun bu muhim emas).



    Ushbu qurilma yordamida olingan signallarning oscillograms:





    Yig'ilgan qurilmaning ko'rinishi:


    Radioelementlar ro'yxati

    Belgilanish Turi Denominatsiya Miqdori EslatmaDo'konMening bloknotim
    U1 MK AVR 8-bit

    ATmega8A-AU

    1 Bloknot uchun
    U2 Operatsion kuchaytirgich

    LM358

    1 Uy-joy SO-8 (LM358D)) Bloknot uchun
    1-savol Bipolyar tranzistor

    BC547

    1 Bloknot uchun
    D1 Zener diyot

    BZX55C3V3

    1 Bloknot uchun
    RV1 Trimmer qarshiligi220 kOm1 Bloknot uchun
    R1-R9 Rezistor

    2,2 kOm

    9 0805, 1% Bloknot uchun
    R10-R16, R32 Rezistor

    1,1 kOm

    8 0805, 1% Bloknot uchun
    R17 Rezistor

    100 kOm

    1 0805 Bloknot uchun
    R19-R23 Rezistor

    5,6 kOm

    5 0805 Bloknot uchun
    R24-28, R18 Rezistor

    10 kOm

    5 0805 Bloknot uchun
    R29, R30 Rezistor

    220 Ohm

    2 0805 Bloknot uchun
    R31 Rezistor

    75 Ohm

    1 0805 Bloknot uchun
    R33 Rezistor

    510 Ohm

    1 0805 Bloknot uchun
    C1, C2 Kondensator27 pF2 0805

    $15,3

    Avvalo, DDS to'g'ridan-to'g'ri raqamli sintezator yoki raqamli signal sintezatori yoki mos yozuvlar chastotasidan ixtiyoriy shakl va chastota signallarini sintez qilish uchun mo'ljallangan elektron qurilma.

    Radio havaskoriga nima uchun generator kerakligini tushuntirmayman. Tayyor generatorlar arzon emas va adolatli vaznga ega, shuning uchun ularni jo'natish ham qimmatga tushadi. Shu sababli, DDS modullarini korpus va quvvat manbaisiz batafsil ko'rib chiqishga qaror qilindi.

    Internetda DDS modullarini tanlash kichik bo'lib chiqdi. Ko'proq yoki kamroq arzon va oddiy funktsiyalar to'plami bilan men faqat 2 turni topdim. Ular funktsional jihatdan bir xil, faqat boshqaruv elementlari va elektr ta'minotining joylashuvi bilan farqlanadi. Ulardan birini ishlatish uchun uchta kuchlanish kerak edi (+12V, -12V va +5V), ikkinchisi 7-9V bitta kuchlanishda ishlaydi. Bu hal qiluvchi ahamiyatga ega edi, keyin uni tayyor quvvat manbaidan quvvatlantirish osonroq bo'ladi va siz elektr ta'minoti pallasini maxsus panjara qilishingiz shart emas.

    Veb-saytdagi tavsifdan:

    Ishlash kuchlanishi: DC7-9V
    DDS chastota diapazoni: 1HZ-65534Hz.
    8 MGts gacha bo'lgan yuqori tezlikdagi chastota (HS) chiqishi;
    Ofset miqdorining DDS signalining amplitudasi ikkita potansiyometr tomonidan alohida sozlanishi mumkin;
    DDS signallari: sinus to'lqini, kvadrat to'lqin, arra tishi, teskari arra tishi, uchburchak to'lqini, EKG to'lqini va shovqin to'lqini.
    1602 LCD menyusi;
    Intuitiv klaviatura.
    Qiymatga bo'lim: 1,10,100,1000,10000 Hz;
    Quvvat avtomatik ravishda oxirgi ishlatilgan konfiguratsiyani tiklaydi.
    Ofset: 0,5pp-5Vpp
    Amplituda miqdori: 0,5Vpp-14Vpp

    Kengashning o'zi juda yuqori sifatli, lehimlash yaxshi, oqim yuviladi.

    Qo'limda mos keladigan ulagichga ega 9V quvvat manbai bo'lmagani uchun men 5V quvvat manbaini uladim. Ajabo, hamma narsa ishladi. Men faqat LCD displeyning kontrastini biroz sozlashim kerak edi. Shu maqsadda displeyning o'zi ostida kesish qarshiligi mavjud.

    Jeneratörda ko'k yorug'lik va juda ko'p boshqaruv tugmalari va 2 sozlash tugmalari bilan qulay alfanumerik LCD displey 1602 mavjud. Keling, tartibda boraylik. Quvvat ulagichi 8-9V (biz allaqachon bilib olganimizdek, u 5V dan ishonchli ishlaydi). Yoqish/o'chirish tugmasi. Yoqilganligini bildiruvchi LED.

    • yuqoriga va pastga - signal shaklini (funktsiyasini) tanlang;
    • o'ng va chap - avlod chastotasini tanlang (qadam Freq Step menyusida o'rnatiladi).
    • markaziy tugma - ishlab chiqarishni boshlash/to'xtatish.

    Ikki boshqaruv tutqichi:

    • amplituda;
    • ofset 0,5 - 5V.

    Yon tomonda 2 ta BNC ulagichi mavjud. Biri DDS chiqishi uchun, ikkinchisi yuqori chastotali signal uchun.

    Jeneratör quyidagi impuls shakllarini yaratishi mumkin:

    • EKG = elektrokardiogramma (O'FF holatida, chiqish chastotasini o'rnatish uchun "chap" va "o'ng" tugmalar. O'rta tugmachani ishga tushirish, quyidagi barcha to'lqin shakli o'rnatilgan)
    • NOISE = shovqin.
    • SawTooth = arra.
    • Rev Sawtooth = teskari arra.
    • Uchburchak = uchburchak.
    • Sinus = sinus to'lqin.
    • Kvadrat = to'rtburchaklar.