Sisällysluettelo:

Toimintogeneraattori: 12 vaihetta (kuvilla)
Toimintogeneraattori: 12 vaihetta (kuvilla)

Video: Toimintogeneraattori: 12 vaihetta (kuvilla)

Video: Toimintogeneraattori: 12 vaihetta (kuvilla)
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Marraskuu
Anonim
Toimintogeneraattori
Toimintogeneraattori
Toimintogeneraattori
Toimintogeneraattori

Tässä ohjeessa kuvataan Maximsin analogiseen integroituun piiriin MAX038 perustuva toimintogeneraattorin rakenne

Toimintogeneraattori on erittäin hyödyllinen työkalu elektroniikkahulluille. Sitä tarvitaan resonanssipiirien virittämiseen, ääni- ja videolaitteiden testaamiseen, analogisten suodattimien suunnitteluun ja moniin muihin tarkoituksiin.

Nykyään on olemassa kaksi päätyyppiä funktiogeneraattoreita; digitaalisia (DSP -pohjaisia, DDS…), joita käytetään yhä useammin, ja analogisia, jotka olivat alkuperä.

Molemmilla tyypeillä on etunsa ja haittansa. Digitaaliset generaattorit voivat tuottaa signaaleja erittäin vakaalla taajuudella, mutta niillä on ongelmia erittäin puhtaiden sinisignaalien tuottamisessa (mikä ei ole ongelma analogiselle). Myös pääasiassa DDS -lähestymistapaan perustuvilla hajautetuilla funktiogeneraattoreilla ei ole niin suurta taajuusgeneraatioaluetta.

Olen jo pitkään halunnut suunnitella hyödyllisen toimintogeneraattorin, joka voisi jotenkin yhdistää joitain molempien (analogisten ja digitaalisten) generaattoreiden etuja. Päätin perustaa suunnittelun Maxim -siruun MAX038*

* Huomautus - Maxim ei enää tuota ja myy tätä sirua. Se on vanhentunut. Se on edelleen mahdollista löytää eBayssa, Aliexpressissä ja muilla elektronisten komponenttien sivustoilla.

On olemassa myös muita analogisia toimintogeneraattoripiirejä (XR2206 Exarilta, icl8038 Intersililtä), mutta minulla oli

yksi MAX038 saatavilla, ja käytin sitä. Toimintogeneraattorin digitaaliset ominaisuudet suoritettiin yhdellä Atmega328 -sirulla. Sen toiminnot ovat seuraavat:

  • ohjaa taajuusalueen valintaa
  • ohjaa signaalin tyyppiä (sini-, suorakulmainen, kolmionmuotoinen, sahahammas)
  • mittaa signaalin amplitudin
  • mittaa DC -poikkeaman
  • mittaa signaalin taajuuden
  • mittaa äänialueen sinisignaalin THD: n (tämä on vielä toteutettava)
  • näyttää kaikki nämä tiedot 16x2 merkin LCD -näytöllä.

Vaihe 1: MAX038 Kuvaus

MAX038 Kuvaus
MAX038 Kuvaus

Olen liittänyt MAX038 -tietolomakkeen, josta näet tärkeimmät siruparametrit:

♦ 0,1 Hz - 20 MHz toimintataajuusalue

♦ Kolmio-, sahahammas-, sini-, neliö- ja pulssiaaltomuodot

♦ Taajuuden ja käyttöjaksojen riippumattomat säädöt

♦ 350 - 1 taajuusalue

♦ 15% - 85% muuttuva käyttöjakso

♦ Alhaisen impedanssin lähtöpuskuri: 0,1Ω

♦ Alhainen 200 ppm/° C lämpötilaero

Toinen tärkeä vaatimus on tarve kaksoissyöttöä (± 5V). Lähtöamplitudi on kiinteä (~ 2 VP-P ja 0 V DC -poikkeama).

Tietolomakkeen sivulla 8 on sirun lohkokaavio. Sivulla 11 on yksinkertaisin piiri, jota voidaan käyttää siniaalto -signaalin tuottamiseen. Tämä piiri otettiin perustaksi funktiogeneraattorin suunnittelulle.

Vaihe 2: Piiri…

Kierros…
Kierros…

Kuvassa esitetään funktiogeneraattorin piiri, jonka tein tämän kuvan mahdollisimman suurella resoluutiolla taatakseni, että jokainen.laitearvo voidaan lukea oikein. Kaaviot näyttävät melko monimutkaisilta, ja niiden ymmärtämiseksi paremmin selitän sen pääosat erikseen. Monet lukijat voivat syyttää minua siitä, että piiri on liian tarpeeton. Se on totta. Aluksi näet, että se sisältää kaksi MAX038 -sirua. Syynä on, että piirilevy tukee molempia SO- ja DIP -paketteja. Redundanssi näkyy myös joissakin toiminnoissa -

1) LEDit osoittavat nykyisen aktiivisen taajuusalueen, mutta se näkyy myös nestekidenäytössä;

2) LED -valoja käytetään myös ilmaisemaan signaalin tyyppi, mutta myös nestekidenäyttö näyttää nämä tiedot

Suunnittelu on tehty siten, että käyttäjä saa enemmän joustavuutta - halutessaan hän ei voinut käyttää nestekidenäyttöä tai yksinkertaisesti jättää pois LED -valojen juottamisen. Olen juottanut ne voidakseni korjata toiminnallisuuden suunnitteluvaiheessa.

On myös huomattava, että käytän paljon opampeja. Jotkut niistä voidaan jättää pois ilman ongelmia - erityisesti puskurit. Tällä hetkellä opampit tarjoavat itsessään suuren redundanssin - yhdessä paketissa on 2, 4 tai 8 erillistä vahvistinta, ja tämä suhteellisen alhaisella hinnalla. Miksei niitä käytetä?

Redundantteja ovat myös suodatuskondensaattorit - jokaisella käytetyllä analogisella sirulla on oma kondensaattoripankki (tantaali + keraamiset kondensaattorit molemmille tarvikkeille). Jotkut niistä voidaan myös jättää pois.

Vaihe 3: Piirin selitys - virtalähde (1)

Piirin selitys - virtalähde (1)
Piirin selitys - virtalähde (1)

Kuten sanoin, tämä generaattori vaatii kaksoissyötön. Positiivinen jännite syntyy käyttämällä 7805 lineaarista jännitesäädintä. Negatiivinen tarjonta syntyy 7905 -sirulla. 2x6V muuntajan keskikohta on kytketty levyn yhteiseen maahan. Syntyvät virtalähteet - sekä positiiviset että negatiiviset - on erotettu analogisista ja digitaalisista virtalähteistä. Kaksi LED -valoa ilmaisee kunkin virransyötön.

Vaihe 4: Piirin selitys - taajuusalueohjaus (2)

Piirin selitys - taajuusalueohjaus (2)
Piirin selitys - taajuusalueohjaus (2)

Suuren taajuusalueen kattamiseksi käytetään useita kondensaattoripankkeja. Kondensaattoreilla on erilaiset arvot ja ne määrittelevät eri taajuusalialueet, vain yhtä näistä kondensaattoreista käytetään työn aikana - sen pohjalevy on maadoitettu MOS -transistorikytkimellä. Maadoitettavien kondensaattoreiden pohjalevyä ohjaa Atmega328 demultiplekserisirulla 74HC238. MOS -kytkiminä käytin BSS123 -transistoreita. Tämän kytkimen tärkein vaatimus on alhainen Ron ja pienin mahdollinen tyhjennyskapasiteetti. Kondensaattoripankin digitaalinen ohjaus voidaan jättää pois - piirilevy sisältää reikiä mekaanisen kiertokytkimen johtojen juottamiseen.

Vaihe 5: Piirin selitys - taajuuden säätö (3)

Piirin selitys - taajuuden säätö (3)
Piirin selitys - taajuuden säätö (3)

Kuvassa näkyy taajuuden ja käyttöjakson ohjauspiiri. Siellä käytin tavallista LM358 -opampia (kaksoisvahvistin yhdessä paketissa). Käytin myös kahta 10K potentiometriä.

MAX038 -siru tuottaa sisäisen 2,5 V: n jänniteohjeen, jota käytetään normaalisti referenssinä kaikkiin säätöihin.

Tämä jännite syötetään IC8a: n invertoivaan tuloon ja se muodostaa negatiivisen jänniteohjeen, jota käytetään DADJ: ssä (käyttöjakson säätö). Molemmat jännitteet syötetään DADJ: n potentiometriin, joka keskipiste puskuroidaan ja kohdistetaan MAX038 -sirun DADJ -nastaan. Hyppyjohdinta JP5 voidaan käyttää DADJ -toiminnon poistamiseen käytöstä, kun se on kytketty maahan. "Course" -taajuuden säätö esimuodostetaan muuttamalla nykyinen upotettu / lähdetty MAX038 "IIN" -tappiin. Tämä virta määritetään vastuksella R41 ja opamp -lähtöjännitteellä, joka puskuroi kurssitaajuuden säätöpotentiometrin keskiventtiiliä. Kaikki nämä voidaan korvata yhdellä potentiometrillä (reostaattiliitännässä) REF- ja IIN MAX038 -nastojen välillä.

Vaihe 6: Piirin selitys - amplitudin säätö, SYNC -signaalin luominen… (4)

Piirin selitys - Amplitudisäätö, SYNC -signaalin luominen… (4)
Piirin selitys - Amplitudisäätö, SYNC -signaalin luominen… (4)
Piirin selitys - Amplitudisäätö, SYNC -signaalin luominen… (4)
Piirin selitys - Amplitudisäätö, SYNC -signaalin luominen… (4)
Piirin selitys - Amplitudisäätö, SYNC -signaalin luominen… (4)
Piirin selitys - Amplitudisäätö, SYNC -signaalin luominen… (4)
Piirin selitys - Amplitudisäätö, SYNC -signaalin luominen… (4)
Piirin selitys - Amplitudisäätö, SYNC -signaalin luominen… (4)

Kuten tietolomakkeessa on kirjoitettu, lähtösignaalin pf MAX038 amplitudi on ~ 1 V ja tasavirtajännite on yhtä suuri kuin maapotentiaali.

Halusin, että minulla on mahdollisuus ohjata signaalin amplitudia ja pystyä määrittämään DC -offset itse. Lisäominaisuutena halusin saada SYNC -signaalin CMOS -tasoilla rinnakkain lähtösignaalin kanssa. Oletusarvoisesti MAX038 -siru tuottaa tällaisen signaalin, mutta tietolomakkeesta luin, että jos tämä ominaisuus on käytössä (mitä tarkoittaa - DV+ -nasta, joka on kytketty 5 V: iin), analogisessa lähtösignaalissa voidaan havaita joitain huippuja (kohinaa). se on mahdollisimman puhdas, ja siksi synnytin SYNC -signaalin ulkoisesti. Piirilevy on tehty siten, että DV+ -tappi voidaan yhdistää helposti päävirtalähteeseen. SYNC -nasta reititetään BNC -liittimeen - vain 50 ohmin vastus on juotettava. Tässä tapauksessa SYNC -signaalin generointipiiri voidaan jättää pois. Tässä, kuten näette, käytän myös kahta potentiometriä, mutta niitä ei ole kytketty rinnakkain. Syy tähän on - mittaan amplitudin suhteellisesti. Atmega328 ADC tunnistaa jännitteen yhden potentiometrin keskipisteessä ja signaalin amplitudi lasketaan tämän arvon perusteella. Tämä menetelmä ei tietenkään ole kovin tarkka (se perustuu molempien potentiometrin osien yhteensopivuuteen, mikä ei aina tapahdu), mutta se on tarpeeksi tarkka sovelluksiini. Tässä piirissä IC2A toimii jännitepuskurina. IC4A myös. IC2B -opamp toimii summausvahvistimena - se luo toiminnallisen generaattorin lähtösignaalin offset -jännitteen ja pääsignaalin summana, jolla on säädetty amplitudi. Sen tunnistaa Atmega328 ADC. IC4B -opamp toimii vertailuna - se ohjaa kahden MOS -transistorin (BSS123 ja BSS84) toteuttamaa SYNC -sukupolven invertteriä. U6 (THS4281 - Texas Instruments) siirtää MAX038 DC: n tuottaman lähtösignaalin 2,5 V: lla ja vahvistaa sitä 1,5 kertaa. Joten AVR ADC havaitsee generoidun signaalin ja käsittelee sitä edelleen FFT -algoritmilla. Tässä osassa käytin korkealaatuisia rautatie -kisko -opampeja 130 MHz: n kaistanleveydellä (TI - LMH6619).

Jotta SYNC -signaalin luominen toimii oikein, olen lisännyt joitain kuvia piirin LTSpice -simulaatioista. Kolmannessa kuvassa: sininen signaali on offset -jännite (IC2B: n tulo). Vihreä on lähtösignaali, jonka amplitudi on säädetty. Punainen on toiminnallisen generaattorin lähtösignaali, syaani käyrä on SYNC -signaali.

Vaihe 7: Piirilevyn suunnittelu

PCB -suunnittelu
PCB -suunnittelu

Käytin "Eagle" piirilevyn suunnittelussa. Tilasin piirilevyt "PCBwaystä". Niiden valmistamiseen kului vain neljä päivää ja niiden toimittamiseen viikko. Niiden laatu on korkea ja hinta on erittäin alhainen. Maksoin vain 13 USD 10 PCB: stä!

Tämän lisäksi voisin tilata erivärisiä piirilevyjä ilman hinnankorotuksia. Olen valinnut keltaiset:-).

Liitän gerber -tiedostot "PCBway" -suunnittelusääntöjen mukaisesti.

Vaihe 8: Juotos

Image
Image
Juotos
Juotos
Juotos
Juotos

Ensin juotin virtalähdepiirilaitteet..

Syöttölohkon testaamisen jälkeen olen juottanut Atmega328 -sirun tukilaitteineen: kvartsikiteellä, kondensaattoreilla, suodatinkorkilla ja ISP -liittimellä. Kuten näette, minulla on hyppyjohdin AVR -sirun syöttölinjassa. Irrotan sen, kun ohjelmoin sirun Internet -palveluntarjoajan kautta. Käytän tähän tarkoitukseen USBtiny -ohjelmoijaa.

Seuraavana vaiheena juotin de-mux-sirun 74HC238, LEDit osoittavat taajuusalueen. Latasin pienen Arduino -ohjelman Atmega -siruun, joka testasi multipleksointia. (katso video yllä olevan linkin alta)

Vaihe 9: Juotos …

Juotos…
Juotos…
Juotos…
Juotos…
Juotos…
Juotos…

Seuraavana vaiheena juotin DC -tilassa (LM358) toimivat taajuus- ja taajuus- ja DADJ -säätöpotentiometrit ja tarkistin niiden kaikki toiminnot.

Lisäksi juotin BSS123 -kytkimet, taajuutta määrittävät kondensaattorit ja MAX039 -sirun. Testasin toiminnallisen generaattorin, joka tutkii signaalin natiivisirun signaalilähdössä. (Näet vanhan Neuvostoliiton, valmistetun 1986, edelleen toimivan oskilloskoopin toiminnassa:-))

Vaihe 10: Lisää juottamista…

Lisää juottamista…
Lisää juottamista…
Lisää juottamista…
Lisää juottamista…
Lisää juottamista…
Lisää juottamista…

Sen jälkeen juotin nestekidenäytön pistorasian ja testasin sitä "Hello world" -luonnoksella.

Juotin muut jäljellä olevat opaamit, kondensaattorit, potentiometrit ja BNC -liittimet.

Vaihe 11: Ohjelmisto

Image
Image
Ohjelmisto
Ohjelmisto

Atmega328 -laiteohjelmiston luomiseen käytin Arduino IDE: tä.

Taajuuden mittaamiseen käytin FreqCounter -kirjastoa. Luonnostiedosto ja käytetty kirjasto ovat ladattavissa. Olen luonut erikoissymboleja edustamaan käytössä olevaa tilaa (sini, suorakulmainen, kolmio).

Yllä olevassa kuvassa näkyvät nestekidenäytössä näkyvät tiedot:

  • Taajuus F = xxxxxxxx Hz
  • Taajuusalue Rx
  • Amplitudi mV A = xxxx
  • Siirtymä mV 0 = xxxx
  • signaalin tyyppi x

Toimintogeneraattorissa on kaksi painiketta vasemmalla puolella edessä - niitä käytetään vaihtamaan taajuusaluetta (askel ylös - askel alas). Niiden oikealla puolella on liukukytkin tilan ohjaamiseksi, sen jälkeen vasemmalta oikealle seuraa potentiometriä taajuuden (kurssi, hieno, DADJ), amplitudin ja offsetin säätämiseksi. Siirtymän säätöpotentiometrin lähellä on kytkin, jota käytetään kommutoimaan kiinteän 2,5 V DC -poikkeaman ja viritetyn välillä.

Löysin pienen virheen ZIP -tiedoston "Generator.ino" -koodista - sini- ja kolmioaaltomuotojen symbolit vaihdettiin. Tässä liitteenä olevassa yksittäisessä "Generator.ino" -tiedostossa virhe korjataan.

Vaihe 12: Tehtävä…

Image
Image

Viimeisenä vaiheena aion ottaa käyttöön lisäominaisuuden - äänitaajuuden sinisignaalin THD -mittauksen reaaliajassa FFT: n avulla. Tämä on tarpeen, koska sinisignaalin toimintajakso voi poiketa 50%: sta, mikä voi johtua sisäisistä sirun epäsuhdista ja muista syistä ja voi aiheuttaa harmonisia vääristymiä. Käyttöjaksoa voidaan säätää potentiometrillä, mutta ilman oskilloskoopin tai spektrianalysaattorin signaalin tarkkailua on mahdotonta leikata sen muotoa hienosti. THD: n laskeminen FFT -algoritmin perusteella voisi ratkaista ongelman. THD -laskelmien tulos näkyy nestekidenäytössä oikeassa yläkulmassa.

Videolla näkyy MAX038 -sinisignaalin tuottaman spektrin. Spektrianalysaattori perustuu Arduino UNO -korttiin + 2,4 TFT -suojaan. Spektrianalysaattori käyttää Anatoli Kuzmenkon kehittämää SpltRadex Arduino -kirjastoa suorittamaan FFT reaaliajassa.

En edelleenkään päättänyt - käyttää tätä kirjastoa tai käyttää Musiclabsin luomaa FHT -kirjastoa.

Aion käyttää taajuusmittarin mittauksista saatuja tietoja oikean näytteenottoikkunan laskemiseen ja keskeyttää lisäikkunoinnin käytön FFT -laskelmien aikana. Minun on vain löydettävä vapaa -aika tämän toteuttamiseksi. Toivon saavani jotain tuloksia pian….

Suositeltava: