Բովանդակություն:
- Քայլ 1: Ձեռք բերեք մասեր
- Քայլ 2. Պլանի բաղադրիչների դասավորությունը
- Քայլ 3: Հավաքում
- Քայլ 4: Կազմեք և բեռնեք որոնվածը
- Քայլ 5: Հասկացեք շրջանը
- Քայլ 6: Սարքի գործարկում
Video: MSP430 Breadboard Audio Spectrum Analyzer: 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Այս նախագիծը հիմնված է խոսափողի վրա և պահանջում է նվազագույն արտաքին բաղադրիչներ: 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 հատվածի մուլտիպլեքսավորումը ներառում է առանձին տողերի պայծառության տարբերությունները փոխհատուցելու ժամանակային ուշացումներ:
Խորհուրդ ենք տալիս:
CRAZY L.O.L SPECTRUM ANALYZER: 6 քայլ (նկարներով)
CRAZY L.O.L SPECTRUM ANALYZER. Այսօր ես կցանկանայի կիսվել, թե ինչպես պատրաստել աուդիո սպեկտրի անալիզատոր `36 խումբ` 4 LoL Shields- ը միասին համատեղելով: Այս խենթ նախագիծը օգտագործում է FFT գրադարան ՝ ստերեո աուդիո ազդանշանը վերլուծելու, այն հաճախականությունների գոտիների փոխարկելու և այս հաճախությունների ամպլիտուդը ցուցադրելու համար
Վերջնական վիճակի մեքենա MSP430- ի վրա. 6 քայլ
Վերջնական վիճակի մեքենա MSP430- ի վրա. Ես ձեզ ցույց կտամ, թե ինչպես ծրագրավորել MSP430G2 գործարկման սկավառակը վերջնական վիճակի մեքենաներով (FSM) ՝ օգտագործելով YAKINDU Statechart Tools- ը անմիջապես Texas Instruments Code Composer Studio- ում: Այս ձեռնարկը պարունակում է վեց քայլ. YAKINDU Statechart Tools- ի տեղադրում որպես
MSP430 վայրկյանների հաշվիչ ՝ 10 քայլ
MSP430 վայրկյանների հաշվիչ. Բարի գալուստ: Վայրկյանների հաշվիչի պատրաստում. Նախագծի համար օգտագործելով CCStudio 8 և MSP430F5529: C լեզու `միկրո վերահսկիչը կոդավորելու համար: Lowածր էներգիայի ռեժիմների, ժամաչափերի և ընդհատումների կիրառում: Արդյունքը ցուցադրվում է 7 հատվածի միջոցով
LoL Shield Audio Spectrum VU մետր. 4 քայլ (նկարներով)
LoL Shield Audio Spectrum VU հաշվիչ. Սա աուդիո սպեկտրի VU հաշվիչ է, որն օգտագործում է LoL Shield- ը Arduino- ի համար: LoL Shield- ը 14 x 9 LED մատրից է, որը տեղավորվում է Arduino- ի վրա որպես վահան և կառավարվում է արդյունավետ մեթոդով, որը հայտնի է որպես Charlieplexing: Այն նախագծվել է Jimիմի Պ
MSP430 DIP ծրագրավորում `օգտագործելով Ez430: 4 քայլ
MSP430 DIP- ի ծրագրավորում Ez430- ի միջոցով. Երբ գտա TI- ի ez430 USB ծրագրավորողը, այն կարծես MCU- ով վեր կենալու և աշխատելու ավելի հեշտ մեթոդներից մեկն էր: Ինչպե՞ս կարող եմ սխալվել, դրա մեջ ez կա: Պարզվում է, որ դա իրականում հեշտ է … հիմնականում: ez430- ը հիանալի է, եթե ցանկանում եք