INHOUDSOPGAWE:

Funksie Generator: 12 stappe (met foto's)
Funksie Generator: 12 stappe (met foto's)

Video: Funksie Generator: 12 stappe (met foto's)

Video: Funksie Generator: 12 stappe (met foto's)
Video: Graad 12 foto-elektriese effek deel 1 2024, Julie
Anonim
Funksie Generator
Funksie Generator
Funksie Generator
Funksie Generator

Hierdie instruksies beskryf die ontwerp van funksiegenerator wat gebaseer is op die Maxims Analog geïntegreerde stroombaan MAX038

Die funksiegenerator is 'n baie nuttige hulpmiddel vir die elektroniese freaks. Dit is nodig vir die afstem van resonansiebane, die toets van klank- en videotoerusting, die ontwerp van analoog filters en vir vele ander doeleindes.

Daar is vandag twee hooftipes funksieopwekkers; digitaal, (DSP gebaseer, DDS …) wat meer en meer gereeld gebruik word en analoog, wat die oorsprong was.

Beide tipes het hul voor- en nadele. Die digitale kragopwekkers kan seine genereer met 'n baie stabiele frekwensie, maar hulle het probleme met die opwekking van baie suiwer sinusseine (wat nie 'n probleem vir analoog is nie). Ook die hoofsaaklik verspreide funksieopwekkers wat gebaseer is op die DDS -benadering, het nie so 'n groot frekwensieopwekkingsreeks nie.

Ek wou al lank 'n nuttige funksie -kragopwekker ontwerp wat 'n paar voordele van beide tipes (analoog en digitaal) kragopwekkers kon kombineer. Ek het besluit om die ontwerp te baseer op die Maxim -chip MAX038*

* Opmerking - hierdie chip word nie meer deur Maxim vervaardig en verkoop nie. Dit is verouderd. Dit is nog steeds moontlik om dit op eBay, Aliexpress en ander webwerwe vir elektroniese komponente te vind.

Daar is ook ander analoog funksie generator skyfies (XR2206 van Exar, icl8038 van Intersil), maar ek het

een MAX038 beskikbaar, en ek het dit gebruik. Die digitale funksies van die funksiegenerator is uitgevoer deur een Atmega328 -chip. Sy funksies is die volgende:

  • beheer die frekwensiebereikkeuse
  • beheer die seintipe (sinus, reghoek, driehoek, saagtand)
  • meet die amplitude van die sein
  • meet die GS -offset
  • meet die frekwensie van die sein
  • meet die THD van die sinussein in die klankreeks (dit moet nog geïmplementeer word)
  • vertoon al hierdie inligting op 'n 16x2 LCD -skerm met karakter.

Stap 1: MAX038 Beskrywing

MAX038 Beskrywing
MAX038 Beskrywing

Ek het die MAX038 -datablad aangeheg. Die belangrikste chipparameters kan gesien word:

♦ 0.1Hz tot 20MHz Bedryfsfrekwensiebereik

♦ Driehoek-, saagtand-, sinus-, vierkant- en polsgolfvorms

♦ Onafhanklike frekwensie- en dienssiklusaanpassings

♦ 350 tot 1 Frequency Sweep Range

♦ 15% tot 85% veranderlike dienssiklus

♦ Lae-impedansie-uitvoerbuffer: 0.1Ω

♦ Lae temperatuur van 200ppm/° C Temperatuur

'N Ander belangrike vereiste is die behoefte aan dubbele toevoer (± 5V). Die uitsetamplitude is vas (~ 2 VP-P met 0 V DC-offset).

Op die bladsy 8 van die datablad kan die blokdiagram van die chip gesien word. Op bladsy 11 kan die eenvoudigste stroombaan gesien word wat gebruik kan word vir die opwekking van 'n sinusgolfsein. Hierdie kring is as basis geneem vir die ontwerp van die funksiegenerator.

Stap 2: Die kring …

Die kring…
Die kring…

Op die prentjie word die kring van die funksiegenerator voorgestel. Ek het hierdie beeld met die hoogste moontlike resolusie gedoen om te verseker dat elke.toestelwaarde behoorlik gelees kan word. Die skemas lyk nogal ingewikkeld en om beter te verstaan, sal ek die belangrikste dele daarvan afsonderlik verduidelik. Baie lesers kan my blameer dat die kring te oorbodig is. Dit is waar. U kan eers sien dat dit twee MAX038 -skyfies bevat. Die rede hiervoor is dat die PCB beide pakkette SO en DIP ondersteun. Die oortolligheid kan ook in sommige funksies gesien word -

1) LED's toon die huidige aktiewe frekwensiebereik, maar dit word ook op die LCD vertoon;

2) LED's word ook gebruik om die seintipe aan te dui, maar ook die LCD wys hierdie inligting

Die ontwerp word op hierdie manier gedoen om die gebruiker meer buigsaamheid toe te staan - onder begeerte kon hy nie die LCD gebruik nie, of die soldeer van LED's kon eenvoudig weglaat. Ek het hulle gesoldeer om die funksionaliteit tydens die ontwerpfases te kan ontfout.

Dit kan ook opgemerk word dat ek baie opamps gebruik. Sommige van hulle kan sonder probleme weggelaat word - veral buffers. Op die oomblik bied die opamps op sigself groot oortolligheid - in een pakket vind u 2, 4 selfs 8 aparte versterkers, en dit teen 'n relatief lae prys. Waarom nie om dit te gebruik nie?

Die filterkapasitors is ook oorbodig - elke analoog chip wat gebruik word, het sy eie kapasitorbank (tantaal + keramiek -kondensators vir beide voorrade). Sommige van hulle kan ook weggelaat word.

Stap 3: Kredietverduideliking - Kragtoevoer (1)

Kredietverduideliking - Kragtoevoer (1)
Kredietverduideliking - Kragtoevoer (1)

Soos ek gesê het, benodig hierdie kragopwekker dubbele toevoer. Die positiewe spanning word geskep deur die gebruik van 7805 lineêre spanningsreguleerder. Die negatiewe aanbod word gegenereer deur 'n 7905 -chip. Die middelste kraanpunt van die 2x6V -transformator is verbind met die gemeenskaplike grond van die bord. Die opgewekte kragtoevoer - beide die positiewe en die negatiewe word deur analise en digitaal geskei. Twee LED's dui die teenwoordigheid van elke toevoer aan.

Stap 4: Kredietverduideliking - Frekwensiebereikbeheer (2)

Kringverduideliking - Frekwensiebereikbeheer (2)
Kringverduideliking - Frekwensiebereikbeheer (2)

'N Meervoudige kapasitorbank word gebruik om 'n groot frekwensiebereik te dek. Die kondensators het verskillende waardes en hulle definieer verskillende frekwensie -subreekse. Slegs een van hierdie kondensators word tydens die werk gebruik - die onderste plaat word gegrond deur die MOS -transistor -skakelaar. Watter kondensators onderplaat wat geaard moet word, word deur die Atmega328 beheer deur die gebruik van 'n demultiplexer -chip 74HC238. As MOS -skakelaars het ek BSS123 -transistors gebruik. Die belangrikste vereiste vir hierdie skakelaar is om 'n lae Ron en die laagste moontlike afvoerkapasiteit te hê. Die digitale beheer van die kapasitorbank kan weggelaat word - die PCB bevat gate vir die soldeer van die drade vir 'n meganiese draaischakelaar.

Stap 5: Kredietverduideliking - die frekwensie -aanpassing (3)

Kringverduideliking - die frekwensie -aanpassing (3)
Kringverduideliking - die frekwensie -aanpassing (3)

Op die prentjie word die frekwensie- en insetsiklusbeheersirkulasie getoon. Daar het ek die standaard LM358 opamp (dubbele versterker in een pakket) gebruik. Ek het ook dubbele 10K potensiometers gebruik.

Die MAX038 -chip genereer interne spanningverwysing 2.5V, wat normaalweg as verwysing vir alle aanpassings gebruik word.

Hierdie spanning word toegepas by die inverterende ingang van IC8a en dit genereer 'n negatiewe spanningsverwysing wat gebruik word vir die DADJ (dienssiklusaanpassing). Beide spannings word toegepas op die potensiometer vir die DADJ, wat in die middelste kraan gebuffer word en op die DADJ -pen van die MAX038 -chip aangebring word. Die springer JP5 kan gebruik word om die DADJ -funksie uit te skakel as dit op die grond gekoppel is. Die frekwensiebeheer van die "kursus" word vooraf gevorm deur die huidige gesink / verander in MAX038 "IIN" -pen te verander. Hierdie stroom word gedefinieer deur die weerstand R41 en die uitgangsspanning van die opamp wat die middelste kraan van die koersfrekwensie -beheerpotensiometer buffer. Al hierdie kan vervang word deur 'n enkele potensiometer (in reostaatverbinding) tussen die REF- en IIN MAX038 -penne.

Stap 6: Kredietverduideliking - Amplitudebeheer, SYNC -seinopwekking … (4)

Kringverduideliking - Amplitudebeheer, SYNC -seinopwekking … (4)
Kringverduideliking - Amplitudebeheer, SYNC -seinopwekking … (4)
Kringverduideliking - Amplitudebeheer, SYNC -seinopwekking … (4)
Kringverduideliking - Amplitudebeheer, SYNC -seinopwekking … (4)
Kringverduideliking - Amplitudebeheer, SYNC -seinopwekking … (4)
Kringverduideliking - Amplitudebeheer, SYNC -seinopwekking … (4)
Kringverduideliking - Amplitudebeheer, SYNC -seinopwekking … (4)
Kringverduideliking - Amplitudebeheer, SYNC -seinopwekking … (4)

Soos in die datablad geskryf, het die uitsetsignaal pf van die MAX038 amplitude ~ 1 V met gelykstroomspanning gelyk aan die aardpotensiaal.

Ek wou die moontlikheid hê om die seinamplitude te beheer en om die GS -verrekening self te definieer. As bykomende funksie wou ek 'n SYNC -sein met CMOS -vlakke parallel hê met die uitsetsignaal. Die MAX038 -chip genereer standaard so 'n sein, maar in die datablad lees ek dat as hierdie funksie geaktiveer is (wat beteken - DV+ -pen gekoppel aan 5V), sommige pieke (geraas) in die analoog -uitsetsein waargeneem kan word. dit is so skoon as moontlik en daarom het ek die SYNC -sein ekstern gegenereer. Die PCB word gedoen op die manier dat die DV+ -pen maklik oorbrug kan word na die hooftoevoer. Die SYNC -pen word na die BNC -aansluiting gelei - slegs 50 Ohm weerstand moet gesoldeer word. In hierdie geval kan die SYNC -seinopwekkingskringloop weggelaat word. Hier, soos u sien, gebruik ek ook dubbele potensiometers, maar hulle is nie parallel verbind nie. Die rede hiervoor is - ek meet die amplitude relatief. Die spanning by die middelpunt van een potensiometer word deur die Atmega328 ADC waargeneem en die seinamplitude word bereken op grond van hierdie waarde. Hierdie metode is natuurlik nie baie presies nie (dit is afhanklik van die ooreenstemming van beide potensiometergedeeltes, wat nie altyd voorkom nie), maar dit is genoeg presies vir my toepassings. In hierdie kring werk IC2A as spanningsbuffer. IC4A ook. Die IC2B opamp werk as 'n somversterker - dit skep die uitsetsignaal van die funksionele kragopwekker as die som van die offsetspanning en die hoofsignaal met die aangepaste amplitude. Dit word waargeneem deur die Atmega328 ADC. Die IC4B opamp werk as vergelyking - dit beheer die SYNC -omvormer wat deur die twee MOS -transistors (BSS123 en BSS84) gerealiseer word. Die U6 (THS4281 - Texas Instruments) skuif die uitsetsignaal wat deur die MAX038 DC gegenereer word met 2,5 V en versterk dit 1,5 keer. Die gegenereerde sein word dus deur die AVR ADC waargeneem en verder verwerk met FFT -algoritme. In hierdie deel het ek spore van hoë gehalte gebruik om opamps met 130 MHz -bandwydte (TI - LMH6619) op te spoor.

Om maklik te verstaan hoe die SYNC -seinopwekking presies werk, bevat ek 'n paar foto's van LTSpice -simulasies van die stroombaan. Op die derde prentjie: die blou sein is die offsetspanning (inset van die IC2B). Die groen een is die uitsetsein met aangepaste amplitude. Die rooi is die uitsetsein van die funksionele kragopwekker, die siaan -kromme is die SYNC -sein.

Stap 7: PCB -ontwerp

PCB ontwerp
PCB ontwerp

Ek het 'Eagle' gebruik vir die ontwerp van die PCB. Ek het die PCB's by "PCBway" bestel. Hulle het slegs vier dae geneem om die planke te vervaardig en 'n week om dit af te lewer. Hulle kwaliteit is hoog, en die prys is baie laag. Ek het slegs 13 USD betaal vir 10 PCB's!

Daarbenewens kon ek 'n ander kleur PCB bestel sonder prysverhoging. Ek het geel gekies:-).

Ek heg die gerber -lêers aan volgens die 'PCBway' -ontwerpreëls.

Stap 8: Soldeer

Image
Image
Soldeer
Soldeer
Soldeer
Soldeer

Ek het eers die kragtoestelle van die kragtoevoer gesoldeer..

Nadat ek die toevoerblok getoets het, het ek die Atmega328 -chip met sy ondersteunende toestelle gesoldeer: kwarts kristal, kapasitors, filterdoppe en die ISP -aansluiting. Soos u sien, het ek 'n trui in die toevoerlyn van die AVR -chip. Ek ontkoppel dit as ek die chip deur die ISP programmeer. Ek gebruik USBtiny programmeerder vir hierdie doel.

As volgende stap het ek die de-mux-chip 74HC238 gesoldeer, die LED's dui die frekwensiebereik aan. Ek laai 'n klein Arduino -program in die Atmega -chip, wat die multiplexing toets. (sien die video onder die skakel hierbo)

Stap 9: soldeer …

Soldeer…
Soldeer…
Soldeer…
Soldeer…
Soldeer…
Soldeer…

As volgende stap het ek die opamps wat in die DC -modus (LM358) en die frekwensie- en DADJ -verstelpotensiometers werk, gesoldeer en al hul funksies nagegaan.

Verder het ek die BSS123 -skakelaars, die frekwensiebepalende kapasitors en die MAX039 -chip gesoldeer. Ek het die funksionele kragopwekker getoets wat die sein ondersoek op die inheemse chip -uitset. (U kan sien hoe my ou Sowjet, vervaardig uit 1986, nog steeds 'n ossilloskoop in aksie werk:-))

Stap 10: Meer soldeer …

Meer soldeer …
Meer soldeer …
Meer soldeer …
Meer soldeer …
Meer soldeer …
Meer soldeer …

Daarna soldeer ek die aansluiting vir die LCD -skerm en toets dit met die "Hello world" -skets.

Ek het die ander oorblywende opamps, kapasitors, potensiometers en die BNC -verbindings gesoldeer.

Stap 11: sagteware

Image
Image
Sagteware
Sagteware

Vir die skep van die Atmega328 -firmware gebruik ek die Arduino IDE.

Vir die frekwensiemeting gebruik ek die biblioteek "FreqCounter". Die sketslêer en die gebruikte biblioteek kan afgelaai word. Ek het spesiale simbole geskep om die huidige modus (sinus, reghoek, driehoek) voor te stel.

Die inligting op die LCD kan op die foto hierbo gesien word:

  • Frekwensie F = xxxxxxxx in Hz
  • Frekwensiebereik Rx
  • Amplitude in mV A = xxxx
  • Verrekening in mV 0 = xxxx
  • tipe sein x

Die funksiegenerator het twee drukknoppies aan die voorkant aan die linkerkant - dit word gebruik om die frekwensiebereik te verander (stap -stap -af). Aan die regterkant is die skuifskakelaar vir die beheer van die modus, daarna volg dit van links na regs die potensiometer vir die beheer van die frekwensie (kursus, fyn, DADJ), amplitude en die offset. Die skakelaar wat gebruik word om te pendel tussen die vaste teen 2.5V DC -afwyking en die ingestelde, is naby die potensiaalmeter vir die verstelling van die offset geplaas.

Ek het 'n klein fout in die 'Generator.ino' kode in die zip -lêer gevind - die simbole vir sinus- en driehoekgolfvorms is omgeruil. In die enkele 'Generator.ino' lêer wat hier aangeheg is, word die fout reggestel.

Stap 12: Om klaar te wees …

Image
Image

As laaste stap is ek van plan om 'n bykomende funksie te implementeer - meting van die THD van die sinus van die klankfrekwensie in reële tyd met behulp van FFT. Dit is nodig, want die werksiklus van die sinussein kan van 50%verskil, wat veroorsaak kan word deur interne skyfverskille en ander redes en kan harmoniese vervormings veroorsaak. Die werksiklus kan deur die potensiometer aangepas word, maar sonder om die sein op die ossilloskoop of spektrumanaliseerder te waarneem, is dit onmoontlik om die vorm daarvan fyn te maak. Die berekening van die THD gebaseer op die FFT -algoritme kan die probleem oplos. Die resultaat van die THD -berekeninge sal in die leë spasie regs bo op die LCD vertoon word.

Op die video kan die spektrum van die gegenereerde deur die MAX038 sinus sein gesien word. Die spektrumanaliseerder is gebaseer op Arduino UNO -bord + 2,4 TFT -skild. Die spektrumanaliseerder gebruik die SpltRadex Arduino -biblioteek wat ontwikkel is deur Anatoly Kuzmenko om FFT in reële tyd uit te voer.

Ek het nog steeds nie besluit nie - om hierdie biblioteek te gebruik of om die FHT -biblioteek te gebruik wat deur die Musiclabs geskep is.

Ek is van voorneme om die inligting uit die frekwensiemetermetings te gebruik om die korrekte monsternemingsvenster te bereken en die gebruik van addisionele vensters tydens die FFT -berekeninge op te skort. Ek hoef net vrye tyd te vind om dit te laat gebeur. Ek hoop om binnekort resultate te kry …

Aanbeveel: