Mündəricat:

Funksiya generatoru: 12 addım (şəkillərlə birlikdə)
Funksiya generatoru: 12 addım (şəkillərlə birlikdə)

Video: Funksiya generatoru: 12 addım (şəkillərlə birlikdə)

Video: Funksiya generatoru: 12 addım (şəkillərlə birlikdə)
Video: Ən çətin məntiq testi.😉 Kim tapsa 1-ci yer. Yalnız 1 nəfər.❗❗ 2024, Dekabr
Anonim
Funksiya generatoru
Funksiya generatoru
Funksiya generatoru
Funksiya generatoru

Bu təlimat, MAX038 Maxims -in Analog inteqral dövrəsinə əsaslanan funksiya generatorunun dizaynını təsvir edir

Funksiya generatoru elektronika ucbatları üçün çox faydalı vasitədir. Rezonans sxemlərin tənzimlənməsi, audio və video avadanlıqların sınanması, analoq filtrlərin dizaynı və bir çox başqa məqsədlər üçün lazımdır.

Bu gün iki əsas növ funksiya generatoru var; getdikcə daha çox istifadə edilən və mənşəyi olan rəqəmsal (DSP əsaslı, DDS…).

Hər iki növün üstünlükləri və mənfi cəhətləri var. Rəqəmsal generatorlar çox sabit tezlikdə siqnallar yarada bilər, lakin çox təmiz sinus siqnalları yaratmaqda problemləri var (analoq üçün problem deyil). Həm də DDS yanaşmasına əsaslanan əsasən yayılmış funksiya generatorları o qədər də böyük tezlik istehsal aralığına malik deyillər.

Uzun müddətdir ki, hər iki növün (analoq və rəqəmsal) generatorlarının bəzi üstünlüklərini özündə birləşdirə biləcək faydalı bir funksiya generatoru hazırlamaq istəyirdim. Dizaynı Maxim çip MAX038* üzərində qurmağa qərar verdim.

* Qeyd - bu çip artıq Maxim tərəfindən istehsal olunmur və satılmır. Bu köhnəlmişdir. Hələ eBay, Aliexpress və elektron komponentlər üçün digər saytlarda tapmaq mümkündür.

Digər analoq funksiyalı generator çipləri də var (Exar -dan XR2206, Intersildən icl8038), amma məndə

bir MAX038 mövcuddur və mən istifadə etdim. Funksiya generatorunun rəqəmsal xüsusiyyətləri bir Atmega328 çipi tərəfindən yerinə yetirildi. Onun funksiyaları aşağıdakılardır:

  • tezlik aralığının seçilməsinə nəzarət edir
  • siqnal növünü idarə edir (sinus, düzbucaqlı, üçbucaq, mişar dişi)
  • siqnalın amplitüdünü ölçür
  • DC ofsetini ölçür
  • siqnalın tezliyini ölçür
  • sinus siqnalının səs diapazonunda THD ölçür (bu hələ də tətbiq olunmalıdır)
  • bütün bu məlumatları 16x2 xarakterli LCD displeydə göstərir.

Addım 1: MAX038 Təsviri

MAX038 Təsviri
MAX038 Təsviri

MAX038 məlumat cədvəlini əlavə etdim. Ən əhəmiyyətli çip parametrlərini görmək olar:

♦ 0.1Hz -dən 20MHz -ə qədər İşləmə Tezlik Aralığı

♦ Üçbucaq, Sawtooth, Sine, Square və Pulse Dalğa Formaları

♦ Müstəqil Tezlik və Vəzifə Dövrü Düzəlişləri

♦ 350 -dən 1 -ə qədər Tezlik Süpürmə Aralığı

♦ 15% -dən 85% -ə qədər Dəyişən Duty Cycle

♦ Aşağı Empedanslı Çıxış Tamponu: 0.1Ω

♦ Aşağı 200ppm/° C temperatur sürüşməsi

Digər vacib tələb ikili təchizata ehtiyacdır (± 5V). Çıxış amplitudu sabitdir (0 V DC ofset ilə ~ 2 VP-P).

Məlumat cədvəlinin 8-ci səhifəsində çipin blok-sxemini görmək olar. Səhifə 11 -də sinus dalğa siqnalı yaratmaq üçün istifadə edilə bilən ən sadə dövrə görə bilərsiniz. Bu sxem funksiya generatorunun dizaynı üçün əsas götürülmüşdür.

Addım 2: Dövrə …

Dövrə…
Dövrə…

Şəkildə hər bir cihaz dəyərinin düzgün oxunmasını təmin etmək üçün bu görüntünü mümkün olan ən yüksək qətnamə ilə etdiyim funksiya generatorunun dövrəsi təqdim olunur. Sxemlər olduqca mürəkkəb görünür və daha yaxşı başa düşmək üçün onun əsas hissələrini ayrıca izah edəcəyəm. Bir çox oxucu, dövrənin həddən artıq çox olması məni günahlandıra bilər. Bu doğrudur. Əvvəlcə iki MAX038 çipi olduğunu görə bilərsiniz. Bunun səbəbi, PCB -nin həm SO, həm də DIP paketlərini dəstəkləməsidir. İşdən çıxarmağı bəzi funksiyalarda da görmək olar -

1) LED -lər cari aktiv tezlik aralığını göstərir, eyni zamanda LCD -də də göstərilir;

2) LEDlər siqnal növünü göstərmək üçün də istifadə olunur, eyni zamanda LCD də bu məlumatı göstərir

Dizayn istifadəçiyə daha çox rahatlıq təmin etmək üçün bu şəkildə edilir - istəyi ilə LCD -dən istifadə edə bilmir və ya sadəcə LED -lərin lehimlənməsini buraxa bilər. Dizayn mərhələlərində funksionallığı ayıklaya bilmək üçün onları lehimləmişəm.

Bir çox opamp istifadə etdiyimi də qeyd etmək olar. Bəziləri problemsiz buraxıla bilər - xüsusən də tamponlar. Hal -hazırda, opamplar özləri tərəfindən böyük bir ixtisar təklif edirlər - bir paketdə 2, 4 hətta 8 ayrı gücləndirici tapa bilərsiniz və bu nisbətən aşağı qiymətə. Niyə onlardan istifadə etməyək?

Filtreleme kondansatörleri də artıqdır - istifadə olunan hər bir analog çipin öz kondansatör bankı var (hər iki təchizat üçün tantal + keramika kondansatörləri). Bəzilərini də buraxmaq olar.

Addım 3: Dövrə Açıqlaması - Enerji Təchizatı (1)

Dövrə Açıqlaması - Güc Təchizatı (1)
Dövrə Açıqlaması - Güc Təchizatı (1)

Dediyim kimi, bu generator ikili təchizat tələb edir. Müsbət gərginlik 7805 xətti gərginlik tənzimləyicisinin istifadəsi ilə yaranır. Mənfi təchizat 7905 çipi tərəfindən yaradılır. 2x6V transformatorunun orta vurma nöqtəsi lövhənin ümumi zəminə bağlıdır. İstehsal olunan enerji təchizatı - həm müsbət, həm də mənfi tərəflər takozlarla analoq və rəqəmsal olaraq ayrılır. İki LED hər bir təchizatın olduğunu göstərir.

Addım 4: Dövrə Açıqlaması - Tezlik Aralığı Nəzarəti (2)

Dövrə Açıqlaması - Tezlik Aralığı Nəzarəti (2)
Dövrə Açıqlaması - Tezlik Aralığı Nəzarəti (2)

Böyük tezlik aralığını əhatə etmək üçün birdən çox kondansatör bankı istifadə olunur. Kondansatörler fərqli dəyərlərə malikdir və fərqli tezlik alt aralığını təyin edir. İş zamanı bu kondansatörlərdən yalnız biri istifadə olunur - alt plitəsi MOS tranzistor açarı ilə topraklanır. Torpaqlanacaq alt kondansatörlərin hansı hissəsi 74HC238 demultiplexer çipi ilə Atmega328 tərəfindən idarə olunur. MOS açarları olaraq BSS123 tranzistorlarından istifadə etdim. Bu keçid üçün əsas tələb aşağı Rona və mümkün olan ən aşağı drenaj tutumuna malik olmaqdır. Kondansatör bankının rəqəmsal nəzarətini buraxmaq olar - PCB -də mexaniki fırlanan açar üçün telləri lehimləmək üçün deliklər var.

Addım 5: Dövrə Açıqlaması - Tezlik Ayarı (3)

Dövrə izahı - tezlik tənzimlənməsi (3)
Dövrə izahı - tezlik tənzimlənməsi (3)

Şəkildə tezlik və iş dövrü nəzarət dövrəsi göstərilir. Orada standart LM358 opamp (bir paketdə ikiqat gücləndirici) istifadə etdim. Həm də ikili 10K potansiyometrlərdən istifadə etdim.

MAX038 çipi, normal olaraq bütün tənzimləmələr üçün istinad olaraq istifadə edilən 2.5V daxili gərginlik referansı yaradır.

Bu gərginlik IC8a inverting girişində tətbiq olunur və DADJ (vəzifə dövrü tənzimlənməsi) üçün istifadə olunan mənfi gərginlik istinadını yaradır. Hər iki gərginlik DADJ üçün potensiometrdə tətbiq olunur, orta tap tamponlanır və MAX038 çipinin DADJ pininə tətbiq olunur. JP5 tullanan, yerə qoşulduqda DADJ funksiyasını söndürmək üçün istifadə edilə bilər. "Kurs" tezlik nəzarəti, MAX038 "IIN" pinindəki cari batmış / qaynaq dəyişdirilərək əvvəlcədən hazırlanır. Bu cərəyan R41 rezistoru və kursun tezlik nəzarət potansiyometrinin orta kranını tamponlayan opampın çıxış gərginliyi ilə müəyyən edilir. Bütün bunlar REF və IIN MAX038 pinləri arasındakı tək potansiyometrlə (reostat bağlantısında) əvəz edilə bilər.

Addım 6: Dövrə Açıqlaması - Genlik Nəzarəti, SYNC Siqnal Yaradılması … (4)

Dövrə Açıqlaması - Genişlik Nəzarəti, SYNC Siqnal Yaradılması … (4)
Dövrə Açıqlaması - Genişlik Nəzarəti, SYNC Siqnal Yaradılması … (4)
Dövrə Açıqlaması - Genlik Nəzarəti, SYNC Siqnal Yaradılması … (4)
Dövrə Açıqlaması - Genlik Nəzarəti, SYNC Siqnal Yaradılması … (4)
Dövrə Açıqlaması - Genişlik Nəzarəti, SYNC Siqnal Yaradılması … (4)
Dövrə Açıqlaması - Genişlik Nəzarəti, SYNC Siqnal Yaradılması … (4)
Dövrə Açıqlaması - Genişlik Nəzarəti, SYNC Siqnal Yaradılması … (4)
Dövrə Açıqlaması - Genişlik Nəzarəti, SYNC Siqnal Yaradılması … (4)

Məlumat cədvəlində yazıldığı kimi, MAX038 pf çıxış siqnalı, torpaq potensialına bərabər olan DC gərginliyi ilə ~ 1 V amplitüdünə malikdir.

Siqnal amplitüdünü idarə etmək və DC ofsetini özüm təyin edə bilmək istədim. Əlavə xüsusiyyət olaraq, çıxış siqnalına paralel olaraq CMOS səviyyəli SYNC siqnalına sahib olmaq istədim. Varsayılan olaraq MAX038 çipi belə bir siqnal yaradır, ancaq məlumat cədvəlində oxudum ki, bu xüsusiyyət aktivdirsə (nə deməkdir - 5V -ə qoşulmuş DV+ pin), çıxış analog siqnalında bəzi zirvələr (səs -küy) müşahidə oluna bilər. mümkün qədər təmizdir və bu səbəbdən SYNC siqnalını xaricdən yaratdım. PCB, DV+ pininin əsas təchizata asanlıqla bağlana biləcəyi şəkildə edilir. SYNC pin BNC konnektoruna yönəldilir - yalnız 50 Ohm müqavimət lehimli olmalıdır. Bu vəziyyətdə, SYNC siqnal istehsalı dövrəsi buraxıla bilər. Gördüyünüz kimi, ikili potensiometrlərdən də istifadə edirəm, lakin onlar paralel olaraq bağlanmır. Bunun səbəbi - amplitudunu nisbətən ölçürəm. Bir potansiometrin orta nöqtəsindəki gərginlik Atmega328 ADC tərəfindən algılanır və bu dəyərə əsasən siqnal amplitudası hesablanır. Əlbəttə ki, bu üsul çox dəqiq deyil (hər zaman baş verməyən hər iki potansiyometr bölməsinin uyğunluğuna əsaslanır), amma tətbiqlərim üçün kifayət qədər dəqiqdir. Bu dövrədə IC2A gərginlik tamponu kimi işləyir. IC4A da. IC2B opampi toplayıcı gücləndirici kimi işləyir - funksional generatorun ofset gərginliyinin və tənzimlənmiş amplituda əsas siqnalın cəmi olaraq çıxış siqnalını yaradır. Gərginlik bölücü R15. R17, DC əsas siqnal ofsetini ölçmək üçün uyğun gərginlik siqnalı yaradır. Atmega328 ADC tərəfindən hiss olunur. IC4B opampı müqayisəçi olaraq işləyir - iki MOS tranzistoru (BSS123 və BSS84) tərəfindən həyata keçirilən SYNC nəsil çeviricisini idarə edir. U6 (THS4281 - Texas Instruments), MAX038 DC tərəfindən istehsal olunan çıxış siqnalını 2,5 V ilə dəyişir və 1,5 dəfə gücləndirir. Beləliklə yaradılan siqnal AVR ADC tərəfindən algılanır və daha sonra FFT alqoritmi ilə işlənir. Bu hissədə 130 MHz bant genişliyi ilə (TI - LMH6619) opampları dəmir yolu üçün yüksək keyfiyyətli dəmir yolu istifadə etdim.

SYNC siqnalının necə işlədiyini başa düşmək asan olar ki, dövrənin LTSpice simulyasiyalarının bəzi şəkillərini daxil edim. Üçüncü şəkildə: mavi siqnal ofset gərginliyidir (IC2B girişi). Yaşıl, amplitudası tənzimlənən çıxış siqnaldır. Qırmızı olan funksional generatorun çıxış siqnalıdır, Mavi əyri SYNC siqnaldır.

Addım 7: PCB Dizaynı

PCB Dizaynı
PCB Dizaynı

PCB dizaynı üçün "Qartal" dan istifadə etdim. PCB -ləri "PCBway" də sifariş etdim. Lövhələri hazırlamaq üçün cəmi dörd gün və onları çatdırmaq üçün bir həftə çəkdi. Onların keyfiyyəti yüksəkdir və qiyməti son dərəcə aşağıdır. 10 PCB üçün cəmi 13 USD ödədim!

Əlavə olaraq qiymət artımı olmadan fərqli rəngli PCB sifariş edə bilərəm. Sarı olanları seçdim:-).

Gerber fayllarını "PCBway" dizayn qaydalarına uyğun olaraq əlavə edirəm.

Addım 8: Lehimləmə

Image
Image
Lehimləmə
Lehimləmə
Lehimləmə
Lehimləmə

Əvvəlcə enerji təchizatı sxem cihazlarını lehimlədim..

Təchizat blokunu sınadıqdan sonra Atmega328 çipini dəstəkləyici qurğuları ilə lehimlədim: kvars kristal, kondansatörlər, filtr qapaqları və ISP konnektoru. Gördüyünüz kimi AVR çipinin təchizat xəttində bir tullanan var. Çipi ISP vasitəsilə proqramlaşdıranda onu ayırıram. Bu məqsədlə USBtiny proqramlaşdırıcısından istifadə edirəm.

Növbəti addım olaraq 74HC238 de-mux çipini, LED-lərin tezlik aralığını göstərən lehimlə işlətdim. Kiçik bir Arduino proqramını çoxaltmağı sınayan Atmega çipinə yüklədim. (yuxarıdakı linkin altındakı videoya baxın)

Addım 9: Lehimləmə…

Lehimləmə…
Lehimləmə…
Lehimləmə…
Lehimləmə…
Lehimləmə…
Lehimləmə…

Növbəti addım olaraq, DC rejimində (LM358) işləyən opampları və tezlik və DADJ tənzimləmə potansiyometrlərini lehimlədim və bütün funksiyalarını yoxladım.

Bundan əlavə, BSS123 açarlarını, tezliyi təyin edən kondansatörləri və MAX039 çipini lehimlədim. Yerli çip siqnal çıxışında siqnalı yoxlayan funksional generatoru sınadım. (1986-cı ildə istehsal edilmiş, hələ işləyən osiloskopum olan köhnə Sovetimi görə bilərsiniz:-))

Addım 10: Daha Lehimləmə…

Daha Lehimləmə…
Daha Lehimləmə…
Daha Lehimləmə…
Daha Lehimləmə…
Daha Lehimləmə…
Daha Lehimləmə…

Bundan sonra LCD displey üçün yuvanı lehimlədim və "Hello world" eskizi ilə sınadım.

Qalan digər opampları, kondansatörləri, potensiometrləri və BNC bağlayıcılarını lehimlədim.

Addım 11: Proqram təminatı

Image
Image
Proqram təminatı
Proqram təminatı

Atmega328 firmware yaratmaq üçün Arduino IDE -dən istifadə etdim.

Tezlik ölçümü üçün "FreqCounter" kitabxanasından istifadə etdim. Eskiz faylı və istifadə olunan kitabxana yükləmək üçün mövcuddur. Hal -hazırda istifadə olunan rejimi (sinus, düzbucaqlı, üçbucaq) təmsil etmək üçün xüsusi simvollar yaratdım.

Yuxarıdakı şəkildə LCD -də göstərilən məlumatları görə bilərsiniz:

  • Tezlik F = xxxxxxxx Hz -də
  • Tezlik aralığı Rx
  • MV -də genlik A = xxxx
  • MV -də ofset 0 = xxxx
  • siqnal növü x

Funksiya generatorunun sol tərəfində ön tərəfdə iki düymə var - onlar tezlik aralığının dəyişdirilməsində istifadə olunur (yuxarı - aşağı addım). Onların sağında, rejimi idarə etmək üçün sürüşmə açarı var, sonra soldan sağa, tezliyi (kurs, incə, DADJ), amplituda və ofsetin idarə edilməsi üçün potensiometrini izləyin. Ofset tənzimləmə potansiyometrinin yaxınlığında, 2.5V DC -də sabit olan və tənzimlənmiş arasında dəyişmək üçün istifadə olunan keçid yerləşdirilir.

Poçt sənədindəki "Generator.ino" kodunda kiçik bir səhv tapdım - sinus və üçbucaq dalğa formalarının simvolları dəyişdirildi. Buraya əlavə edilmiş tək "Generator.ino" faylında səhv düzəldilir.

Addım 12: Ediləcək…

Image
Image

Son addım olaraq, əlavə bir funksiyanı həyata keçirmək niyyətindəyəm - FFT istifadə edərək real vaxtda sinus sinus siqnalının THD ölçülməsi. Buna ehtiyac var, çünki sinus siqnalının iş dövrü 50%-dən fərqlənə bilər, daxili çip uyğunsuzluqlarından və digər səbəblərdən yarana bilər və harmonik təhriflər yarada bilər. Vəzifə dövrü potensiometrlə tənzimlənə bilər, ancaq osiloskopda və ya spektr analizatorundakı siqnalı müşahidə etmədən onun şəklini kəsmək mümkün deyil. THF -nin FFT alqoritmi əsasında hesablanması problemi həll edə bilər. THD hesablamalarının nəticəsi sağ üst boşluqdakı LCD -də göstəriləcək.

Videoda MAX038 sinus siqnalının yaratdığı spektri görmək olar. Spektr analizatoru Arduino UNO board + 2.4 TFT qalxanı əsasında qurulmuşdur. Spektr analizatoru FFT -ni real vaxtda yerinə yetirmək üçün Anatoli Kuzmenko tərəfindən hazırlanmış SpltRadex Arduino kitabxanasından istifadə edir.

Hələ də qərar verməmişəm - bu kitabxanadan istifadə etmək və ya Musiclabs tərəfindən yaradılan FHT kitabxanasından istifadə etmək.

Düzgün seçmə pəncərəsini hesablamaq və FFT hesablamaları zamanı əlavə pəncərələrin istifadəsini dayandırmaq üçün tezlik ölçmə cihazlarından alınan məlumatlardan istifadə etmək niyyətindəyəm. Bunun üçün bir az boş vaxt tapmalıyam. Ümid edirəm ki, tezliklə bəzi nəticələr əldə edəcəyik ….

Tövsiyə: