Talaan ng mga Nilalaman:

MSP430 Breadboard Audio Spectrum Analyzer: 6 na Hakbang
MSP430 Breadboard Audio Spectrum Analyzer: 6 na Hakbang

Video: MSP430 Breadboard Audio Spectrum Analyzer: 6 na Hakbang

Video: MSP430 Breadboard Audio Spectrum Analyzer: 6 na Hakbang
Video: MSP430 Audio Spectra Analyzer 2024, Disyembre
Anonim
Image
Image
MSP430 Breadboard Audio Spectrum Analyzer
MSP430 Breadboard Audio Spectrum Analyzer

Ang proyektong ito ay batay sa mikropono at nangangailangan ng kaunting panlabas na mga bahagi. Ginagamit ang 2 x LR44 na mga cell ng barya upang magkaroon ako ng buong istraktura na gumagana sa mga limitasyon ng isang 170 na tie-point mini breadboard. Ang ADC10, TimerA ay nakakagambala sa paggising ng LPM, ang TimerA PWM tulad ng output, paggamit ng pindutan, integer arithmetic ay ginagamit at ipinakita.

Mga Tampok

  • 8 bit integer FFT 16 na mga sample sa 500Hz na paghihiwalay
  • nagpapakita ng 8 amplitude ng 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K non-linear
  • bahagyang mapa ng logarithm upang maipakita ang mga amplitude, limitado dahil ang resolusyon ay nabawasan para sa 8 bit FFT
  • TLC272 isang yugto mic amplifys sa 100x beses 100x makakuha (maaari kang makaranas ng w / 2 yugto)
  • mapipiling menu na opsyonal na window ng Hamming
  • ayusin ang menu ng 4 na antas ng ningning
  • ayusin ng menu ang 8 mga antas ng sample na rate / oras ng pagtugon
  • 2 x LR44 coin cell na pinapatakbo "on board"

Hakbang 1: Kumuha ng Mga Bahagi

Ang mga sumusunod ay kung ano ang kinakailangan para sa proyektong ito

  • MSP430G2452 (ang sobrang chip mula sa TI Launchpad G2, o anumang 4K 20 pin MSP430G series MCU)
  • isang 170 tie-point mini breadboard o perf board para sa pre-amp na konstruksyon
  • TLC272 Dual op-amp
  • mini electret microphone
  • 47k (pull-up), 100k, 2 x 10k, 1k resistors
  • 1 x 0.1uF
  • jumper wires
  • double row male pin header na gagamitin para sa may hawak ng baterya
  • 2 x LR44 coin cell na baterya

Hakbang 2: Layout ng Mga Bahagi ng Plano

Ang proyekto ay itatayo sa isang 170 tie-point mini breadboard. Ang layout ng mga bahagi ay tulad ng ipinakita sa ibaba. Ang espesyal na tala ay ang 8x8 LED matrix na ilalagay sa tuktok ng MSP430 MCU. Bukod sa mga bahagi, mayroon ding mga kumokonekta na mga jumper wires na inilalarawan ng mga character na "+ ------ +".

G V + Gnd (1 yugto ng layout) GAMITIN NAMIN ANG LAYOUT ITO + ==================================== ================= + c0 ………… c7 | MIC……. + ----- + + - +…. | r0 o o o o o o o | o || o + ----- [100k] ---------------- |…. | r1 X o o o o o o |. + ---------------- + - +. C7 C6 R1 C0 R3 C5 C3 R0 |. o o o o o o o |…… |.. | b6 a7 | | Ang c0 at r1 ay nagbabahagi ng parehong pin at hindi ipapakita | + + - + - + - + | + - + - + - + - + - + - + - + - + - + | * posibleng aplikasyon upang magkaroon ng c6 + c0 + r1 | | | V + | | | G b6 b7 T R a7 a6 b5 b4 b3 | | magpapalaya ito ng b6 para sa 32khz xtal na orasan | | | TLC272 | | | | | | | palabas - + 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 Button + ----------------- +

gumagamit kami ng isang yugto ng TLC272 lamang

Hakbang 3: Assembly

Assembly
Assembly
Assembly
Assembly

Maaari mong simulan ang paglalagay ng mga bahagi batay sa layout ng breadboard. Tulad ng sining ng ASCII kaya maaaring hindi gaanong malinaw. Maaari mong ipares ang w / ng mga larawan sa hakbang na ito upang makilala ang lahat ng mga koneksyon.

Dapat mag-ingat upang mailagay ang mga IC chip. Karaniwan may isang tuldok sa isa sa mga sulok upang ipahiwatig ang pin 1 ng isang aparato.

Gumamit ako ng CAT5 ethernet cable wires at napakadali nilang magtrabaho sa mga proyekto sa breadboard. Kung mayroon kang mga lumang CAT5 cable, maaari mo itong i-cut nang bukas at mahahanap mong mayroong 6 baluktot na mga wire sa loob. Perpekto ang mga ito para sa mga breadboard.

Hakbang 4: Magtipon at Mag-load ng Firmware

Ang source code ay karaniwang naninirahan sa aking mga repository ng github.

Para sa partikular na proyekto, ang solong C source file na nfft.c ay na-bundle sa aking repository ng mga koleksyon ng breadboard. Kailangan mo lang ng nfft.c

Gumagamit ako ng mps430-gcc upang maipon ang firmware ngunit dapat itong maging maayos sa TI CCS. Maaari mong maiwasan ang lahat ng mga problema sa pag-install ng mga IDE o compiler sa pamamagitan ng pagpunta sa TI CCS cloud, na isang web based IDE. Ito ay mag-download din ng firmware sa iyong target na aparato.

Ito ay isang halimbawa ng compile ng command w / switch

msp430 - gcc -Os -Wall -ffunction-seksyon -fdata-seksyon -fno-inline-maliit na-function -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- mga seksyon -ako / energia-0101E0016 / hardware / msp430 / core / msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

Gumagamit ako ng isang TI Launchpad G2 bilang isang programmer upang mai-program ang MCU.

Hakbang 5: Maunawaan ang Circuit

Maunawaan ang Circuit
Maunawaan ang Circuit
Maunawaan ang Circuit
Maunawaan ang Circuit

Ang circuit scheme ay ipinakita sa ibaba

MSP430G2452 o katulad, kailangan ng 4K Flash TLC272 Dual Op-Amp, GBW @ 1.7Mhz, @ x100 makakuha, bandwidth hanggang sa 17Khz

* Gumagamit kami ng isang yugto ng TLC272 lamang

._.

| MSP430G2452 | Vcc | | | + ----------------- 2 | ADC0 | 1 - + | | | | | Vcc | | | | pull-up (47k) Vcc Vcc | ------------- | | | | _ | | | + -1 | ----. Vcc | 8- + | | | | | | | ^.--- | 7 | | 16- + | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _ + / / / | | / | --- (tingnan ang layout ng breadboard) |.1u | | | | | / _ + / | | / | ------_ + - || --- | - [1k] - + - 2 | --- + | | | | | 15 GPIO | | | | + ---------- 3 | ----- + + - | - | 6 | P1.1-P1.7 | | 8x8 | | | + -4 | Gnd + - | 5 | P2.0-P2.7 | | LED | | + | | ------------- | | | matrix | ((O)) |. | | / | | _ | | MIC | | 10k | + -20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///

LED Pagmamaneho

Ang LED matrix ay may 8 x 8 na mga elemento. Ang mga ito ay hinihimok ng 15 GPIO pin. Ang mga ito ay multiplexed w / 8 mga hilera at 8 scheme ng haligi. Dahil mayroon lamang 15 mga pin pagkatapos naming gumamit ng 1 pin para sa ADC input, ang multiplexing ay may row 1 at haligi 0 na nagbabahagi ng isang solong pin. Nangangahulugan ito na ang partikular na LED sa hilera 1 at haligi 0 ay hindi maaaring naiilawan. Ito ay isang kompromiso dahil may mga hindi sapat na mga GPIO pin upang himukin ang lahat ng mga elemento ng LED.

Sound Capture

Ang tunog ay nakukuha sa pamamagitan ng on board condenser microphone sa Educational BoosterPack. Dahil ang mga signal ng mikropono ay maliit, kailangan naming palakihin ito sa isang antas na maaaring magamit ng msp430 ADC10 na may makatwirang resolusyon. Gumamit ako ng dalawang yugto na op-amp amplifier para sa hangaring ito.

Ang op-amp amplifier ay binubuo ng dalawang yugto, bawat w / a tungkol sa 100x na nakuha. Pinagtibay ko ang TLC272 dahil ito rin ay isang pangkaraniwang bahagi at gumagana ito w / 3V. Ang makakuha ng bandwidth na halos 1.7Mhz ay nangangahulugang para sa aming nakuha na 100x, masisiguro lamang namin na gagana ito nang maayos (ibig sabihin, mapanatili ang nais na nakuha) sa ilalim ng 17Khz. (1.7Mhz / 100).

Orihinal na balak kong gawin ang spectrum analyzer na ito na magsukat hanggang sa 16-20Khz, ngunit sa huli natagpuan ko ang tungkol sa 8Khz ay sapat na upang magpakita ng musika. Maaari itong mabago sa pamamagitan ng pagpapalit ng LM358 w / isang bagay na na-rate ng audio at binabago ang rate ng pag-sample. Hanapin lamang ang makakuha ng bandwidth ng mga op-amp na pinili mo.

Sampling at FFT

Ang ginamit na FFT function ay ang "fix_fft.c" code na pinagtibay ng maraming mga proyekto, lumulutang ito sa internet ng ilang taon. Sinubukan ko ang isang 16 bit na bersyon at isang 8 bit na bersyon. Sa paglaon ay naayos ko ang 8 bit na bersyon para sa aking hangarin, hindi ko nakita ang isang pangunahing pagsulong sa 16 bit na bersyon.

Wala akong mahusay na pag-unawa sa mekanismo ng FFT maliban na ito ay isang time domain sa dalas ng conversion ng domain. Nangangahulugan iyon na ang rate (oras) ng mga sample ng tunog, pagkatapos ng pagpapakain sa pagpapaandar ng FFT pagkalkula, ay makakaapekto sa dalas ng amplitude na nakukuha ko bilang isang resulta. Kaya sa pamamagitan ng pag-aayos ng rate sa sample ng tunog, matutukoy ko ang frequency band bilang resulta.

Ginagamit ang TimerA 0 CCR0 upang mapanatili ang oras ng pag-sample. Una naming natutukoy ang mga bilang na kailangan namin upang makamit ang dalas ng banda (tumutugma sa aming rate ng orasan ng DCO na 16Mhz). ibig sabihin, ang TA0CCR0 ay nakatakda sa (8000 / (BAND_FREQ_KHZ * 2)) - 1; kung saan ang BAND_FREQ_KHZ ay 8 para sa akin. Maaari itong mabago kung nakakuha ka ng isang mas mahusay na op-amp at / o nais na magkakaiba ito.

Mga Frequency Bands at Amplitude Scaling

Pinoproseso ng firmware ang 16 na banda sa isang sweep, at ang oras ng pagkuha ay gumagawa ng paghihiwalay na 500Hz sa pagitan ng mga bangko na ito. Ang LED matrix ay nasa 8 mga haligi at ipapakita lamang ang 8 mga banda / amplitude. Sa halip na ipakita ang bawat isa sa dalawang banda, ang isang hindi linear na listahan ng dalas ng banda ay ginagamit upang maipakita ang mas maraming lakas na mga banda ng dalas (sa mga tuntunin ng musika). Ang listahan ay 500Hz gaps sa low end, 1KHz gaps sa gitnang banda at 1.5Khz band sa highs.

Ang amplitude ng mga indibidwal na banda ay na-scale pababa sa 8 mga antas, na kinakatawan ng bilang ng mga pahalang na 'tuldok' sa display ng LED matrix. Ang mga antas ng amplitude ay na-scale down sa pamamagitan ng isang hindi-linear na mapa na isinalin ang mga resulta ng FFT sa isa sa 8 tuldok Ginagamit ang isang uri ng logarithmic scaling bilang pinakamahusay na kumakatawan sa aming pang-unawa sa mga antas ng tunog.

Mayroong built-in na lohika ng AGC at susubukan ng spectrum analyzer na sukatin ang mga antas ng amplitude kapag maraming mga antas ng rurok ang nakita sa mga nakaraang pag-ikot. Ginagawa ito sa isang sliding ruler na paghahambing ng talahanayan.

Hakbang 6: Pagpapatakbo ng Device

  • Maikling pindutin ang key sa mode ng display mode sa pamamagitan ng walang tuldok, isang tuldok, 2 tuldok, at 3 tuldok na ipinapakita.
  • Ang mahabang pindutin ay pumasok sa mode ng pag-setup, kasunod na mahabang pindutin ang umiikot sa pamamagitan ng menu.
  • Ang mga item sa menu ay umiikot sa 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate'.
  • Sa mode na pag-setup ng 'Hamming Window', ang mga maikling pagpindot sa pag-ikot sa pamamagitan ng walang hamming, hamming 1, hamming 2, hamming 3, matagal na pinindot ay kinukumpirma ng setting.
  • Sa mode na 'Dimmer' na pag-setup, ang mga maikling pagpindot sa pag-ikot sa pamamagitan ng magagamit na mga antas ng ningning mula 0 hanggang 3, matagal na pinatutunayan ng setting ng matagal na pindutin.
  • Sa mode ng pag-setup ng 'Sampling / Refresh rate', ang mga maikling pagpindot sa mga pag-ikot sa pamamagitan ng mga magagamit na mga rate ng pag-refresh mula 0 hanggang 7, 0 ay nangangahulugang walang pagkaantala, matagal na pinatutunayan ng setting ng pagpindot.
  • Ang led segment multiplexing ay may kasamang mga pagkaantala ng oras upang mabayaran ang mga pagkakaiba sa liwanag para sa mga indibidwal na hilera.

Inirerekumendang: