Indholdsfortegnelse:

Funktionsgenerator: 12 trin (med billeder)
Funktionsgenerator: 12 trin (med billeder)

Video: Funktionsgenerator: 12 trin (med billeder)

Video: Funktionsgenerator: 12 trin (med billeder)
Video: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, Juli
Anonim
Funktionsgenerator
Funktionsgenerator
Funktionsgenerator
Funktionsgenerator

Denne instruktive beskriver designet af funktionsgenerator baseret på Maxims analoge integrerede kredsløb MAX038

Funktionsgeneratoren er et meget nyttigt værktøj til elektronikfreaks. Det er nødvendigt til tuning af resonanskredsløb, test af lyd- og videoudstyr, design af analoge filtre og til mange andre forskellige formål.

I dag er der to hovedtyper af funktionsgeneratorer; digital, (DSP -baseret, DDS …), der oftere og oftere bruges og analoge, som var oprindelsen.

Begge typer har deres fordele og ulemper. De digitale generatorer kan generere signaler med en meget stabil frekvens, men de har problemer med at generere meget rene sinussignaler (hvad der ikke er et problem for en analog). Også de hovedsageligt spredte funktionsgeneratorer baseret på DDS -tilgang har ikke et så stort frekvensgenerationsinterval.

Siden længe har jeg ønsket at designe en nyttig funktionsgenerator, som på en eller anden måde kunne kombinere nogle af fordelene ved begge typer (analoge og digitale) generatorer. Jeg besluttede at basere designet på Maxim -chippen MAX038*

* Bemærk - denne chip produceres og sælges ikke mere af Maxim. Det er forældet. Det er stadig muligt at finde det på eBay, Aliexpress og andre websteder for elektroniske komponenter.

Der findes også andre analoge funktionsgeneratorchips (XR2206 fra Exar, icl8038 fra Intersil), men jeg havde

en MAX038 tilgængelig, og jeg brugte den. Funktionsgeneratorens digitale funktioner blev udført af en Atmega328 -chip. Dens funktioner er følgende:

  • styrer valg af frekvensområde
  • styrer signaltypen (sinus, rektangulær, trekantet, savtand)
  • måler signalets amplitude
  • måler DC -forskydningen
  • måler signalets frekvens
  • måler THD for sinussignalet i lydområdet (dette skal stadig implementeres)
  • viser alle disse oplysninger på et 16x2 LCD -display med tegn.

Trin 1: MAX038 Beskrivelse

MAX038 Beskrivelse
MAX038 Beskrivelse

Jeg har vedhæftet MAX038 databladet. Der kan ses de vigtigste chipparametre:

♦ 0,1 Hz til 20 MHz driftsfrekvensområde

♦ Triangel-, savtand-, sinus-, firkant- og pulsbølgeformer

♦ Uafhængige frekvens- og driftscyklusjusteringer

♦ 350 til 1 Frequency Sweep Range

♦ 15% til 85% variabel driftscyklus

♦ Outputbuffer med lav impedans: 0,1Ω

♦ Lav 200ppm/° C Temperaturdrift

Et andet vigtigt krav er behovet for dobbeltforsyning (± 5V). Outputamplituden er fast (~ 2 VP-P med 0 V DC offset).

På side 8 i databladet kan ses blokdiagrammet for chippen. På side 11 ses det enkleste kredsløb, som kan bruges til at generere et sinusbølgesignal. Dette kredsløb blev taget som grundlag for designet af funktionsgeneratoren.

Trin 2: Kredsløbet…

Kredsløbet…
Kredsløbet…

På billedet er præsenteret kredsløbet for funktionsgeneratoren. Jeg lavede dette billede med den højest mulige opløsning for at garantere, at hver.enhedsværdi kan læses korrekt. Skemaerne ser ret komplekse ud, og for at blive forstået bedre vil jeg forklare dens hoveddele separat. Mange læsere kunne bebrejde mig, at kredsløbet er for overflødigt. Det er sandt. Først kan du se, at den indeholder to MAX038 chips. Årsagen er, at printkortet understøtter både type pakker SO og DIP. Redundansen kan også ses i nogle funktioner -

1) LED'er viser det aktuelle aktive frekvensområde, men det vises også på LCD'et;

2) LED'er bruges også til at angive signaltypen, men også LCD'en viser disse oplysninger

Designet er udført på denne måde for at give brugeren mere fleksibilitet - efter ønske kunne han ikke bruge LCD'et eller simpelthen udelade lodning af LED'er. Jeg har loddet dem for at kunne fejlsøge funktionaliteten i designfaserne.

Det kan også bemærkes, at jeg bruger mange opamps. Nogle af dem kan udelades uden problemer - især bufferne. I øjeblikket tilbyder opampene i sig selv stor redundans - i en pakke kan du finde 2, 4 endda 8 separate forstærkere, og dette til en relativt lav pris. Hvorfor ikke bruge dem?

Redundante er også filtreringskondensatorerne - hver analog chip, der bruges, har sin egen kondensatorbank (tantal + keramiske kondensatorer til begge forsyninger). Nogle af dem kan også udelades.

Trin 3: Forklaring på kredsløb - Strømforsyning (1)

Forklaring på kredsløb - Strømforsyning (1)
Forklaring på kredsløb - Strømforsyning (1)

Som jeg sagde, kræver denne generator dobbelt forsyning. Den positive spænding skabes ved brug af 7805 lineær spændingsregulator. Den negative forsyning genereres af 7905 chip. Det midterste trykpunkt på 2x6V -transformeren er forbundet til tavlens fælles grund. De genererede strømforsyninger - både de positive og negative er adskilt til analog og digital med blokeringer. To lysdioder angiver tilstedeværelsen af hver forsyning.

Trin 4: Forklaring på kredsløb - Frekvensområdekontrol (2)

Forklaring på kredsløb - Frekvensområdekontrol (2)
Forklaring på kredsløb - Frekvensområdekontrol (2)

For at dække stort frekvensområde bruges en multipel kondensatorbank. Kondensatorerne har forskellige værdier, og de definerer forskellige frekvensdelområder. Kun en af disse kondensatorer bruges under arbejdet - dens bundplade er jordet af MOS transistor switch. Hvilke kondensatorer bundplade, der skal jordes, styres af Atmega328 ved brug af demultiplexer -chip 74HC238. Som MOS -switches brugte jeg BSS123 -transistorer. Hovedkravet til denne switch er at have lav Ron og den lavest mulige afløbskapacitet. Den digitale styring af kondensatorbanken kan udelades - printkortet indeholder huller til lodning af ledningerne til mekanisk drejekontakt.

Trin 5: Forklaring på kredsløb - Frekvensjustering (3)

Forklaring på kredsløb - frekvensjustering (3)
Forklaring på kredsløb - frekvensjustering (3)

På billedet vises frekvens- og driftscyklusstyringskredsløbet. Der brugte jeg standard LM358 opamp (dobbelt forstærker i en pakke). Jeg brugte også dobbelte 10K potentiometre.

MAX038 -chippen genererer intern spændingsreference 2,5V, som normalt bruges som reference for alle justeringer.

Denne spænding påføres ved den inverterende indgang på IC8a, og den genererer negativ spændingsreference, der bruges til DADJ (driftscyklusjustering). Begge spændinger påføres på potentiometeret for DADJ, hvilket midterste tryk er bufret og påført DADJ -stiften på MAX038 -chippen. Jumperen JP5 kan bruges til at deaktivere DADJ -funktionen, når den er forbundet til jorden. Frekvenskontrollen "Kurs" foretages på forhånd ved at ændre den nuværende sunkede / hentede i MAX038 "IIN" pin. Denne strøm defineres af modstanden R41 og udampens udgangsspænding, der buffrer den midterste hane på kursfrekvensstyringspotentiometeret. Alle disse kan erstattes af et enkelt potentiometer (i reostat -forbindelse) mellem REF- og IIN MAX038 -benene.

Trin 6: Forklaring af kredsløb - Amplitudekontrol, SYNC -signalgenerering … (4)

Forklaring på kredsløb - Amplitudekontrol, SYNC -signalgenerering … (4)
Forklaring på kredsløb - Amplitudekontrol, SYNC -signalgenerering … (4)
Forklaring på kredsløb - Amplitudekontrol, SYNC -signalgenerering … (4)
Forklaring på kredsløb - Amplitudekontrol, SYNC -signalgenerering … (4)
Forklaring på kredsløb - Amplitudekontrol, SYNC -signalgenerering … (4)
Forklaring på kredsløb - Amplitudekontrol, SYNC -signalgenerering … (4)
Forklaring på kredsløb - Amplitudekontrol, SYNC -signalgenerering … (4)
Forklaring på kredsløb - Amplitudekontrol, SYNC -signalgenerering … (4)

Som skrevet i databladet har udgangssignalet pf MAX038 amplitude ~ 1 V med DC spænding lig med jordpotentialet.

Jeg ville have mulighed for at styre signalamplituden og for at kunne definere DC -forskydningen af mig selv. Som ekstra funktion ville jeg have SYNC -signal med CMOS -niveauer parallelt med udgangssignalet. Som standard genererer MAX038 -chippen et sådant signal, men i databladet læste jeg, at hvis denne funktion er aktiveret (hvad betyder - DV+ pin forbundet til 5V), kan nogle toppe (støj) observeres i det analoge output -signal. Jeg ville beholde det så rent som muligt, og derfor genererede jeg SYNC -signalet eksternt. PCB'et udføres på den måde, at DV+ -stiften let kan forbindes til hovedforsyningen. SYNC -stiften føres til BNC -stikket - kun 50 Ohm modstand skal loddes. I dette tilfælde kan SYNC -signalgenereringskredsløbet udelades. Her som du ser bruger jeg også dobbelte potentiometre, men de er ikke forbundet parallelt. Grunden til det er - jeg måler amplituden relativt. Spændingen i midten af et potentiometer registreres af Atmega328 ADC, og signalamplituden beregnes ud fra denne værdi. Denne metode er naturligvis ikke særlig præcis (den er afhængig af matchningen af begge potentiometersektioner, hvilket ikke altid forekommer), men den er nok præcis til mine applikationer. I dette kredsløb fungerer IC2A som spændingsbuffer. IC4A også. IC2B opamp fungerer som summeringsforstærker - det skaber udgangssignalet fra den funktionelle generator som summen af offsetspændingen og hovedsignalet med justeret amplitude. Spændingsdeleren R15. R17 genererer et passende spændingssignal til måling af DC -hovedsignalets offset. Det registreres af Atmega328 ADC. IC4B opamp fungerer som komparator - den styrer SYNC -generatoromformeren realiseret af de to MOS -transistorer (BSS123 og BSS84). U6 (THS4281 - Texas Instruments) forskyder udgangssignalet genereret af MAX038 DC med 2,5 V og forstærker det 1,5 gange. Så genereret signal registreres af AVR ADC og behandles yderligere med FFT -algoritme. I denne del brugte jeg jernbane af høj kvalitet til at opampe med 130 MHz båndbredde (TI - LMH6619).

For at være let at forstå, hvordan SYNC -signalgenerering nøjagtigt fungerer, inkluderer jeg nogle billeder af LTSpice -simuleringer af kredsløbet. På det tredje billede: det blå signal er offset -spændingen (input af IC2B). Den grønne er udgangssignalet med justeret amplitude. Den røde er udgangssignalet fra den funktionelle generator. Cyankurven er SYNC -signalet.

Trin 7: PCB -design

PCB Design
PCB Design

Jeg brugte "Eagle" til design af PCB. Jeg bestilte printkortene på "PCBway". Dem tog kun fire dage at producere tavlerne og en uge at levere dem. Deres kvalitet er høj, og prisen er ekstremt lav. Jeg betalte kun 13 USD for 10 PCB'er!

Derudover kunne jeg bestille en anden farve PCB uden prisstigning. Jeg har valgt gule:-).

Jeg vedhæfter gerber -filerne i henhold til "PCBway" -designreglerne.

Trin 8: Lodning

Image
Image
Lodning
Lodning
Lodning
Lodning

Først lod jeg strømforsyningskredsenhederne..

Efter at have testet forsyningsblokken har jeg loddet Atmega328 -chippen med dens understøttende enheder: kvartskrystal, kondensatorer, filtreringshætter og ISP -stikket. Som du ser har jeg en jumper i forsyningslinjen til AVR -chippen. Jeg afbryder den, når jeg programmerer chippen gennem internetudbyderen. Jeg bruger USBtiny programmerer til det formål.

Som næste trin lodde jeg de-mux-chippen 74HC238, LED'erne angiver frekvensområdet. Jeg indlæste et lille Arduino -program i Atmega -chippen, som testede multiplexingen. (se videoen under linket ovenfor)

Trin 9: Lodning …

Lodning …
Lodning …
Lodning …
Lodning …
Lodning …
Lodning …

Som næste trin lodde jeg opampene, der arbejdede i DC -tilstand (LM358) og frekvens- og DADJ -justeringspotentiometre og kontrollerede alle deres funktioner.

Yderligere lodde jeg BSS123 -switches, de frekvensbestemmende kondensatorer og MAX039 -chippen. Jeg testede den funktionelle generator, der sonderede signalet ved det native chipsignaludgang. (Du kan se min gamle sovjet, produceret 1986, stadig arbejder oscilloskop i aktion:-))

Trin 10: Mere lodning …

Mere lodning …
Mere lodning …
Mere lodning …
Mere lodning …
Mere lodning …
Mere lodning …

Derefter lodde jeg fatningen til LCD -displayet og testede det med "Hello world" -skitsen.

Jeg lodde de andre resterende opamps, kondensatorer, potentiometre og BNC -stik.

Trin 11: Software

Image
Image
Software
Software

Til oprettelse af Atmega328 firmware brugte jeg Arduino IDE.

Til frekvensmåling brugte jeg biblioteket "FreqCounter". Skitsefilen og det brugte bibliotek kan downloades. Jeg har skabt særlige symboler til at repræsentere den aktuelt anvendte tilstand (sinus, rektangulær, trekant).

På billedet ovenfor kan oplysninger ses på LCD'et:

  • Frekvens F = xxxxxxxx i Hz
  • Frekvensområde Rx
  • Amplitude i mV A = xxxx
  • Forskydning i mV 0 = xxxx
  • signalets type x

Funktionsgeneratoren har to trykknapper på forsiden i venstre side - de bruges til at ændre frekvensområdet (trin op -trin ned). Til højre for dem er skydekontakten til styring af tilstanden, efter at den fra venstre til højre følger potentiometeret til styring af frekvensen (forløb, fint, DADJ), amplitude og offset. Tæt på offsetjusteringspotentiometeret er placeret kontakten, der bruges til at kommutere mellem den faste ved 2,5V DC offset og den indstillede.

Jeg har fundet en lille fejl i "Generator.ino" -koden i ZIP -filen - symbolerne for sinus- og trekantbølgeformer blev byttet. I den enkelte "Generator.ino" -fil vedhæftet her, er fejlen rettet.

Trin 12: Skal gøres …

Image
Image

Som sidste trin har jeg til hensigt at implementere yderligere funktion - måling af THD for lydfrekvens sinussignal i realtid ved hjælp af FFT. Dette er nødvendigt, fordi sinussignalets driftscyklus kan afvige fra 50%, hvad der kan skyldes interne chipfejl og andre årsager og kunne skabe harmoniske forvrængninger. Driftscyklussen kan justeres af potentiometeret, men uden at observere signalet på oscilloskopet eller spektrumanalysatoren er det umuligt at trimme dens form fint. Beregning af THD baseret på FFT -algoritmen kunne løse problemet. Resultatet af THD -beregningerne vises på LCD -skærmen øverst til højre i tomrummet.

På videoen kan ses spektret af det genererede af MAX038 sinussignal. Spektrumanalysatoren er baseret på Arduino UNO -kort + 2,4 TFT -skærm. Spektrumanalysatoren bruger SpltRadex Arduino -biblioteket udviklet af Anatoly Kuzmenko til at udføre FFT i realtid.

Jeg besluttede stadig ikke - at bruge dette bibliotek eller at bruge FHT -biblioteket oprettet af Musiclabs.

Jeg agter at bruge oplysningerne fra frekvensmålermålingerne til at beregne det korrekte prøveudtagningsvindue og suspendere brugen af yderligere vinduer under FFT -beregningerne. Jeg mangler kun at finde lidt tid til at få dette til at ske. Jeg håber snart at få nogle resultater ….

Anbefalede: