Satura rādītājs:

MSP430 Breadboard audio spektra analizators: 6 soļi
MSP430 Breadboard audio spektra analizators: 6 soļi

Video: MSP430 Breadboard audio spektra analizators: 6 soļi

Video: MSP430 Breadboard audio spektra analizators: 6 soļi
Video: MSP430 Breadboard Audio Spectrum Analyser 2024, Novembris
Anonim
Image
Image
MSP430 Breadboard audio spektra analizators
MSP430 Breadboard audio spektra analizators

Šis projekts ir balstīts uz mikrofonu un prasa minimālus ārējos komponentus. Tiek izmantotas 2 x LR44 monētu šūnas, lai visa struktūra darbotos 170 sasienamu mini maizes dēļa robežās. Tiek izmantoti un demonstrēti ADC10, TimerA pārtraukt LPM modināšanu, TimerA PWM, piemēram, izvade, pogu izmantošana, veselu skaitļu aritmētika.

Iespējas

  • 8 bitu veseli skaitļi FFT 16 paraugi 500 Hz atdalījumā
  • parāda 8 amplitūdas 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K nelineāri
  • daļēja logaritma karte, lai parādītu amplitūdas, ierobežota, jo izšķirtspēja ir samazināta 8 bitu FFT
  • TLC272 vienpakāpes mikrofona pastiprinātāji ar 100x reizēm 100x pastiprinājumu (var piedzīvot ar 2 posmiem)
  • izvēlnes izvēles Hamming logs
  • izvēlne regulē 4 spilgtuma līmeņus
  • izvēlnē noregulējiet 8 līmeņu izlases ātrumu / reakcijas laiku
  • 2 x LR44 monētu šūna, kas darbina "uz kuģa"

1. darbība: iegādājieties detaļas

Tālāk ir norādīts, kas nepieciešams šim projektam

  • MSP430G2452 (papildu mikroshēma no TI Launchpad G2 vai jebkuras 4K 20 kontaktu MSP430G sērijas MCU)
  • 170 kaklasaites mini maizes dēlis vai perforācijas dēlis priekšpastiprinātāja konstrukcijai
  • TLC272 Dual op-amp
  • mini elektreta mikrofons
  • 47k (pull-up), 100k, 2 x 10k, 1k rezistori
  • 1 x 0.1uF
  • džemperu vadi
  • divrindu tērauda tapas galviņa, ko izmantot akumulatora turētājam
  • 2 x LR44 monētu šūnu baterija

2. darbība. Plānot sastāvdaļu izkārtojumu

Projekts ir jāveido uz 170 saišu punktu mini maizes dēļa. Komponentu izkārtojums ir parādīts zemāk. Īpaši jāatzīmē, ka 8x8 LED matrica ir jānovieto virs MSP430 MCU. Papildus komponentiem ir arī savienojošie savienojuma vadi, kas attēloti ar "+------+" rakstzīmēm.

G V + Gnd (1 posma izkārtojums) MĒS IZMANTOJAM ŠO IZkārtojumu + ==================================== =================+ 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 o |…… |.. | b6 a7 | | c0 un r1 koplieto vienu tapu un netiks rādīts | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+| *iespējama lietojumprogramma ar c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | tas atbrīvos b6 32 khz xtal pulkstenim | | | TLC272 | | | | | | | ārā - + 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 poga+ -----------------+

mēs izmantojam tikai vienu TLC272 posmu

3. solis: montāža

Montāža
Montāža
Montāža
Montāža

Jūs varat sākt izvietot komponentus, pamatojoties uz maizes dēļa izkārtojumu. Tā kā tā ir ASCII māksla, tā var nebūt ļoti skaidra. Šajā solī varat savienot pārī fotoattēlus, lai identificētu visus savienojumus.

Jārūpējas par IC mikroshēmu novietošanu. Parasti vienā no stūriem ir punkts, kas norāda ierīces 1. tapu.

Es biju izmantojis CAT5 Ethernet kabeļu vadus, un ar tiem ir ļoti viegli strādāt pie maizes dēļu projektiem. Ja jums ir veci CAT5 kabeļi, varat to pārgriezt vaļā, un jūs atradīsit, ka iekšpusē ir 6 savīti vadi. Tie ir lieliski piemēroti maizei.

4. solis: apkopojiet un ielādējiet programmaparatūru

Avota kods parasti atrodas manās github krātuvēs.

Šim konkrētajam projektam viens C avota fails nfft.c ir iekļauts manā maizes kolekcijas krātuvē. Jums vienkārši nepieciešams nfft.c

Es izmantoju mps430-gcc, lai apkopotu programmaparatūru, bet tai vajadzētu labi saderēt ar TI CCS. Jūs varat izvairīties no visām problēmām, instalējot IDE vai kompilatorus, dodoties uz TI CCS mākoni, kas ir tīmekļa IDE. Tas pat lejupielādēs programmaparatūru jūsu mērķa ierīcē.

Šis ir komandas apkopošanas piemērs ar slēdžiem

msp430 -gcc -Os -Sienas -funkciju -sadaļas -fdata -sadaļas -fno -inline -mazas funkcijas -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- sadaļas -I/energia -0101E0016/aparatūra/msp430/kodoli/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

MCU programmēšanai es izmantoju TI Launchpad G2 kā programmētāju.

5. darbība: izprotiet ķēdi

Izprotiet ķēdi
Izprotiet ķēdi
Izprotiet ķēdi
Izprotiet ķēdi

Shēmas shēma ir parādīta zemāk

MSP430G2452 vai līdzīgai ierīcei ir nepieciešams 4K Flash TLC272 Dual Op-Amp, GBW @1.7Mhz, @x100 pastiprinājums, joslas platums līdz 17 Khz

* mēs izmantojam tikai vienu TLC272 posmu

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | pievilkšanās (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (sk. maizes dēļa izkārtojumu) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | matrica | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///

LED braukšana

LED matrica sastāv no 8 x 8 elementiem. Tos virza 15 GPIO tapas. Tie ir multipleksēti ar 8 rindām un 8 kolonnu shēmu. Tā kā ir tikai 15 tapas pēc tam, kad ADC ievadei izmantojam vienu tapu, multipleksēšanai ir 1. rinda un 0. kolonna, kas koplieto vienu tapu. Tas nozīmē, ka konkrētā gaismas diode 1. rindā un 0. slejā nevar iedegties. Tas ir kompromiss, jo vienkārši nav pietiekami daudz GPIO tapu, lai vadītu visus LED elementus.

Skaņas tveršana

Skaņa tiek uztverta, izmantojot Educational BoosterPack iebūvēto kondensatora mikrofonu. Tā kā mikrofona signāli ir mazi, mums tas jāpastiprina līdz līmenim, lai msp430 ADC10 varētu izmantot ar saprātīgu izšķirtspēju. Šim nolūkam es biju izmantojis divpakāpju op-amp pastiprinātāju.

Op-amp pastiprinātājs sastāv no diviem posmiem, katrs ar aptuveni 100x pastiprinājumu. Man bija jāpieņem TLC272, jo tā ir arī ļoti izplatīta daļa, un tā darbojas ar 3V. Pieauguma joslas platums, kas ir aptuveni 1,7 MHz, nozīmē, ka mūsu 100x ieguvumam mēs varam tikai garantēt, ka tas darbosies labi (t.i., saglabās vēlamo pieaugumu) zem 17Khz. (1,7 MHz / 100).

Sākotnēji es plānoju padarīt šo spektra analizatoru līdz 16-20Khz, bet galu galā es atklāju, ka aptuveni 8Khz ir pietiekami labs, lai rādītu mūziku. To var mainīt, nomainot LM358 ar kaut ko ar audio vērtējumu un mainot paraugu ņemšanas ātrumu. Vienkārši meklējiet izvēlēto op-amp pastiprinājuma joslas platumu.

Paraugu ņemšana un FFT

Izmantotā FFT funkcija ir kods "fix_fft.c", ko pieņēmuši daudzi projekti, un tas jau vairākus gadus peld internetā. Es biju izmēģinājis 16 bitu un 8 bitu versiju. Galu galā es samierinājos ar 8 bitu versiju kā savu mērķi, es neredzēju lielu progresu 16 bitu versijā.

Man nav labas izpratnes par FFT mehānismu, izņemot to, ka tas ir laika domēna pārvēršana frekvenču domēnā. Tas nozīmē, ka skaņas paraugu ātrums (laiks) pēc barošanas FFT aprēķina funkcijai ietekmēs amplitūdas frekvenci, ko es iegūstu. Tātad, pielāgojot frekvenci parauga skaņai, kā rezultātu varu noteikt frekvenču joslu.

Taimeris 0 CCR0 tiek izmantots, lai saglabātu paraugu ņemšanas laiku. Vispirms mēs nosakām skaitļus, kas nepieciešami joslas frekvences sasniegšanai (atbilst mūsu DCO pulksteņa frekvencei 16Mhz). i., TA0CCR0 iestatīts uz (8000/(BAND_FREQ_KHZ*2))-1; kur BAND_FREQ_KHZ man ir 8. To var mainīt, ja jums ir labāks op-amp un / vai vēlaties, lai tas būtu atšķirīgs.

Frekvenču joslas un amplitūdas mērogošana

Programmaparatūra apstrādā 16 joslas vienā slaucīšanas reizē, un uztveršanas laiks rada 500 Hz atdalījumu starp šīm bankām. LED matricā ir 8 kolonnas, un tā parādīs tikai 8 joslas / amplitūdas. Tā vietā, lai parādītu katru otro joslu, tiek izmantots nelineārs frekvenču joslu saraksts, lai parādītu dinamiskākas frekvenču joslas (mūzikas ziņā). Sarakstā ir 500Hz atstarpes zemākajā galā, 1KHz atstarpes vidējās joslās un 1,5Khz joslas augstākajās.

Atsevišķu joslu amplitūda tiek samazināta līdz 8 līmeņiem, ko attēlo horizontālo "punktu" skaits LED matricas displejā. Amplitūdas līmeņi tiek samazināti, izmantojot nelineāru karti, kas pārveido FFT rezultātus vienā no 8 punkti. Tiek izmantota sava veida logaritmiska mērogošana, jo tā vislabāk atspoguļo mūsu uztveri par skaņas līmeņiem.

Ir iebūvēta AGC loģika, un spektra analizators mēģinās samazināt amplitūdas līmeņus, ja iepriekšējos ciklos ir konstatēti vairāki maksimālie līmeņi. Tas tiek darīts ar slīdošu lineālu salīdzināšanas tabulu.

6. darbība: ierīces lietošana

  • Īsi nospiežot taustiņu displeja režīmā, tiek parādīts displejs bez punkta, viena punkta, 2 punktiem un 3 punktiem.
  • Ilgi nospiežot, tiek ieslēgts iestatīšanas režīms, pēc tam ilgstoši nospiežot pagriež izvēlni.
  • Izvēlnes vienību cikli ir līdz “Hamming Window Option”, “Dimmer”, “Sampling / Refresh Rate”.
  • Iestatīšanas režīmā “Hamming Window” īsa nospiešana tiek veikta ciklu laikā bez āmura, āmurs 1, āmurs 2, trieciens 3, ilgstoša nospiešana apstiprina iestatījumu.
  • Iestatīšanas režīmā “Dimmer” (īsa nospiešana) īsas nospiešanas laikā tiek pārslēgti pieejamie spilgtuma līmeņi no 0 līdz 3, ilgstoša nospiešana apstiprina iestatījumu.
  • Iestatīšanas režīmā “Paraugu ņemšanas / atsvaidzes intensitāte” īsa nospiešana cikliski izskata pieejamos atsvaidzes intensitātes diapazonus no 0 līdz 7, 0 nozīmē, ka nav kavēšanās, ilgstoša nospiešana apstiprina iestatījumu.
  • LED segmentu multipleksēšana ietver laika aizkavi, lai kompensētu spilgtuma atšķirības atsevišķās rindās.

Ieteicams: