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

MSP430 Breadboard Audio Spectrum Analyzer: 6 քայլ
MSP430 Breadboard Audio Spectrum Analyzer: 6 քայլ

Video: MSP430 Breadboard Audio Spectrum Analyzer: 6 քայլ

Video: MSP430 Breadboard Audio Spectrum Analyzer: 6 քայլ
Video: MSP430 Breadboard Audio Spectrum Analyser 2024, Նոյեմբեր
Anonim
Image
Image
MSP430 Breadboard Audio Spectrum Analyzer
MSP430 Breadboard Audio Spectrum Analyzer

Այս նախագիծը հիմնված է խոսափողի վրա և պահանջում է նվազագույն արտաքին բաղադրիչներ: 2 x LR44 մետաղադրամների բջիջներն օգտագործվում են այնպես, որ ես կարողանամ ամբողջ կառույցը աշխատել 170 փողկապ ունեցող մինի տախտակի սահմաններում: Օգտագործվում և ցուցադրվում են ADC10, TimerA ընդհատում LPM- ի արթնացում, TimerA PWM նման ելք, կոճակների օգտագործում, ամբողջ թվաբանություն:

Հատկություններ

  • 8 բիթանոց ամբողջական FFT 16 նմուշ ՝ 500 Հց բաժանման դեպքում
  • ցույց է տալիս 8 ամպլիտուդներ 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K ոչ գծային
  • մասնակի լոգարիթմական քարտեզ `ամպլիտուդներ ցույց տալու համար, սահմանափակ է, քանի որ բանաձևը կրճատվել է 8 բիթանոց FFT- ի համար
  • TLC272 միափուլ միկրոֆոնը ուժեղացնում է 100x անգամ 100x շահույթով (կարող եք զգալ 2 փուլով)
  • ընտրացանկի ընտրովի Hamming պատուհանը
  • ընտրացանկը կարգավորում է 4 մակարդակի պայծառություն
  • ընտրացանկը հարմարեցնում է 8 մակարդակի ընտրանքի արագությունը / արձագանքման ժամանակը
  • 2 x LR44 մետաղադրամի բջիջ, որը սնուցվում է «նավի վրա»

Քայլ 1: Ձեռք բերեք մասեր

Հետևյալը այն է, ինչ անհրաժեշտ է այս նախագծի համար

  • MSP430G2452 (լրացուցիչ չիպը TI Launchpad G2- ից կամ 4K 20 փին MSP430G շարքի ցանկացած MCU)
  • 170 փողկապ ունեցող մինի տախտակ կամ պերֆ տախտակ նախապես ուժեղացուցիչի համար
  • TLC272 Երկակի op-amp
  • մինի էլեկտրական խոսափող
  • 47k (քաշքշում), 100k, 2 x 10k, 1k դիմադրիչներ
  • 1 x 0.1uF
  • jumper լարերը
  • կրկնակի շարքի արական կապի վերնագիր, որն օգտագործվում է մարտկոցի կրիչի համար
  • 2 x LR44 մետաղադրամ բջջային մարտկոց

Քայլ 2. Պլանի բաղադրիչների դասավորությունը

Նախագիծը պետք է կառուցվի 170 փողկապով մինի տախտակի վրա: Բաղադրիչների դասավորությունը ստորև ներկայացված է: Հատուկ ուշադրության է արժանի այն, որ 8x8 LED մատրիցը պետք է տեղադրվի MSP430 MCU- ի վերևում: Բացի բաղադրիչներից, կան նաև միացնող լարեր, որոնք պատկերված են «+------+» նիշերով:

G V + Gnd (1 փուլի դասավորություն) ՄԵՆՔ ՕԳՏԱԳՈՐՈՄ ԵՆՔ ԱՅՍ ՊԱՏԱՍԽԱՆԸ + ================================== ================== c0 ………… c7 | ՄԻԿ…… + -----++-+…. | r0 o o o o o o o o | o || o + ----- [100k] --------------- +:…. | r1 X o o o o o o o |. +--------------+-+. C7 C6 R1 C0 R3 C5 C3 R0 |. o o o o o o o o |…… |.. | b6 a7 | | c0 և r1 բաժնետոմսերը նույն պինն են և չեն ցուցադրվի | + +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| *հնարավոր է կիրառել c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | սա կազատի b6- ը 32khz xtal ժամացույցի համար | | | TLC272 | | | | | | | դուրս - + G | | |+ a0 a1 a2 a3 a4 a5 b0 b1 b2 | | | + +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| | o || o o o: +-+.. R4 R6 C1 C2 R7 C4 R5 R2 | |…. o- [10k]-o……… | |. o- [1k] o o o:………_. | | o ---- [10k] ----------- o……. o o | +================================================= ====+.1uF 100k 10k ADC կոճակ+ -----------------+

մենք օգտագործում ենք TLC272- ի միայն մեկ փուլ

Քայլ 3: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով

Դուք կարող եք սկսել բաղադրիչների տեղադրումը `հիմնված տախտակի դասավորության վրա: Քանի որ դա ASCII արվեստ է, գուցե այնքան էլ պարզ չէ: Այս քայլի լուսանկարները կարող եք զուգակցել ՝ բոլոր կապերը նույնականացնելու համար:

Պետք է ուշադրություն դարձնել IC չիպերի տեղադրմանը: Սովորաբար անկյուններից մեկում կա մի կետ, որը ցույց է տալիս սարքի 1 -ին կապը:

Ես օգտագործել էի CAT5 ethernet մալուխային լարեր, և դրանք շատ հեշտ է աշխատել տախտակի նախագծերի վրա: Եթե ունեք հին CAT5 մալուխներ, կարող եք այն բացել և կտեսնեք, որ ներսում կա 6 ոլորված լար: Նրանք կատարյալ են գրատախտակների համար:

Քայլ 4: Կազմեք և բեռնեք որոնվածը

Աղբյուրի կոդը սովորաբար գտնվում է իմ github պահոցներում:

Այս կոնկրետ նախագծի համար, մեկ աղբյուր C ֆայլը ՝ nfft.c, միավորված է իմ տախտակի հավաքածուների շտեմարանում: Ձեզ պարզապես անհրաժեշտ է nfft.c

Ես օգտագործում եմ mps430-gcc ՝ որոնվածը կազմելու համար, բայց այն պետք է լավ համադրվի TI CCS- ի հետ: Դուք կարող եք խուսափել IDE- ներ կամ կոմպիլյատորներ տեղադրելու բոլոր դժվարություններից ՝ գնալով TI CCS ամպ, որը վեբ վրա հիմնված IDE է: Այն նույնիսկ ներբեռնելու է որոնվածը ձեր նպատակային սարքին:

Սա կոմպիլյացիայի օրինակ է անջատիչներով

msp430 -gcc -Os -Wall -function -section -fdata -section -fno -inline -small -functions -Wl, -Map = nfft.map, -cref -Wl, --relax -Wl, -gc- բաժիններ -I/energia -0101E0016/սարքավորում/msp430/միջուկներ/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

Ես օգտագործում եմ TI Launchpad G2 որպես ծրագրավորող `MCU- ն ծրագրավորելու համար:

Քայլ 5: Հասկացեք շրջանը

Հասկացեք շրջանը
Հասկացեք շրջանը
Հասկացեք շրջանը
Հասկացեք շրջանը

Շղթայի սխեման ներկայացված է ստորև

MSP430G2452 կամ նմանատիպ, անհրաժեշտ է 4K Flash TLC272 Dual Op-Amp, GBW @1.7Mhz, @x100 շահույթ, թողունակություն մինչև 17Khz

* մենք օգտագործում ենք TLC272- ի միայն մեկ փուլ

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | | | Vcc | | | | քաշքշուկ (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | | | | | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (տես գրատախտակի դասավորությունը) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Գնդ +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | մատրիցա | ((O)) |. | | / | | _ | | ՄԻԿ | | 10k | +-20 | Գնդ / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ _ _ _ /// /// /// ///

LED վարում

LED մատրիցը 8 x 8 տարրերից է: Նրանք վարում են 15 GPIO կապում: Դրանք բազմապատկված են 8 տողերով և 8 սյունակներով: Քանի որ ADC մուտքագրման համար 1 փին օգտագործելուց հետո ընդամենը 15 կապում կա, մուլտիպլեքսավորման մեջ կա 1 տող և 0 սյունակ, որոնք կիսում են մեկ քորոց: Սա նշանակում է, որ 1 -ին և 0 -րդ սյունակի որոշակի LED- ը չի կարող լուսավորված լինել: Սա փոխզիջում է, քանի որ GPIO- ի կապումներն ուղղակի բավարար չեն LED բոլոր տարրերը քշելու համար:

Ձայնի գրավում

Ձայնը գրանցվում է կրթական BoosterPack- ի խտացուցիչ բարձրախոսով: Քանի որ խոսափողի ազդանշանները փոքր են, մենք պետք է այն ուժեղացնենք այնպիսի մակարդակի, որ msp430 ADC10- ը կարող է օգտագործել ողջամիտ լուծաչափով: Այդ նպատակով ես օգտագործել էի երկաստիճան op-amp ուժեղացուցիչ:

Օպերացիոն ուժեղացուցիչը բաղկացած է երկու փուլից, որոնցից յուրաքանչյուրը մոտ 100 անգամ շահույթ է ստանում: Ես ընդունել էի TLC272- ը, քանի որ դա նույնպես շատ տարածված մաս է և աշխատում է 3 Վ լարման դեպքում: Շահույթի թողունակությունը մոտ 1.7 ՄՀց է նշանակում, որ մեր 100x շահույթի համար մենք կարող ենք միայն երաշխավորել, որ այն լավ կաշխատի (այսինքն ՝ կպահպանի մեր ուզած շահույթը) 17 ԿՀց հաճախականությամբ: (1.7 ՄՀց / 100):

Ի սկզբանե ես մտադիր էի այս սպեկտրի անալիզատորը չափել մինչև 16-20 ԿՀց, բայց, ի վերջո, ես գտա, որ մոտ 8 ԿՀց բավականաչափ լավ է երաժշտություն ցուցադրելու համար: Սա կարող է փոխվել `փոխարինելով LM358 w/ աուդիո-գնահատված ինչ-որ բանով և փոխելով ընտրանքի մակարդակը: Պարզապես փնտրեք ձեր ընտրած օպերատորների ուժեղացման թողունակությունը:

Նմուշառում և FFT

Օգտագործված FFT գործառույթը «fix_fft.c» ծածկագիրն է, որը շատ նախագծեր ընդունել էին, այն արդեն մի քանի տարի է, ինչ պտտվում է ինտերնետում: Ես փորձել էի 16 բիթանոց տարբերակ և 8 բիթանոց տարբերակ: Ի վերջո, ես բավարարվեցի 8 բիթանոց տարբերակով, քանի որ իմ նպատակի համար, ես 16 բիթ տարբերակի վրա մեծ առաջընթաց չտեսա:

Ես լավ չեմ հասկանում FFT մեխանիզմը, բացառությամբ, որ դա ժամանակի տիրույթից հաճախականության տիրույթի փոխակերպում է: Դա նշանակում է, որ ձայնային նմուշների արագությունը (ժամանակը), FFT հաշվարկման գործառույթին սնվելուց հետո, կազդի դրա արդյունքում ստացած ամպլիտուդիայի հաճախականության վրա: Այսպիսով, արագությունը հարմարեցնելով ձայնի նմուշին, ես կարող եմ որոշել հաճախականության միջակայքը որպես արդյունք:

TimerA 0 CCR0- ն օգտագործվում է նմուշառման ժամանակը պահելու համար: Սկզբում մենք որոշում ենք այն քանակները, որոնք մեզ պետք են `խմբի հաճախականությանը հասնելու համար (համապատասխանում է մեր DCO ժամաչափի արագությանը` 16 ՄՀց): այսինքն ՝ TA0CCR0- ը սահմանել է (8000/((BAND_FREQ_KHZ*2)))-1; որտեղ BAND_FREQ_KHZ- ն ինձ համար 8 է: Այն կարող է փոխվել, եթե ունեք ավելի լավ op-amp և / կամ ցանկանում եք, որ այն այլ կերպ լինի:

Հաճախականության գոտիներ և ամպլիտուդիայի մասշտաբավորում

Theրագրաշարը մեկ հարվածով մշակում է 16 ժապավեն, և գրավման ժամկետը առաջացնում է 500 Հց տարանջատում այս բանկերի միջև: LED մատրիցը 8 սյունակից է և կցուցադրի միայն 8 գոտի / ամպլիտուդներ: Ամեն երկու գոտիներից մեկը ցուցադրելու փոխարեն օգտագործվում է ոչ գծային հաճախականությունների ցուցակ `ավելի դինամիկ հաճախականությունների գոտիները (երաժշտության առումով) ցուցադրելու համար: Theանկը ներառում է 500 Հց բացվածքներ ցածր վերջում, 1 ԿՀց բացվածքներ միջին գոտիներում և 1.5 ԿՀց գոտիներ `բարձր ծայրերում:

Առանձին գոտիների ամպլիտուդը կրճատվում է մինչև 8 մակարդակ, որոնք ներկայացված են LED մատրիցային էկրանին հորիզոնական «կետերի» թվով: Ամպլիտուդիայի մակարդակները նվազեցվում են ոչ գծային քարտեզի միջոցով, որը FFT- ի արդյունքները թարգմանում է 8-ից մեկը կետեր Օգտագործվում է մի տեսակ լոգարիթմական մասշտաբավորում, քանի որ այն լավագույնս ներկայացնում է ձայնային մակարդակների մեր ընկալումը:

Ներկառուցված է AGC տրամաբանություն, և սպեկտրի անալիզատորը կփորձի նվազեցնել ամպլիտուդի մակարդակը, երբ նախորդ ցիկլերում հայտնաբերված գագաթնակետի մի քանի մակարդակներ կան: Դա արվում է սահող քանոնով, որը համեմատում է սեղանը:

Քայլ 6: Սարքի գործարկում

  • Կարճ ստեղնը ցուցադրման ռեժիմում շրջում է առանց կետի, մեկ կետի, 2 կետի և 3 կետի ցուցադրման միջով:
  • Երկար սեղմումը մտնում է կարգավորման ռեժիմ, հաջորդ երկար սեղմումը պտտվում է մենյուի միջոցով:
  • Uաշացանկի տարրերը ցիկլերով անցնում են 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate':
  • «Hamming Window» կարգաբերման ռեժիմում կարճ սեղմումները շրջում են առանց մուրճի, 1, 2, 3, 3 երկար, երկար սեղմումը հաստատում է կարգավորումը:
  • «Dimmer» կարգաբերման ռեժիմում կարճ սեղմումները պտտվում են 0 -ից մինչև 3 -ը առկա պայծառության մակարդակներով, երկար սեղմումը հաստատում է կարգավորումը:
  • «Նմուշառման / թարմացման արագության» կարգաբերման ռեժիմում կարճ սեղմումները շրջում են թարմացման հասանելի տեմպերով 0 -ից մինչև 7, 0 -ը նշանակում է ոչ մի հետաձգում, երկար սեղմումը հաստատում է կարգավորումը:
  • Led հատվածի մուլտիպլեքսավորումը ներառում է առանձին տողերի պայծառության տարբերությունները փոխհատուցելու ժամանակային ուշացումներ:

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