Sisukord:

Funktsioonigeneraator: 12 sammu (piltidega)
Funktsioonigeneraator: 12 sammu (piltidega)

Video: Funktsioonigeneraator: 12 sammu (piltidega)

Video: Funktsioonigeneraator: 12 sammu (piltidega)
Video: Оформление бороды 2024, Juuni
Anonim
Funktsiooni generaator
Funktsiooni generaator
Funktsiooni generaator
Funktsiooni generaator

See juhend kirjeldab funktsiooni generaatori ülesehitust, mis põhineb Maximsi analoog -integraallülitusel MAX038

Funktsioonigeneraator on elektroonikafriikidele väga kasulik tööriist. Seda on vaja resonantsahelate häälestamiseks, audio- ja videoseadmete testimiseks, analoogfiltrite projekteerimiseks ja paljudel muudel eesmärkidel.

Tänapäeval on kahte tüüpi funktsioonigeneraatoreid; digitaalsed (DSP -põhised, DDS …), mida kasutatakse üha sagedamini, ja analoogid, millest sai alguse.

Mõlemal tüübil on oma eelised ja puudused. Digitaalgeneraatorid võivad genereerida väga stabiilse sagedusega signaale, kuid neil on probleeme väga puhaste siinussignaalide genereerimisega (mis pole analoogseadme jaoks probleem). Ka peamiselt hajutatud funktsioonigeneraatoritel, mis põhinevad DDS -lähenemisel, ei ole nii suurt sagedusala.

Juba pikka aega tahtsin kujundada kasuliku funktsioonigeneraatori, mis võiks kuidagi ühendada mõlema tüüpi (analoog- ja digitaalgeneraatorite) mõned eelised. Otsustasin kujunduse aluseks võtta Maximi kiibi MAX038*

* Märkus - seda kiipi Maxim enam ei tooda ega müü. See on vananenud. Seda on endiselt võimalik leida eBays, Aliexpressis ja muudel elektrooniliste komponentide saitidel.

Olemas on ka teisi analoogfunktsiooni generaatori kiipe (XR2206 firmalt Exar, icl8038 firmalt Intersil), kuid mul oli

üks MAX038 on saadaval ja ma kasutasin seda. Funktsioonigeneraatori digitaalseid funktsioone teostas üks Atmega328 kiip. Selle funktsioonid on järgmised:

  • juhib sagedusala valikut
  • juhib signaali tüüpi (siinus, ristkülikukujuline, kolmnurkne, saehammas)
  • mõõdab signaali amplituudi
  • mõõdab alalisvoolu nihet
  • mõõdab signaali sagedust
  • mõõdab siinusignaali THD helivahemikus (seda tuleb veel rakendada)
  • kuvab kogu selle teabe 16x2 LCD -ekraanil.

1. toiming: MAX038 Kirjeldus

MAX038 Kirjeldus
MAX038 Kirjeldus

Olen lisanud MAX038 andmelehe. Siin on näha kõige olulisemad kiibiparameetrid:

♦ 0,1 Hz kuni 20 MHz töösagedusvahemik

♦ Kolmnurk, saehammas, siinus, ruut ja pulsslainekujud

♦ Sõltumatu sageduse ja töötsükli reguleerimine

♦ 350 kuni 1 sagedusvahemik

♦ 15% kuni 85% muutuva töötsükliga

♦ Madala impedantsiga väljundpuhver: 0,1Ω

♦ madal temperatuur 200 ppm/° C

Teine oluline nõue on kahekordse toite vajadus (± 5 V). Väljundi amplituud on fikseeritud (~ 2 VP-P 0 V DC nihkega).

Andmelehe 8. leheküljel on näha kiibi plokkskeem. Leheküljel 11 on näha lihtsaim vooluahel, mida saab kasutada siinusignaali genereerimiseks. See vooluring võeti aluseks funktsioonigeneraatori projekteerimisel.

2. samm: vooluring…

Ringkond…
Ringkond…

Pildil on esitatud funktsioonigeneraatori ahel, mille tegin selle pildi võimalikult suure eraldusvõimega, et tagada iga.seadme väärtuse õige lugemine. Skeemid näevad üsna keerulised välja ja selle paremaks mõistmiseks selgitan selle põhiosasid eraldi. Paljud lugejad võiksid mulle ette heita, et ringkond on liiga üleliigne. See on tõsi. Esialgu näete, et see sisaldab kahte MAX038 kiipi. Põhjus on selles, et trükkplaat toetab mõlemat tüüpi pakette SO ja DIP. Koondamist võib näha ka mõnedes funktsioonides -

1) LED -id näitavad praegust aktiivset sagedusvahemikku, kuid see kuvatakse ka LCD -ekraanil;

2) LED -e kasutatakse ka signaali tüübi tähistamiseks, kuid ka LCD -ekraan näitab seda teavet

Disain on tehtud sel viisil, et võimaldada kasutajal rohkem paindlikkust - soovi korral ei saanud ta LCD -d kasutada või võib LED -ide jootmise lihtsalt ära jätta. Olen neid jootnud, et saaksin funktsionaalsust siluda projekteerimisetappide ajal.

Samuti võib märgata, et kasutan palju opampe. Mõnda neist võib probleemideta välja jätta - eriti puhvreid. Praegusel ajal pakuvad opampid iseenesest suurt koondamist - ühes pakendis on 2, 4 ja isegi 8 eraldi võimendit ning seda suhteliselt madala hinnaga. Miks mitte neid kasutada?

Ülearused on ka filtreerimiskondensaatorid - igal kasutataval analoogkiibil on oma kondensaatoripank (tantaal + keraamilised kondensaatorid mõlema tarne jaoks). Mõned neist võib ka ära jätta.

3. etapp: ahela selgitus - toiteallikas (1)

Vooluahela selgitus - toiteallikas (1)
Vooluahela selgitus - toiteallikas (1)

Nagu ma ütlesin, vajab see generaator kahekordset toiteallikat. Positiivne pinge luuakse lineaarse pingeregulaatori 7805 abil. Negatiivse pakkumise tekitab 7905 kiip. 2x6V trafo keskmine kraanipunkt on ühendatud plaadi ühisosaga. Toodetud toiteallikad - nii positiivsed kui ka negatiivsed - eraldatakse tõkiskingadega analoog- ja digitaalseks. Kaks valgusdioodi näitavad iga toite olemasolu.

4. samm: ahela selgitus - sagedusvahemiku juhtimine (2)

Vooluahela selgitus - sagedusvahemiku juhtimine (2)
Vooluahela selgitus - sagedusvahemiku juhtimine (2)

Suure sagedusvahemiku katmiseks kasutatakse mitut kondensaatoripanka. Kondensaatoritel on erinevad väärtused ja nad määratlevad erinevad sagedusvahemikud. Töö käigus kasutatakse ainult ühte neist kondensaatoritest - selle alumine plaat on maandatud MOS -transistori lülitiga. Millist kondensaatori põhjaplaati maandada, juhib Atmega328 demultiplekseri kiibi 74HC238 abil. MOS -lülititena kasutasin BSS123 transistore. Selle lüliti peamine nõue on madal Ron ja võimalikult väike äravoolu mahtuvus. Kondensaatoripanga digitaalse juhtimise võib ära jätta - trükkplaat sisaldab auke juhtmete jootmiseks mehaanilise pöördlüliti jaoks.

5. samm: ahela selgitus - sageduse reguleerimine (3)

Vooluahela selgitus - sageduse reguleerimine (3)
Vooluahela selgitus - sageduse reguleerimine (3)

Pildil on näidatud sageduse ja töötsükli juhtimisahel. Seal kasutasin tavalist LM358 opampi (kahekordne võimendi ühes pakendis). Kasutasin ka topelt 10K potentsiomeetrit.

Kiip MAX038 genereerib sisemise pinge võrdlusväärtuse 2,5 V, mida kasutatakse tavaliselt kõigi reguleerimiste võrdlusalusena.

See pinge rakendatakse IC8a inverteerivas sisendis ja see tekitab negatiivse pinge võrdlusaluse, mida kasutatakse DADJ (töötsükli reguleerimine) jaoks. Mõlemad pinged rakendatakse DADJ potentsiomeetril, mille keskmine kraan on puhverdatud ja rakendatud kiibi MAX038 DADJ tihvtile. Džemprit JP5 saab kasutada DADJ funktsiooni väljalülitamiseks, kui see on ühendatud maaga. Sagedusjuhtimine "Kursus" on eelnevalt vormitud, muutes MAX038 "IIN" tihvti sissevoolu / allika. Selle voolu määravad takisti R41 ja opamp -i väljundpinge, mis puhverdab kursuse sageduse juhtimise potentsiomeetri keskmist kraani. Kõiki neid saab asendada ühe potentsiomeetriga (reostaadiga ühenduses) REF ja IIN MAX038 tihvtide vahel.

6. etapp: ahela selgitus - amplituudi juhtimine, SYNC -signaali genereerimine… (4)

Vooluahela selgitus - amplituudi juhtimine, SYNC -signaali genereerimine… (4)
Vooluahela selgitus - amplituudi juhtimine, SYNC -signaali genereerimine… (4)
Vooluahela selgitus - amplituudi juhtimine, SYNC -signaali genereerimine… (4)
Vooluahela selgitus - amplituudi juhtimine, SYNC -signaali genereerimine… (4)
Vooluahela selgitus - amplituudi juhtimine, SYNC -signaali genereerimine… (4)
Vooluahela selgitus - amplituudi juhtimine, SYNC -signaali genereerimine… (4)
Vooluahela selgitus - amplituudi juhtimine, SYNC -signaali genereerimine… (4)
Vooluahela selgitus - amplituudi juhtimine, SYNC -signaali genereerimine… (4)

Nagu andmelehel kirjutatud, on väljundsignaali pf MAX038 amplituud ~ 1 V alalispingega, mis on võrdne maapinna potentsiaaliga.

Tahtsin, et mul oleks võimalus signaali amplituudi juhtida ja saaksin alalisvoolu nihke ise määrata. Lisavõimalusena soovisin, et väljundsignaaliga paralleelselt oleks ka CMOS -tasemega SYNC -signaal. Vaikimisi genereerib MAX038 kiip sellise signaali, kuid andmelehelt lugesin, et kui see funktsioon on lubatud (mis tähendab - DV+ pin ühendatud 5V -ga), võib analoogsignaali väljundis täheldada mõningaid piike (müra). see oleks võimalikult puhas ja sel põhjusel genereerisin SYNC -signaali väliselt. PCB on valmistatud nii, et DV+ tihvti saab hõlpsasti ühendada põhivarustusega. SYNC -tihvt suunatakse BNC -pistikusse - joota tuleb ainult 50 oomi takisti. Sel juhul võib SYNC -signaali genereerimise vooluringi välja jätta. Siin, nagu näete, kasutan ka topeltpotentsiomeetreid, kuid need pole paralleelselt ühendatud. Selle põhjus on - ma mõõdan amplituudi suhteliselt. Pinget ühe potentsiomeetri keskpunktis tuvastab Atmega328 ADC ja selle väärtuse põhjal arvutatakse signaali amplituud. Muidugi pole see meetod väga täpne (see põhineb mõlema potentsiomeetri sektsiooni sobitamisel, mida alati ei esine), kuid minu rakenduste jaoks on see piisavalt täpne. Selles vooluringis töötab IC2A pingepuhvrina. IC4A ka. IC2B opamp töötab summeerimisvõimendina - see loob funktsionaalse generaatori väljundsignaali nihkepinge ja reguleeritud amplituudiga põhisignaali summana. Pingejagur R15. R17 genereerib sobiva pingesignaali alalisvoolu põhisignaali nihke mõõtmiseks. Seda tunneb Atmega328 ADC. IC4B opamp töötab võrdlusena - see juhib kahe MOS -transistori (BSS123 ja BSS84) poolt loodud SYNC põlvkonna muundurit. U6 (THS4281 - Texas Instruments) nihutab MAX038 DC poolt genereeritud väljundsignaali 2,5 V ja võimendab seda 1,5 korda. Nii et AVR ADC tuvastab genereeritud signaali ja töötleb seda edasi FFT algoritmiga. Selles osas kasutasin 130 MHz ribalaiusega (TI - LMH6619) kõrgekvaliteedilisi rööpast rööpani opampe.

Et oleks lihtne mõista, kuidas täpselt SYNC -signaali genereerimine töötab, lisan mõned pildid ahela LTSpice simulatsioonidest. Kolmandal pildil: sinine signaal on nihkepinge (IC2B sisend). Roheline on reguleeritud amplituudiga väljundsignaal. Punane on funktsionaalse generaatori väljundsignaal, tsüaankõver on SYNC -signaal.

7. samm: trükkplaatide kujundamine

PCB disain
PCB disain

PCB kujundamisel kasutasin "Eagle". Tellisin PCBd "PCBwayst". Plaatide valmistamiseks kulus neil vaid neli päeva ja tarnimiseks nädal. Nende kvaliteet on kõrge ja hind on väga madal. Maksin 10 trükkplaadi eest vaid 13 USD!

Lisaks sain tellida erinevat värvi trükkplaate ilma hinnatõusuta. Mina olen valinud kollased:-).

Ma lisan gerber -failid vastavalt "PCBway" disainireeglitele.

8. samm: jootmine

Image
Image
Jootmine
Jootmine
Jootmine
Jootmine

Esiteks jootsin toiteahela seadmed..

Pärast toiteploki testimist olen jootnud Atmega328 kiibi koos selle tugiseadmetega: kvartskristall, kondensaatorid, filtrikorkid ja ISP -pistik. Nagu näete, on mul AVR -kiibi toiteliinis hüppaja. Ühendan selle lahti, kui programmeerin kiibi ISP kaudu. Ma kasutan selleks USBtiny programmeerijat.

Järgmise sammuna jootsin de-mux kiibi 74HC238, LED-id näitavad sagedusvahemikku. Laadisin Atmega kiibi sisse väikese Arduino programmi, mis testis multipleksimist. (vaata videot ülaltoodud lingi alt)

Samm: jootmine…

Jootmine…
Jootmine…
Jootmine…
Jootmine…
Jootmine…
Jootmine…

Järgmise sammuna jootsin alalisvoolurežiimis töötavaid oppe (LM358) ning sageduse ja DADJ reguleerimise potentsiomeetreid ning kontrollisin nende kõiki funktsioone.

Lisaks jootsin BSS123 lülitid, sagedust määravad kondensaatorid ja kiibi MAX039. Testisin funktsionaalset generaatorit, mis uurib signaali natiivse kiibi signaali väljundis. (Näete minu vana Nõukogude, toodetud 1986, endiselt töötavat ostsilloskoopi töös:-))

Samm: rohkem jootmist…

Veel jootmist…
Veel jootmist…
Veel jootmist…
Veel jootmist…
Veel jootmist…
Veel jootmist…

Pärast seda jootsin LCD -ekraani pesa ja katsetasin seda "Hello world" visandiga.

Joodin ülejäänud järelejäänud opaamid, kondensaatorid, potentsiomeetrid ja BNC pistikud.

Samm 11: Tarkvara

Image
Image
Tarkvara
Tarkvara

Atmega328 püsivara loomiseks kasutasin Arduino IDE -d.

Sageduse mõõtmiseks kasutasin raamatukogu "FreqCounter". Eskiisfail ja kasutatud teek on allalaadimiseks saadaval. Olen loonud erisümbolid, mis esindavad praegu kasutatavat režiimi (siinus, ristkülikukujuline, kolmnurk).

Ülaltoodud pildil on LCD -ekraanil kuvatav teave:

  • Sagedus F = xxxxxxxx Hz
  • Sagedusvahemik Rx
  • Amplituud mV A = xxxx
  • Nihe mV 0 = xxxx
  • signaali tüüp x

Funktsioonigeneraatoril on vasakul küljel ees kaks surunuppu - neid kasutatakse sagedusvahemiku muutmiseks (samm üles - samm alla). Paremal neist on režiimi juhtimiseks kasutatav liuglüliti, pärast seda vasakult paremale järgige potentsiomeetrit sageduse (kurss, hea, DADJ), amplituudi ja nihke juhtimiseks. Nihke reguleerimise potentsiomeetri lähedal on lüliti, mida kasutatakse 2,5 V alalisvoolu nihke ja häälestatud vahel.

Leidsin ZIP -failist "Generator.ino" koodist väikese vea - siinus- ja kolmnurgalaine sümbolid vahetati. Siia lisatud singlis "Generator.ino" fail parandatakse viga.

Samm: tehke…

Image
Image

Viimase sammuna kavatsen rakendada lisafunktsiooni - helisageduse siinussignaali THD mõõtmine reaalajas, kasutades FFT -d. See on vajalik, kuna siinussignaali töötsükkel võib erineda 50%-st, mis võib olla tingitud kiipide sisemistest mittevastavustest ja muudest põhjustest ning tekitada harmoonilisi moonutusi. Töötsüklit saab reguleerida potentsiomeetriga, kuid ilma ostsilloskoobi või spektraalanalüsaatori signaali jälgimata on võimatu selle kuju peenestada. THD arvutamine FFT algoritmi põhjal võib probleemi lahendada. THD arvutuste tulemus kuvatakse LCD -ekraanil paremas ülanurgas.

Videol on näha siinussignaali MAX038 genereeritud spekter. Spektrianalüsaator põhineb Arduino UNO plaadil + 2,4 TFT -kilbil. Spektrianalüsaator kasutab FFT reaalajas teostamiseks Anatoli Kuzmenko välja töötatud SpltRadex Arduino raamatukogu.

Ma ikkagi ei otsustanud - kas kasutada seda raamatukogu või kasutada Musiclabsi loodud FHT -raamatukogu.

Kavatsen kasutada sagedusmõõtjate mõõtmistelt saadud teavet õige proovivõtuakna arvutamiseks ja peatada täiendavate akende kasutamise FFT arvutuste ajal. Selle tegemiseks pean leidma vaid vaba aega. Loodan, et varsti on mingeid tulemusi ….

Soovitan: