Sisukord:

MSP430 Breadboardi helispektri analüsaator: 6 sammu
MSP430 Breadboardi helispektri analüsaator: 6 sammu

Video: MSP430 Breadboardi helispektri analüsaator: 6 sammu

Video: MSP430 Breadboardi helispektri analüsaator: 6 sammu
Video: Morse Code with the MSP430 2024, November
Anonim
Image
Image
MSP430 Breadboardi helispektri analüsaator
MSP430 Breadboardi helispektri analüsaator

See projekt põhineb mikrofonil ja nõuab minimaalseid väliseid komponente. Kasutatakse 2 x LR44 mündielementi, et saaksin kogu struktuuri töötada 170 lipsupunktiga mini-leivaplaadi piires. Kasutatakse ja demonstreeritakse ADC10, TimerA katkestus LPM-i äratust, TimerA PWM nagu väljund, nuppude kasutamine, täisarvuline aritmeetika.

Funktsioonid

  • 8 -bitised täisarvulised FFT 16 proovid 500 Hz lahus
  • näitab 8 amplituudi 1K, 1,5K, 2K, 3K, 4K, 5K, 6K, 7,5K mittelineaarset
  • osaline logaritmikaart amplituudide kuvamiseks, piiratud, kuna eraldusvõime on 8 -bitise FFT puhul vähenenud
  • TLC272 üheastmeline mikrofonvõimendus 100x korda 100x võimendusega (saate kogeda 2 astet)
  • menüüst valikuline Hammingi aken
  • menüü reguleerib 4 heledustaset
  • menüü reguleerib 8 taset proovivõtu sagedust / reageerimisaega
  • 2 x LR44 mündiraku toitega "pardal"

Samm: hankige osi

Selle projekti jaoks on vaja järgmist

  • MSP430G2452 (lisakiip TI Launchpad G2 või mis tahes 4K 20 -pin MSP430G seeria MCU)
  • 170 kinnituspunktiga mini leivalaud või perf-plaat eelvõimendi ehitamiseks
  • TLC272 Dual op-amp
  • mini elektreetmikrofon
  • 47k (tõmbejõud), 100k, 2 x 10k, 1k takistid
  • 1 x 0,1 uF
  • hüppaja juhtmed
  • kaherealine isane tihvtpea, mida kasutatakse akuhoidiku jaoks
  • 2 x LR44 mündipatarei

2. samm: plaanige komponentide paigutus

Projekt tuleb ehitada 170 lipsupunktiga minileivale. Komponentide paigutus on järgmine. Eraldi väärib märkimist, et 8x8 LED -maatriks tuleb paigutada MSP430 MCU peale. Lisaks komponentidele on ka ühendavaid džemprijuhtmeid, mis on kujutatud tähemärkidega "+------+".

G V + Gnd (1 -astmeline paigutus) KASUTAME SEDA LÄBIVAATAMIST + ==================================== =================+ 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 | | c0 ja r1 jagavad sama tihvti ja neid ei kuvata | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+| *võimalik rakendus c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | see vabastab 32 kHz xtal kella jaoks b6 | | TLC272 | | | | | | | välja - + 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 nupp+ -----------------+

me kasutame ainult ühte TLC272 etappi

3. samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek

Saate alustada komponentide paigutamist leivaplaadi paigutuse alusel. Kuna see on ASCII kunst, ei pruugi see olla väga selge. Selles etapis saate fotodega siduda, et tuvastada kõik ühendused.

IC -kiipide paigutamisel tuleb olla ettevaatlik. Tavaliselt on ühel nurgal punkt, mis näitab seadme tihvti 1.

Olin kasutanud CAT5 Etherneti kaabli juhtmeid ja neid on leivaplaadi projektidega väga lihtne töötada. Kui teil on vanad CAT5 kaablid, saate selle lahti lõigata ja leiate, et sees on 6 keerutatud juhtmest. Need sobivad ideaalselt leivalaudade jaoks.

Samm: püsivara koostamine ja laadimine

Lähtekood asub tavaliselt minu githubi hoidlates.

Selle konkreetse projekti jaoks on üks C -lähtefail nfft.c minu leivalaua kogude hoidlasse komplekteeritud. Teil on vaja lihtsalt nfft.c

Ma kasutan püsivara kompileerimiseks mps430-gcc, kuid see peaks TI CCS-iga hästi sobima. Saate vältida kõiki IDE -de või kompilaatorite installimisega seotud probleeme, minnes veebipõhisele IDE -le TI CCS cloud. See laadib isegi püsivara alla teie sihtseadmesse.

See on näide kompileerimiskäsust koos lülititega

msp430 -gcc -Os -Seina -funktsiooniosad -fdata -lõigud -fno -inline -väikesed funktsioonid -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- sektsioonid -I/energia -0101E0016/hardware/msp430/core/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

Kasutan MCU programmeerimiseks TI Launchpad G2 programmeerijana.

Samm: mõistke ahelat

Mõistke ahelat
Mõistke ahelat
Mõista ahelat
Mõista ahelat

Lülitusskeem on esitatud allpool

MSP430G2452 või sarnane, vajab 4K Flash TLC272 Dual op-Amp, GBW @1,7Mhz, @x100 võimendust, ribalaiust kuni 17Khz

* me kasutame ainult ühte TLC272 etappi

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | pull-up (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100 000 | _ | | / _+\ / / | | /| --- (vt leivalaua paigutust) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | maatriks | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///

LED juhtimine

LED -maatriks koosneb 8 x 8 elemendist. Neid juhib 15 GPIO tihvti. Need on multipleksitud 8 rida ja 8 veeruskeemi. Kuna ADC sisendi jaoks on 1 tihvti kasutamisel ainult 15 tihvti, on multipleksimisel rida 1 ja veerg 0 ühist tihvti. See tähendab, et konkreetne LED reas 1 ja veerus 0 ei saa põleda. See on kompromiss, kuna kõigi LED -elementide juhtimiseks pole lihtsalt piisavalt GPIO -tihvte.

Heli jäädvustamine

Heli salvestatakse Educational BoosterPacki kondensaatorimikrofoni kaudu. Kuna mikrofoni signaalid on väikesed, peame seda võimendama tasemele, mida msp430 ADC10 saab kasutada mõistliku eraldusvõimega. Olin selleks kasutanud kaheastmelist op-võimendit.

Op-amp võimendi koosneb kahest astmest, millest igaüks on umbes 100x võimendusega. Mul oli TLC272 kasutusele võetud, kuna see on ka väga levinud osa ja see töötab 3V abil. Võimendusribalaius umbes 1,7 MHz tähendab, et meie 100 -kordse võimenduse korral saame garanteerida, et see töötab kenasti (st soovitud võimenduse säilitamine) alla 17 Khz. (1,7 MHz / 100).

Algselt kavatsen muuta selle spektraalanalüsaatori mõõtmeteks kuni 16-20Khz, kuid lõpuks leidsin, et umbes 8Khz on muusika näitamiseks piisavalt hea. Seda saab muuta, asendades LM358 koos helikvaliteediga ja muutes diskreetimissagedust. Otsige lihtsalt valitud op-võimendite võimendusribalaiust.

Proovide võtmine ja FFT

Kasutatav FFT -funktsioon on kood "fix_fft.c", mille paljud projektid olid omaks võtnud, see on juba mõne aasta internetis hõljunud. Olin proovinud 16 -bitist ja 8 -bitist versiooni. Lõpuks leppisin oma eesmärgi nimel 8 -bitise versiooniga, ma ei näinud 16 -bitise versiooni osas suurt edasiminekut.

Ma ei saa FFT mehhanismist hästi aru, välja arvatud see, et see on aja domeenist sageduseks domeeni teisendamine. See tähendab, et heliproovide kiirus (aeg) pärast FFT arvutusfunktsiooni sisestamist mõjutab selle tulemusel saadud amplituudi sagedust. Nii et reguleerides kiirust prooviheliga, saan tulemuseks määrata sagedusriba.

Taimerit 0 CCR0 kasutatakse proovivõtmise aja hoidmiseks. Esmalt määrame kindlaks sagedused, mida vajame ribalaiuse saavutamiseks (vastab meie DCO taktsagedusele 16Mhz). st TA0CCR0 seatud väärtusele (8000/(BAND_FREQ_KHZ*2))-1; kus BAND_FREQ_KHZ on minu jaoks 8. Seda saab muuta, kui teil on parem op-amp ja / või soovite, et see oleks erinev.

Sagedusribad ja amplituudi skaleerimine

Püsivara töötleb ühe sagedusega 16 sagedusriba ja püüdmise ajastus tekitab nende pankade vahel 500 Hz eralduse. LED -maatriks koosneb 8 veerust ja kuvab ainult 8 riba / amplituudi. Iga kahe riba kuvamise asemel kasutatakse dünaamilisemate sagedusribade (muusika osas) kuvamiseks mittelineaarset sagedusalade loendit. Nimekirjas on 500 Hz lüngad madalamal, 1 KHz lüngad keskmistel ja 1,5 kHz sagedusalad kõrgematel.

Üksikute ribade amplituud vähendatakse 8 tasemeni, mida tähistab horisontaalsete punktide arv LED-maatriksi ekraanil. Amplituuditasemed vähendatakse mittelineaarse kaardi abil, mis teisendab FFT tulemused üheks kaheksast täpid. Kasutatakse omamoodi logaritmilist skaleerimist, kuna see esindab kõige paremini meie arusaama helitasemest.

Seal on sisseehitatud AGC loogika ja spektrianalüsaator püüab amplituudi taset vähendada, kui eelmistes tsüklites on tuvastatud mitu tipptaset. Seda tehakse libiseva joonlaua võrdlustabeliga.

6. samm: seadme kasutamine

  • Lühike klahvivajutus kuvamisrežiimis liigub ekraanil ilma punktita, ühest punktist, kahest punktist ja kolmest punktist.
  • Pikk vajutus siseneb seadistusrežiimi, järgnev pikk vajutus pöörab menüüd.
  • Menüüvalikud liiguvad läbi 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate'.
  • Seadistusrežiimis „Hamming Window“teeb lühike vajutus tsüklit ilma haamrita, löömine 1, löömine 2, löömine 3, pikk vajutus kinnitab seadistust.
  • Häälestusrežiimis 'Dimmer' (lühike vajutus) liigub läbi saadaolevate heledustasemete vahemikus 0 kuni 3, pikk vajutus kinnitab seadistuse.
  • Seadistusrežiimis 'Proovivõtmine / värskendussagedus' lülitab lühike vajutus saadaval olevate värskendussageduste vahemikku 0 kuni 7, 0 tähendab viivitust, pikk vajutus kinnitab seadistust.
  • Led -segmentide multipleksimine sisaldab aja viivitusi, et kompenseerida üksikute ridade heleduse erinevusi.

Soovitan: