विषयसूची:

MSP430 ब्रेडबोर्ड ऑडियो स्पेक्ट्रम विश्लेषक: 6 कदम
MSP430 ब्रेडबोर्ड ऑडियो स्पेक्ट्रम विश्लेषक: 6 कदम

वीडियो: MSP430 ब्रेडबोर्ड ऑडियो स्पेक्ट्रम विश्लेषक: 6 कदम

वीडियो: MSP430 ब्रेडबोर्ड ऑडियो स्पेक्ट्रम विश्लेषक: 6 कदम
वीडियो: Debugging using the msp430 EzFet lite 2024, जुलाई
Anonim
Image
Image
MSP430 ब्रेडबोर्ड ऑडियो स्पेक्ट्रम विश्लेषक
MSP430 ब्रेडबोर्ड ऑडियो स्पेक्ट्रम विश्लेषक

यह प्रोजेक्ट माइक्रोफ़ोन आधारित है और इसके लिए न्यूनतम बाहरी घटकों की आवश्यकता होती है। 2 x LR44 सिक्का कोशिकाओं का उपयोग किया जाता है ताकि मेरे पास 170 टाई-पॉइंट मिनी ब्रेडबोर्ड की परिधि में काम करने वाला पूरा ढांचा हो। ADC10, TimerA इंटरप्ट LPM वेक-अप, TimerA PWM जैसे आउटपुट, बटन का उपयोग, पूर्णांक अंकगणित का उपयोग और प्रदर्शन किया जाता है।

विशेषताएं

  • 500Hz पृथक्करण पर 8 बिट पूर्णांक FFT 16 नमूने
  • 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K गैर-रैखिक के 8 आयाम दिखाता है
  • एम्पलीट्यूड दिखाने के लिए आंशिक लघुगणक मानचित्र, 8 बिट एफएफटी के लिए संकल्प को कम कर दिया गया है
  • TLC272 वन स्टेज माइक 100x गुना 100x लाभ पर बढ़ाता है (आप w / 2 चरणों का अनुभव कर सकते हैं)
  • मेनू चयन योग्य वैकल्पिक हैमिंग विंडो
  • मेनू 4 स्तरों की चमक समायोजित करें
  • मेनू 8 स्तर नमूना दर / प्रतिक्रिया समय समायोजित करें
  • 2 x LR44 सिक्का सेल संचालित "बोर्ड पर"

चरण 1: भागों का अधिग्रहण करें

इस परियोजना के लिए निम्नलिखित की आवश्यकता है:

  • MSP430G2452 (TI लॉन्चपैड G2 से अतिरिक्त चिप, या कोई भी 4K 20 पिन MSP430G श्रृंखला MCU)
  • प्री-एम्प कंस्ट्रक्शन के लिए 170 टाई-पॉइंट मिनी ब्रेडबोर्ड या परफेक्ट बोर्ड
  • TLC272 दोहरी सेशन-amp
  • मिनी इलेक्ट्रेट माइक्रोफोन
  • 47k (पुल-अप), 100k, 2 x 10k, 1k प्रतिरोधक
  • 1 एक्स 0.1uF
  • जम्पर तार
  • बैटरी धारक के लिए उपयोग की जाने वाली डबल पंक्ति पुरुष पिन हेडर
  • 2 x LR44 सिक्का सेल बैटरी

चरण 2: योजना घटक लेआउट

परियोजना को 170 टाई-पॉइंट मिनी ब्रेडबोर्ड पर बनाया जाना है। घटकों का लेआउट नीचे दिखाया गया है। खास बात यह है कि 8x8 एलईडी मैट्रिक्स को एमएसपी430 एमसीयू के ऊपर रखा जाना है। घटकों के अलावा, "+----------+" वर्णों द्वारा दर्शाए गए कनेक्टिंग जम्पर तार भी हैं।

G V+ Gnd (1 चरण लेआउट) हम इस लेआउट का उपयोग कर रहे हैं +============================= =================+ c0…………c7 | एमआईसी।…… +-----+ +--+।… | r0 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 |. ओ ओ ओ ओ ओ ओ ओ ओ |…… |.. | b6 a7 | | c0 और r1 समान पिन साझा करते हैं और नहीं दिखाएंगे | +। +--+--+--+ | +--+--+--+--+--+--+--+--+--+ | *c6 + c0 + r1 के लिए संभावित आवेदन | | |वी+ | | |जी बी६ बी७ टी आर ए७ ए६ बी५ बी४ बी३| | यह 32khz xtal घड़ी के लिए b6 को मुक्त कर देगा | | | टीएलसी२७२ | | | | | | | आउट - + जी| | |+ a0 a1 a2 a3 a4 a5 b0 b1 b2| | | +। +--+--+--+ | +--+--+--+--+--+--+--+--+--+ | | ओ || ओ ओ ओ। +--+।. R4 R6 C1 C2 R7 C4 R5 R2 | |…. ओ- [१०के]--ओ।…….. | |. ओ- [१ के] ओ ओ ओ।………_। | | ओ -------- [10k] ----------- ओ।…… ओ ओ | +============================================ ====+.1uF 100k 10k एडीसी बटन +---------------------+

हम केवल TLC272 के एक चरण का उपयोग कर रहे हैं

चरण 3: विधानसभा

सभा
सभा
सभा
सभा

आप ब्रेडबोर्ड लेआउट के आधार पर घटकों को रखना शुरू कर सकते हैं। चूंकि यह ASCII कला है इसलिए यह बहुत स्पष्ट नहीं हो सकता है। आप सभी कनेक्शनों की पहचान करने के लिए इस चरण में w / तस्वीरें जोड़ सकते हैं।

आईसी चिप्स की स्थिति में सावधानी बरती जानी चाहिए। डिवाइस के पिन 1 को इंगित करने के लिए आमतौर पर एक कोने पर एक बिंदु होता है।

मैंने CAT5 ईथरनेट केबल तारों का उपयोग किया था और वे ब्रेडबोर्ड परियोजनाओं पर काम करना बहुत आसान हैं। यदि आपके पास पुराने CAT5 केबल हैं, तो आप इसे खोलकर काट सकते हैं और आप पाएंगे कि अंदर 6 मुड़े हुए तार हैं। वे ब्रेडबोर्ड के लिए एकदम सही हैं।

चरण 4: फर्मवेयर संकलित करें और लोड करें

स्रोत कोड आमतौर पर मेरे जीथब रिपॉजिटरी पर रहता है।

इस विशेष परियोजना के लिए, एकल सी स्रोत फ़ाइल nfft.c को मेरे ब्रेडबोर्ड संग्रह भंडार में बंडल किया गया है। आपको बस nfft.c. की जरूरत है

मैं फर्मवेयर को संकलित करने के लिए mps430-gcc का उपयोग कर रहा हूं लेकिन इसे TI CCS के साथ अच्छी तरह से चलना चाहिए। आप TI CCS क्लाउड, जो कि एक वेब आधारित IDE है, पर जाकर IDE या कंपाइलर स्थापित करने की सभी परेशानी से बच सकते हैं। यह फर्मवेयर को आपके लक्षित डिवाइस पर भी डाउनलोड करेगा।

यह एक उदाहरण है कंपाइल कमांड w/स्विच

msp430--gcc-Os-Wall-ffunction-sections-fdata-sections-fno-inline-small-functions-Wl, -Map=nfft.map, --cref-Wl, --relax -Wl, --gc- अनुभाग -I/ऊर्जा-0101E0016/हार्डवेयर/msp430/कोर/msp430 -mmcu=msp430g2553 -o nfft.elf nfft.c

मैं MCU को प्रोग्राम करने के लिए एक प्रोग्रामर के रूप में TI लॉन्चपैड G2 का उपयोग कर रहा हूं।

चरण 5: सर्किट को समझें

सर्किट को समझें
सर्किट को समझें
सर्किट को समझें
सर्किट को समझें

सर्किट योजनाबद्ध नीचे प्रस्तुत किया गया है

MSP430G2452 या इसी तरह के, 4K फ्लैश TLC272 डुअल Op-Amp, GBW @ 1.7Mhz, @ x100 गेन, 17Khz तक बैंडविड्थ की आवश्यकता है

* हम केवल TLC272 के एक चरण का उपयोग कर रहे हैं

._.

| एमएसपी४३०जी२४५२ | वीसीसी | | | +---------------------------2|ADC0 |1--+ | | | |. | वीसीसी | | | | पुल-अप (47k) Vcc Vcc | --------------- | | | |_| | | +-1|----. वीसीसी|8-+ | | | |. |. |. | ^.---|7 | |16-+ | |10k | |10k | | | / / ^ | | | |_| |_| 100k|_| | /_+\ / / | | /|--- (ब्रेडबोर्ड लेआउट देखें) |.1u | | | | | /_+\ | | / |------_ +--||---|-[1k]--+-2|---+ | | | | | 15 जीपीआईओ | | | | +----------3|-----+ +-|--|6 | पी१.१-पी१.७| | 8x8 | | | +-4|गंद +--|5 | पी२.०-पी२.७| | एलईडी | |+ | | --------------- | | | मैट्रिक्स| ((ओ)) |. | | / | |_| |एमआईसी | |10k | +-20|गंद \|-------- | |_| | | |_| _|_ _|_ _|_ _|_ /// /// /// ///

एलईडी ड्राइविंग

एलईडी मैट्रिक्स 8 x 8 तत्वों का है। वे 15 GPIO पिन द्वारा संचालित होते हैं। वे बहुसंकेतन w / 8 पंक्तियाँ और 8 स्तंभ योजना हैं। चूंकि एडीसी इनपुट के लिए 1 पिन का उपयोग करने के बाद केवल 15 पिन होते हैं, मल्टीप्लेक्सिंग में पंक्ति 1 और कॉलम 0 एकल पिन साझा करते हैं। इसका मतलब है कि पंक्ति 1 और कॉलम 0 पर विशेष एलईडी नहीं जलाई जा सकती। यह एक समझौता है क्योंकि सभी एलईडी तत्वों को चलाने के लिए पर्याप्त GPIO पिन नहीं हैं।

ध्वनि कैप्चर

शैक्षिक बूस्टरपैक पर ऑन बोर्ड कंडेनसर माइक्रोफोन के माध्यम से ध्वनि कैप्चर की जाती है। चूंकि माइक्रोफ़ोन सिग्नल छोटे होते हैं, इसलिए हमें इसे इस स्तर तक बढ़ाना होगा कि msp430 ADC10 w/एक उचित रिज़ॉल्यूशन का उपयोग कर सके। मैंने इस उद्देश्य के लिए दो-चरण ऑप-एम्पी एम्पलीफायर का उपयोग किया था।

op-amp एम्पलीफायर दो चरणों से मिलकर बनता है, प्रत्येक w/a लगभग १००x लाभ। मैंने TLC272 को अपनाया था क्योंकि यह भी एक बहुत ही सामान्य हिस्सा है और यह w / 3V काम करता है। गेन बैंडविड्थ लगभग 1.7 मेगाहर्ट्ज होने का मतलब है कि 100x के हमारे लाभ के लिए, हम केवल गारंटी दे सकते हैं कि यह 17 किलोहर्ट्ज़ के तहत अच्छी तरह से काम करेगा (यानी हम जो लाभ चाहते हैं उसे बनाए रखें)। (1.7 मेगाहर्ट्ज / 100)।

मूल रूप से मैं इस स्पेक्ट्रम विश्लेषक को 16-20 किलोहर्ट्ज़ तक मापने का इरादा रखता हूं, लेकिन अंत में मैंने पाया कि लगभग 8 किलोहर्ट्ज़ संगीत दिखाने के लिए पर्याप्त है। इसे LM358 w/ऑडियो-रेटेड के कुछ और नमूना दर को बदलकर बदला जा सकता है। बस आपके द्वारा चुने गए op-amps के लाभ बैंडविड्थ की तलाश करें।

नमूनाकरण और एफएफटी

इस्तेमाल किया गया एफएफटी फ़ंक्शन "fix_fft.c" कोड है जिसे कई परियोजनाओं ने अपनाया था, यह कुछ वर्षों से इंटरनेट में तैर रहा है। मैंने 16 बिट संस्करण और 8 बिट संस्करण की कोशिश की थी। आखिरकार मैं अपने उद्देश्य के लिए 8 बिट संस्करण के लिए बस गया, मैंने 16 बिट संस्करण पर एक बड़ी प्रगति नहीं देखी।

मुझे एफएफटी तंत्र की अच्छी समझ नहीं है सिवाय इसके कि यह आवृत्ति डोमेन रूपांतरण के लिए एक समय डोमेन है। इसका मतलब है कि ध्वनि के नमूनों की दर (समय), एफएफटी गणना समारोह को खिलाने के बाद, परिणाम के रूप में मुझे मिलने वाले आयाम की आवृत्ति को प्रभावित करेगा। तो नमूना ध्वनि की दर को समायोजित करके, मैं परिणाम के रूप में आवृत्ति बैंड निर्धारित कर सकता हूं।

TimerA 0 CCR0 का उपयोग सैंपलिंग के समय को बनाए रखने के लिए किया जाता है। हम पहले बैंड फ़्रीक्वेंसी प्राप्त करने के लिए आवश्यक काउंट निर्धारित करते हैं (हमारे 16Mhz की DCO क्लॉक रेट के अनुरूप)। यानी TA0CCR0 (8000/(BAND_FREQ_KHZ*2))-1 पर सेट; जहां मेरे लिए BAND_FREQ_KHZ 8 है। इसे बदला जा सकता है यदि आपके पास एक बेहतर ऑप-एम्प है और/या यह अलग होना चाहता है।

फ़्रिक्वेंसी बैंड और आयाम स्केलिंग

फ़र्मवेयर एक बार में 16 बैंड प्रोसेस करता है, और कैप्चर टाइमिंग इन बैंकों के बीच 500Hz अलगाव पैदा करता है। एलईडी मैट्रिक्स 8 कॉलम का है और केवल 8 बैंड/एम्पलीट्यूड प्रदर्शित करेगा। हर दो बैंड में एक प्रदर्शित करने के बजाय, एक गैर-रैखिक आवृत्ति बैंड सूची का उपयोग अधिक गतिशील आवृत्ति बैंड (संगीत के संदर्भ में) दिखाने के लिए किया जाता है। सूची निचले सिरे पर 500Hz अंतराल, मध्य बैंड में 1KHz अंतराल और उच्च में 1.5Khz बैंड की है।

अलग-अलग बैंड के आयाम को 8 स्तरों तक बढ़ाया जाता है, जो कि एलईडी मैट्रिक्स डिस्प्ले पर क्षैतिज 'डॉट्स' की संख्या द्वारा दर्शाया जाता है। आयाम स्तरों को एक गैर-रेखीय मानचित्र के माध्यम से कम किया जाता है जो एफएफटी परिणामों को 8 में से एक में अनुवाद करता है। बिंदु एक प्रकार का लघुगणकीय स्केलिंग का उपयोग किया जाता है क्योंकि यह ध्वनि स्तरों की हमारी धारणा का सबसे अच्छा प्रतिनिधित्व करता है।

अंतर्निहित एजीसी तर्क है और स्पेक्ट्रम विश्लेषक पिछले चक्रों में कई शिखर स्तरों का पता चलने पर आयाम स्तरों को कम करने का प्रयास करेगा। यह एक स्लाइडिंग शासक की तुलना तालिका के साथ किया जाता है।

चरण 6: डिवाइस का संचालन

  • बिना किसी बिंदु, एक बिंदु, 2 बिंदुओं और 3 बिंदुओं के प्रदर्शन के माध्यम से प्रदर्शन मोड चक्र में लघु कुंजी प्रेस।
  • लॉन्ग प्रेस सेटअप मोड में प्रवेश करता है, बाद में लॉन्ग प्रेस मेन्यू के माध्यम से घूमता है।
  • मेनू आइटम 'हैमिंग विंडो ऑप्शन', 'डिमर', 'सैंपलिंग / रिफ्रेश रेट' के माध्यम से साइकिल चलाते हैं।
  • 'हैमिंग विंडो' सेटअप मोड में, बिना हैमिंग के शॉर्ट प्रेस साइकल, हैमिंग 1, हैमिंग 2, हैमिंग 3, लॉन्ग प्रेस सेटिंग की पुष्टि करता है।
  • 'डिमर' सेटअप मोड में, 0 से 3 तक उपलब्ध चमक स्तरों के माध्यम से छोटे प्रेस चक्र, लंबे समय तक प्रेस सेटिंग की पुष्टि करता है।
  • 'नमूनाकरण/ताज़ा दर' सेटअप मोड में, 0 से 7, 0 तक उपलब्ध ताज़ा दरों के माध्यम से लघु प्रेस चक्र का अर्थ है कोई देरी नहीं, लंबी प्रेस सेटिंग की पुष्टि करती है।
  • एलईडी सेगमेंट मल्टीप्लेक्सिंग में अलग-अलग पंक्तियों के लिए चमक अंतर की भरपाई के लिए समय की देरी शामिल है।

सिफारिश की: