Բովանդակություն:

Ֆունկցիայի գեներատոր `12 քայլ (նկարներով)
Ֆունկցիայի գեներատոր `12 քայլ (նկարներով)

Video: Ֆունկցիայի գեներատոր `12 քայլ (նկարներով)

Video: Ֆունկցիայի գեներատոր `12 քայլ (նկարներով)
Video: F1 – F12. Չափազանց օգտակար կոճակներ, որ պետք է իմանա յուրաքանչյուր մարդ 2024, Հուլիսի
Anonim
Ֆունկցիայի գեներատոր
Ֆունկցիայի գեներատոր
Ֆունկցիայի գեներատոր
Ֆունկցիայի գեներատոր

Այս հրահանգը նկարագրում է գործառույթի գեներատորի դիզայնը `հիմնված Maxims- ի անալոգային MAX038 ինտեգրալ սխեմայի վրա:

Ֆունկցիայի գեներատորը շատ օգտակար գործիք է էլեկտրոնիկայի սարսափների համար: Այն անհրաժեշտ է ռեզոնանսային սխեմաների կարգավորման, աուդիո և վիդեո սարքավորումների փորձարկման, անալոգային ֆիլտրերի նախագծման և շատ այլ տարբեր նպատակների համար:

Այսօր գոյություն ունի ֆունկցիայի գեներատորների երկու հիմնական տեսակ. թվային, (DSP- ի վրա հիմնված, DDS…) որոնք ավելի ու ավելի հաճախ են օգտագործվում և անալոգային, որոնք էին ծագումը:

Երկու տեսակներն ունեն իրենց առավելություններն ու թերությունները: Թվային գեներատորները կարող են շատ կայուն հաճախականությամբ ազդանշաններ արտադրել, բայց նրանք խնդիրներ ունեն մաքուր սինուս ազդանշանների ստեղծման հետ (ինչը անալոգայինի համար խնդիր չէ): Նաև DDS մոտեցման հիման վրա հիմնականում տարածված ֆունկցիայի գեներատորներն ունեն ոչ այնքան հաճախականության գեներացման տիրույթ:

Երկար ժամանակ ես ցանկանում էի նախագծել օգտակար գործառույթի գեներատոր, որը կարող էր ինչ -որ կերպ համատեղել երկու տեսակի (անալոգային և թվային) գեներատորների որոշ առավելություններ: Ես որոշեցի դիզայնը հիմնել Maxim չիպի MAX038* վրա

* Նշում. Այս չիպը այլևս չի արտադրվում և վաճառվում Maxim- ի կողմից: Այն հնացած է: Դեռ հնարավոր է գտնել այն eBay- ում, Aliexpress- ում և էլեկտրոնային բաղադրիչների այլ կայքերում:

Կան նաև այլ անալոգային ֆունկցիայի գեներատորներ (XR2206 Exar- ից, icl8038 Intersil- ից), բայց ես ունեի

առկա է մեկ MAX038, և ես այն օգտագործել եմ: Ֆունկցիայի գեներատորի թվային հնարավորությունները կատարվել են մեկ Atmega328 չիպի միջոցով: Դրա գործառույթները հետևյալն են.

  • վերահսկում է հաճախականության տիրույթի ընտրությունը
  • վերահսկում է ազդանշանի տեսակը (սինուս, ուղղանկյուն, եռանկյուն, սղոց)
  • չափում է ազդանշանի ամպլիտուդը
  • չափում է DC օֆսեթը
  • չափում է ազդանշանի հաճախականությունը
  • չափում է ձայնային տիրույթի սինուսային ազդանշանի THD- ն (սա դեռ պետք է իրականացվի)
  • ցուցադրում է այս բոլոր տվյալները բնույթի 16x2 LCD էկրանով:

Քայլ 1: MAX038 Նկարագրություն

MAX038 Նկարագրություն
MAX038 Նկարագրություն

Ես կցել եմ MAX038 տվյալների թերթը: Այստեղ կարելի է տեսնել չիպի ամենակարևոր պարամետրերը.

♦ 0.1 Հց -ից 20 ՄՀց գործառական հաճախականության տիրույթ

♦ Եռանկյունի, սղոց, սինուս, քառակուսի և զարկերակային ալիքների ձևեր

♦ Հաճախականության և պարտականությունների ցիկլի անկախ ճշգրտումներ

♦ 350 -ից 1 հաճախականությունների տարածման տիրույթ

♦ 15% -ից 85% փոփոխական աշխատանքային ցիկլ

♦ Imածր դիմադրության ելքային բուֆեր ՝ 0.1Ω

♦ ♦ածր 200ppm/° C ջերմաստիճանի շեղում

Մեկ այլ կարևոր պահանջ է երկակի մատակարարման անհրաժեշտությունը (± 5V): Ելքի ամպլիտուդը ֆիքսված է (~ 2 VP-P 0 V DC օֆսեթով):

Տվյալների թերթի 8-րդ էջում կարելի է տեսնել չիպի բլոկ-դիագրամը: 11 -րդ էջում կարելի է տեսնել ամենապարզ շրջանը, որը կարող է օգտագործվել սինուսային ալիքի ազդանշան ստեղծելու համար: Այս սխեման ընդունվել է որպես գործառույթի գեներատորի նախագծման հիմք:

Քայլ 2: Շրջանը…

Շրջանը…
Շրջանը…

Նկարում ներկայացված է ֆունկցիայի գեներատորի սխեման, որը ես արել եմ այս պատկերը հնարավոր ամենաբարձր լուծաչափով `երաշխավորելու համար, որ յուրաքանչյուր սարքի արժեքը կարող է ճիշտ ընթերցվել: Սխեմաները բավականին բարդ տեսք ունեն, և ավելի լավ հասկանալու համար ես առանձին կբացատրեմ դրա հիմնական մասերը: Շատ ընթերցողներ կարող են ինձ մեղադրել, որ շրջանը չափազանց ավելորդ է: Դա ճիշտ է. Սկզբում կարող եք տեսնել, որ այն պարունակում է երկու MAX038 չիպ: Պատճառն այն է, որ PCB- ն ապահովում է երկու տեսակի SO և DIP փաթեթներ: Ավելորդությունը կարելի է տեսնել նաև որոշ գործառույթներում.

1) LED- ները ցույց են տալիս ընթացիկ ակտիվ հաճախականությունների տիրույթը, բայց այն նաև ցուցադրվում է LCD- ով.

2) LED- ները օգտագործվում են նաև ազդանշանի տեսակը նշելու համար, բայց նաև LCD- ը ցույց է տալիս այս տեղեկատվությունը

Դիզայնը կատարվում է այնպես, որ օգտագործողին ավելի շատ ճկունություն տրվի. Ցանկության դեպքում նա չէր կարող օգտագործել LCD- ը, կամ պարզապես կարող էր բաց թողնել LED- ների զոդումը: Ես դրանք զոդել եմ, որպեսզի կարողանանք կարգաբերել ֆունկցիոնալությունը նախագծման փուլերում:

Կարելի է նկատել նաև, որ ես օգտագործում եմ շատ բացվող սարքեր: Նրանցից ոմանք կարող են բաց թողնվել առանց խնդիրների, հատկապես բուֆերները: Ներկա ժամանակներում ինքնաթափերն իրենց իսկ կողմից առաջարկում են մեծ ավելորդություն. Մեկ փաթեթում կարող եք գտնել 2, 4 նույնիսկ 8 առանձին ուժեղացուցիչ, և դա համեմատաբար ցածր գնով: Ինչու՞ չօգտագործել դրանք:

Ավելորդ են նաև զտիչ կոնդենսատորները. Օգտագործված յուրաքանչյուր անալոգային չիպ ունի իր կոնդենսատորների բանկը (տանտալ + կերամիկական կոնդենսատորներ երկու մատակարարումների համար): Նրանցից ոմանք կարող են նաև բաց թողնվել:

Քայլ 3. Շրջանակի բացատրություն - Էներգամատակարարում (1)

Շղթայի բացատրություն - Էներգամատակարարում (1)
Շղթայի բացատրություն - Էներգամատակարարում (1)

Ինչպես ասացի, այս գեներատորը պահանջում է երկակի մատակարարում: Դրական լարումը ստեղծվում է 7805 գծային լարման կարգավորիչի օգտագործմամբ: Բացասական առաջարկը գեներացվում է 7905 չիպով: 2x6V տրանսֆորմատորի միջին թակոցը միացված է տախտակի ընդհանուր գետնին: Գեներացված էներգիայի աղբյուրներ. Եվ՛ դրական, և՛ բացասական, անջատիչներով բաժանվում են անալոգային և թվային: Երկու LED- ներ նշում են յուրաքանչյուր մատակարարման առկայությունը:

Քայլ 4. Շրջանակի բացատրություն - Հաճախականության տիրույթի վերահսկում (2)

Շղթայի բացատրություն - հաճախականությունների տիրույթի վերահսկում (2)
Շղթայի բացատրություն - հաճախականությունների տիրույթի վերահսկում (2)

Հաճախականությունների մեծ տիրույթը ծածկելու համար օգտագործվում է բազմաթիվ կոնդենսատորների բանկ: Կոնդենսատորներն ունեն տարբեր արժեքներ, և դրանք սահմանում են տարբեր հաճախականությունների ենթաօրենսդրական տիրույթներ: Աշխատանքի ընթացքում օգտագործվում է միայն այդ կոնդենսատորներից մեկը. Դրա ստորին ափսեը հիմնավորված է MOS տրանզիստորային անջատիչով: Որ կոնդենսատորների ստորին ափսեն հիմնավորվելու է Atmega328- ի կողմից ՝ 74HC238 demultiplexer չիպի օգտագործմամբ: Որպես MOS անջատիչներ ես օգտագործել եմ BSS123 տրանզիստորներ: Այս անջատիչի հիմնական պահանջն է ունենալ ցածր Ron և հնարավոր ամենացածր հնարավոր արտահոսքի հզորություն: Կոնդենսատորների բանկի թվային հսկողությունը կարելի է բաց թողնել. PCB- ն պարունակում է մեխանիկական պտտվող անջատիչի լարերը միացնելու համար անցքեր:

Քայլ 5. Շրջանի բացատրություն. Հաճախականության ճշգրտում (3)

Շղթայի բացատրություն - հաճախականության ճշգրտում (3)
Շղթայի բացատրություն - հաճախականության ճշգրտում (3)

Նկարում պատկերված են հաճախականության և աշխատանքային ցիկլի կառավարման շրջանառությունը: Այնտեղ ես օգտագործեցի ստանդարտ LM358 opamp (երկակի ուժեղացուցիչ մեկ փաթեթում): Օգտագործեցի նաև երկակի 10K պոտենցիոմետր:

MAX038 չիպը ստեղծում է ներքին լարման տեղեկանք 2.5 Վ, որը սովորաբար օգտագործվում է որպես հղում բոլոր ճշգրտումների համար:

Այս լարումը կիրառվում է IC8a- ի շրջադարձ մուտքագրման ժամանակ և այն առաջացնում է բացասական լարման հղում, որն օգտագործվում է DADJ- ի համար (աշխատանքային ցիկլի ճշգրտում): Երկու լարումները կիրառվում են DADJ- ի պոտենցիոմետրում, որի միջին ծորակը բուֆերացված է և կիրառվում է MAX038 չիպի DADJ կապում: JP5 jumper- ը կարող է օգտագործվել DADJ գործառույթը անջատելու համար, երբ միացված է գետնին: «Դասընթացի» հաճախականության հսկողությունը նախապես ձևավորվում է ՝ փոխելով ընթացիկ ընկղմված / աղբյուրը MAX038 «IIN» կապում: Այս հոսանքը որոշվում է R41 ռեզիստորով և հոսանքի հաճախականությունների կառավարման պոտենցիոմետրի միջին ծորակն անջատող օպամպի ելքային լարմամբ: Այս բոլորը կարող են փոխարինվել մեկ պոտենցիոմետրով (reostat կապով) REF և IIN MAX038 կապումների միջև:

Քայլ 6. Շրջանակի բացատրություն - Ամպլիտուդիայի կառավարում, SYNC ազդանշանի ստեղծում… (4)

Շղթայի բացատրություն - ամպլիտուդիայի կառավարում, SYNC ազդանշանի ստեղծում … (4)
Շղթայի բացատրություն - ամպլիտուդիայի կառավարում, SYNC ազդանշանի ստեղծում … (4)
Շղթայի բացատրություն - ամպլիտուդիայի կառավարում, SYNC ազդանշանի ստեղծում…
Շղթայի բացատրություն - ամպլիտուդիայի կառավարում, SYNC ազդանշանի ստեղծում…
Շղթայի բացատրություն - ամպլիտուդիայի կառավարում, SYNC ազդանշանի ստեղծում…
Շղթայի բացատրություն - ամպլիտուդիայի կառավարում, SYNC ազդանշանի ստեղծում…
Շղթայի բացատրություն - ամպլիտուդիայի կառավարում, SYNC ազդանշանի ստեղծում … (4)
Շղթայի բացատրություն - ամպլիտուդիայի կառավարում, SYNC ազդանշանի ստեղծում … (4)

Ինչպես գրված է տվյալների թերթիկում, MAX038- ի ելքային ազդանշանն ունի ամպլիտուդ ~ 1 Վ, DC լարման հետ, որը հավասար է գրունտի ներուժին:

Ես ուզում էի ունենալ ազդանշանի ամպլիտուդը վերահսկելու հնարավորություն և կարողանալ ինքս որոշել DC օֆսեթը: Որպես լրացուցիչ գործառույթ ես ուզում էի ունենալ ելքային ազդանշանին զուգահեռ CMOS մակարդակներով SYNC ազդանշան: Լռելյայն MAX038 չիպը նման ազդանշան է առաջացնում, բայց տվյալների թերթիկում ես կարդում եմ, որ եթե այս հնարավորությունը միացված է (ինչ է նշանակում ՝ DV+ կապակցված 5 Վ), ապա ելքային անալոգային ազդանշանում կարող են նկատվել որոշ գագաթներ (աղմուկ): Ես ուզում էի պահել այն հնարավորինս մաքուր էր, և այդ պատճառով ես արտաքինից ստեղծեցի SYNC ազդանշանը: PCB- ն արվում է այնպես, որ DV+ կապը հեշտությամբ կամրջվի դեպի հիմնական աղբյուրը: SYNC կապը ուղղորդվում է դեպի BNC միակցիչ. Պետք է զոդել միայն 50 Օմ դիմադրիչ: Այս դեպքում SYNC ազդանշանի ստեղծման սխեման կարող է բաց թողնվել: Այստեղ, ինչպես տեսնում եք, ես օգտագործում եմ նաև երկակի պոտենցիոմետրեր, բայց դրանք զուգահեռաբար կապված չեն: Դրա պատճառն այն է, որ ես համեմատաբար չափում եմ ամպլիտուդը: Մեկ պոտենցիոմետրի միջին կետի լարումը զգացվում է Atmega328 ADC- ով և ազդանշանի ամպլիտուդը հաշվարկվում է այս արժեքի հիման վրա: Իհարկե, այս մեթոդը այնքան էլ ճշգրիտ չէ (այն հիմնված է պոտենցիոմետրերի երկու հատվածների համընկման վրա, ինչը միշտ չէ, որ տեղի է ունենում), բայց դա բավական ճշգրիտ է իմ կիրառությունների համար: Այս սխեմայում IC2A- ն աշխատում է որպես լարման բուֆեր: IC4A- ն նույնպես: IC2B opamp- ը աշխատում է որպես ամփոփիչ ուժեղացուցիչ. Այն ստեղծում է ֆունկցիոնալ գեներատորի ելքային ազդանշան `որպես անջատված լարման գումար և հիմնական ազդանշան` ճշգրտված ամպլիտուդով: Լարման բաժանարար R15. R17- ը ստեղծում է համապատասխան լարման ազդանշան DC հիմնական ազդանշանի անջատումը չափելու համար: Այն զգացվում է Atmega328 ADC- ով: IC4B opamp- ը աշխատում է որպես համեմատիչ. Այն վերահսկում է SYNC սերնդի ինվերտորը, որն իրականացվել է երկու MOS տրանզիստորների կողմից (BSS123 և BSS84): U6- ը (THS4281 - Texas Instruments) MAX038 DC- ով առաջացած ելքային ազդանշանը տեղափոխում է 2,5 Վ լարման միջոցով և ուժեղացնում այն 1,5 անգամ: Այսպիսով, առաջացած ազդանշանը զգացվում է AVR ADC- ի կողմից և հետագայում մշակվում FFT ալգորիթմով: Այս մասում ես օգտագործեցի բարձրորակ երկաթուղի ՝ 130 ՄՀց թողունակությամբ թողարկվող անցումներ (TI - LMH6619):

Հեշտությամբ հասկանալու համար, թե ինչպես է աշխատում SYNC ազդանշանի ստեղծումը, ես ներառում եմ միացում LTSpice- ի մոդելավորման մի քանի նկար: Երրորդ նկարի վրա. Կապույտ ազդանշանը օֆսեթ լարումն է (IC2B- ի մուտքը): Կանաչը ելքային ազդանշանն է `ճշգրտված ամպլիտուդով: Կարմիրը ֆունկցիոնալ գեներատորի ելքային ազդանշանն է, ցիանային կորը `SYNC ազդանշանը:

Քայլ 7: PCB նախագծում

PCB դիզայն
PCB դիզայն

PCB- ի նախագծման համար օգտագործել եմ «Արծիվ» -ը: Ես PCB- ն պատվիրեցի «PCBway» - ում: Նրանց տախտակները պատրաստելու համար պահանջվեց ընդամենը չորս օր, իսկ առաքման համար `մեկ շաբաթ: Նրանց որակը բարձր է, իսկ գինը ՝ չափազանց ցածր: Ես վճարեցի ընդամենը 13 ԱՄՆ դոլար ՝ 10 հատ PCB- ի համար:

Բացի այդ, ես կարող էի պատվիրել այլ գույնի PCB ՝ առանց գնի բարձրացման: Ես ընտրել եմ դեղինները:-):

Ես կցում եմ gerber ֆայլերը ՝ համաձայն «PCBway» նախագծման կանոնների:

Քայլ 8: Sոդում

Image
Image
Oldոդման
Oldոդման
Oldոդման
Oldոդման

Սկզբում ես միացրեցի էլեկտրամատակարարման միացման սարքերը..

Մատակարարման բլոկը փորձարկելուց հետո ես զոդել եմ Atmega328 չիպը իր օժանդակ սարքերով `քվարցային բյուրեղով, կոնդենսատորներով, զտիչ կափարիչներով և ISP միակցիչով: Ինչպես տեսնում եք, ես jumper ունեմ AVR չիպի մատակարարման գծում: Ես անջատում եմ այն, երբ չիպը ծրագրավորում եմ ISP- ի միջոցով: Այդ նպատակով ես օգտագործում եմ USBtiny ծրագրավորող:

Հաջորդ քայլում ես զոդեցի 74HC238 de-mux չիպը, LED- ները նշում են հաճախականության տիրույթը: Ես բեռնեցի մի փոքրիկ Arduino ծրագիր Atmega չիպում, որը փորձարկում էր մուլտիպլեքսավորումը: (տես տեսանյութը վերևի հղման տակ)

Քայլ 9: eringոդում…

Sոդման…
Sոդման…
Sոդման…
Sոդման…
Sոդման…
Sոդման…

Հաջորդ քայլին ես միացրեցի DC ռեժիմում աշխատող opamps- երը (LM358) և հաճախականության և DADJ ճշգրտման պոտենցիոմետրերը և ստուգեցի դրանց բոլոր գործառույթները:

Հետագայում ես զոդեցի BSS123 անջատիչները, հաճախականությունը որոշող կոնդենսատորները և MAX039 չիպը: Ես փորձարկեցի ազդանշանը զննող ֆունկցիոնալ գեներատորը չիպի ազդանշանի ելքային ելքի վրա: (Դուք կարող եք տեսնել իմ հին սովետը, արտադրված 1986 թ., Որը դեռ աշխատում է տատանումների մեջ:-))

Քայլ 10: Ավելի շատ զոդում…

Ավելի զոդող…
Ավելի զոդող…
Ավելի զոդող…
Ավելի զոդող…
Ավելի զոդող…
Ավելի զոդող…

Դրանից հետո ես կցեցի վարդակը LCD էկրանին և փորձարկեցի այն «Բարև աշխարհ» էսքիզով:

Ես կպցրեցի մնացած մնացած օպամպերը, կոնդենսատորները, պոտենցիոմետրերը և BNC միակցիչները:

Քայլ 11: Softwareրագրակազմ

Image
Image
Ծրագրային ապահովում
Ծրագրային ապահովում

Atmega328 որոնվածը ստեղծելու համար ես օգտագործեցի Arduino IDE- ն:

Հաճախականության չափման համար ես օգտագործել եմ «FreqCounter» գրադարանը: Էսքիզային ֆայլը և օգտագործված գրադարանը հասանելի են ներբեռնման համար: Ես ստեղծել եմ հատուկ խորհրդանիշներ ներկայացնելու համար օգտագործվող ռեժիմը (սինուս, ուղղանկյուն, եռանկյուն):

Վերևի նկարում կարելի է տեսնել LCD- ով ցուցադրված տեղեկատվությունը.

  • Հաճախականությունը F = xxxxxxx Հց -ում
  • Հաճախականությունների տիրույթ Rx
  • Ամպլիտուդիա mV A = xxxx- ում
  • Օֆսեթ mV 0 = xxxx
  • ազդանշանի տեսակը x

Ֆունկցիայի գեներատորը ձախ կողմում ունի երկու կոճակ ՝ առջևի մասում. Դրանք օգտագործվում են հաճախությունների միջակայքի փոփոխման համար (քայլ վեր - վար ներքև): Դրանցից աջում ռեժիմի վերահսկման համար նախատեսված սլայդ անջատիչն է, որից ձախից աջ հետևեք հաճախականության (ընթացքի, լավ, DADJ), ամպլիտուդիայի և օֆսեթը վերահսկելու պոտենցիոմետրին: Օֆսեթ ճշգրտման պոտենցիոմետրի մոտակայքում տեղադրված է անջատիչը, որն օգտագործվում է 2.5V DC օֆսեթում լարվածի և լարվածի միջև փոխանակման համար:

Ես գտա մի փոքր սխալ «Generator.ino» ծածկագրում ZIP ֆայլում. Սինուս և եռանկյուն ալիքների ձևերի խորհրդանիշները փոխանակվեցին: Այստեղ ամրացված «Generator.ino» ֆայլում սխալն ուղղված է:

Քայլ 12: Կատարված…

Image
Image

Որպես վերջին քայլ, ես մտադիր եմ իրականացնել լրացուցիչ գործառույթ `ձայնային հաճախականության սինուսային ազդանշանի THD չափում իրական ժամանակում` օգտագործելով FFT: Սա անհրաժեշտ է, քանի որ սինուս ազդանշանի աշխատանքային ցիկլը կարող է տարբերվել 50%-ից, ինչը կարող է առաջանալ չիպերի ներքին անհամապատասխանությունների և այլ պատճառների պատճառով և կարող է ներդաշնակ աղավաղումներ առաջացնել: Աշխատանքային ցիկլը կարող է ճշգրտվել պոտենցիոմետրով, սակայն առանց օսցիլոսկոպի կամ սպեկտրի անալիզատորի ազդանշանի դիտարկման անհնար է կտրել դրա ձևը: FFT ալգորիթմի հիման վրա THD- ի հաշվարկը կարող է լուծել խնդիրը: THD հաշվարկների արդյունքը կցուցադրվի LCD- ում ՝ վերևի աջ դատարկ տարածության մեջ:

Տեսանյութում կարելի է տեսնել MAX038 սինուսային ազդանշանի միջոցով առաջացած սպեկտրը: Սպեկտրի անալիզատորը հիմնված է Arduino UNO տախտակի + 2.4 TFT վահանի վրա: Սպեկտրի անալիզատորը օգտագործում է Անատոլի Կուզմենկոյի կողմից մշակված SpltRadex Arduino գրադարանը` իրական ժամանակում FFT կատարելու համար:

Ես դեռ չէի որոշել `օգտագործել այս գրադարանը, թե օգտագործել Musiclabs- ի ստեղծած FHT գրադարանը:

Ես մտադիր եմ օգտագործել հաճախությունների հաշվիչի չափումներից վերցված տեղեկատվությունը `ընտրանքի ճիշտ պատուհանը հաշվարկելու և FFT- ի հաշվարկների ժամանակ լրացուցիչ պատուհանների կիրառման դադարեցման համար: Ինձ պետք է միայն ազատ ժամանակ գտնել `դա իրականացնելու համար: Հուսով եմ, որ շուտով որոշ արդյունքներ կունենանք…

Խորհուրդ ենք տալիս: