Sadržaj:

MSP430 Analizator audio spektra na matičnoj ploči: 6 koraka
MSP430 Analizator audio spektra na matičnoj ploči: 6 koraka

Video: MSP430 Analizator audio spektra na matičnoj ploči: 6 koraka

Video: MSP430 Analizator audio spektra na matičnoj ploči: 6 koraka
Video: ⚡ WangDaTao ⚡ DIY набор, индикатор уровня, анализатор аудио спектра. Music Spectrum Clock 512 LED 2024, Studeni
Anonim
Image
Image
MSP430 Analizator zvučnog spektra za matičnu ploču
MSP430 Analizator zvučnog spektra za matičnu ploču

Ovaj projekt temelji se na mikrofonu i zahtijeva minimalne vanjske komponente. Koriste se 2 x kovanice LR44 tako da cijela struktura može funkcionirati u granicama 170 malih mini ploča s povezivanjem. Koriste se i demonstriraju ADC10, TimerA prekid LPM buđenja, TimerA PWM poput izlaza, upotreba gumba, cjelobrojna aritmetika.

Značajke

  • 8 -bitni cijeli broj FFT 16 uzoraka na 500Hz razdvajanja
  • prikazuje 8 amplituda 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K nelinearno
  • karta djelomičnog logaritma za prikaz amplituda, ograničena jer je rezolucija smanjena za 8 bit FFT
  • TLC272 jednofazni mikrofonski pojačivač pri pojačanju od 100x puta 100x (možete doživjeti s 2 stupnja)
  • izborni izborni izborni prozor Hamming
  • izbornik podešava 4 razine svjetline
  • izbornik podesite 8 razina brzina uzorkovanja / vrijeme odziva
  • 2 x LR44 dugmaste ćelije s napajanjem "na brodu"

Korak 1: Nabavite dijelove

Evo što je potrebno za ovaj projekt

  • MSP430G2452 (dodatni čip s TI Launchpada G2 ili bilo koji 4K 20 -pinski MCU serije MSP430G)
  • mini veznu ploču od 170 veznih točaka ili perf ploču za izradu pretpojačala
  • TLC272 Dvojno op-pojačalo
  • mini elektronski mikrofon
  • 47k (pull-up), 100k, 2 x 10k, 1k otpornici
  • 1 x 0,1 uF
  • kratkospojne žice
  • dvoredni muški pin pin koji će se koristiti za držač baterije
  • 2 x dugmasta baterija LR44

Korak 2: Raspored komponenti plana

Projekt će biti izgrađen na mini ploči sa 170 vezanih točaka. Raspored komponenti je prikazan dolje. Posebno treba napomenuti da se LED matrica 8x8 postavlja na vrh MSP430 MCU. Osim komponenti, tu su i spojne žice kratkospojnika prikazane znakovima "+------+".

G V + Gnd (jednostupanjski raspored) KORISTIMO OVAJ RASPORED + ==================================== =================+ c0 ………… c7 | MIC……. + -----++-+…. | 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 i r1 dijele isti pin i neće se prikazati | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| *moguća primjena za c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | ovo će osloboditi b6 za xtalni sat od 32 kHz | | | TLC272 | | | | | | | izlaz - + 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 tipka+ -----------------+

koristimo samo jednu fazu TLC272

Korak 3: Montaža

Skupština
Skupština
Skupština
Skupština

Komponente možete početi postavljati na temelju izgleda matične ploče. Budući da je to umjetnost ASCII, možda nije baš jasno. U ovom koraku možete upariti fotografije i identificirati sve veze.

Mora se voditi računa o postavljanju IC čipova. Obično se na jednom kutu nalazi točka koja označava pin 1 uređaja.

Koristio sam CAT5 Ethernet kabelske žice i vrlo ih je lako raditi na projektima matične ploče. Ako imate stare kabele CAT5, možete ih prerezati i vidjet ćete da unutra ima 6 upletenih žica. Savršeni su za matične ploče.

Korak 4: Sastavite i učitajte firmver

Izvorni kod obično se nalazi u mojim spremištima za github.

Za ovaj projekt, pojedinačna izvorna datoteka C C nfft.c grupirana je u moje spremište zbirki matičnih ploča. Trebate samo nfft.c

Koristim mps430-gcc za sastavljanje firmware-a, ali trebao bi se slagati s TI CCS-om. Možete izbjeći sve probleme oko instaliranja IDE -a ili kompajlera odlaskom u TI CCS oblak, koji je web -temeljen IDE. Čak će i preuzeti firmver na vaš ciljani uređaj.

Ovo je primjer naredbe za kompajliranje s prekidačima

msp430 -gcc -Os -Wall -function -section -fdata -section -fno -inline -small -functions -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- odjeljci -I/energia -0101E0016/hardver/msp430/jezgre/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

Koristim TI Launchpad G2 kao programer za programiranje MCU -a.

Korak 5: Shvatite krug

Shvatite krug
Shvatite krug
Shvatite krug
Shvatite krug

Shema kola prikazana je u nastavku

MSP430G2452 ili slično, potrebno je 4K Flash TLC272 dvostruko op-pojačalo, GBW @1,7 Mhz, @x100 pojačanje, propusnost do 17 kHz

* koristimo samo jednu fazu TLC272

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | pull-up (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100.000 | _ | | / _+\ / / | | /| --- (vidi izgled matične ploče) |.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 vožnja

LED matrica ima 8 x 8 elemenata. Pokreće ih 15 GPIO pinova. Oni su multipleksirani sa 8 redova i shemom od 8 stupaca. Budući da nakon upotrebe 1 pina za ADC ulaz postoji samo 15 pinova, multipleksiranje ima red 1 i stupac 0 koji dijele jedan pin. To znači da se posebna LED dioda u retku 1 i stupcu 0 ne može paliti. Ovo je kompromis jer jednostavno nema dovoljno GPIO pinova za pogon svih LED elemenata.

Snimanje zvuka

Zvuk se snima putem ugrađenog kondenzatorskog mikrofona na Educational BoosterPack -u. Kako su signali mikrofona mali, moramo ga pojačati do razine koju msp430 ADC10 može koristiti s razumnom razlučivošću. U tu sam svrhu koristio dvostupanjsko pojačalo.

Op-pojačalo se sastoji od dvije faze, svaka sa pojačanjem od oko 100x. Morao sam usvojiti TLC272 jer je također vrlo čest dio i radi s 3V. Širina pojasa pojačanja od oko 1,7 Mhz znači da za naš dobitak od 100x možemo samo jamčiti da će raditi dobro (tj. Održavati željeni dobitak) ispod 17 KHz. (1,7 MHz / 100).

U početku namjeravam napraviti ovaj analizator spektra do 16-20Khz, ali na kraju sam otkrio da je oko 8Khz dovoljno dobro za prikazivanje glazbe. To se može promijeniti zamjenom LM358 sa audio-ocjenom i promjenom brzine uzorkovanja. Samo potražite pojasni opseg op-pojačala koje odaberete.

Uzorkovanje i FFT

Korištena funkcija FFT je "fix_fft.c" kôd koji su usvojili mnogi projekti, već nekoliko godina lebdi na internetu. Probao sam verziju od 16 bita i verziju od 8 bita. Na kraju sam se odlučio za 8 -bitnu verziju što se moje svrhe tiče, nisam vidio veći napredak u 16 -bitnoj verziji.

Ne razumijem dobro mehanizam FFT -a osim što je to pretvorba vremenske domene u frekvencijsku domenu. To znači da će brzina (vrijeme) uzoraka zvuka, nakon unosa u funkciju izračuna FFT -a, utjecati na frekvenciju amplitude koju dobivam kao rezultat. Tako prilagođavanjem brzine uzorkovanju zvuka mogu odrediti frekvencijski pojas kao rezultat.

TimerA 0 CCR0 koristi se za čuvanje vremena uzorkovanja. Najprije utvrđujemo brojeve koji su nam potrebni za postizanje frekvencije pojasa (odgovara našoj DCO frekvenciji od 16 Mhz). tj. TA0CCR0 postavljeno na (8000/(BAND_FREQ_KHZ*2))-1; gdje je za mene BAND_FREQ_KHZ 8. Može se promijeniti ako imate bolje op-pojačalo i / ili želite da bude drugačije.

Frekvencijski rasponi i skaliranje amplitude

Firmver obrađuje 16 opsega u jednom zamahu, a vrijeme hvatanja proizvodi razdvajanje od 500Hz između ovih banaka. LED matrica ima 8 stupaca i prikazat će samo 8 opsega / amplituda. Umjesto prikazivanja svakog svaka dva pojasa, nelinearni popis frekvencijskih pojaseva koristi se za prikaz dinamičnijih frekvencijskih pojaseva (u smislu glazbe). Popis se sastoji od praznina od 500Hz na niskim razinama, 1KHz praznina u srednjim i 1.5Khz opsega na visokim.

Amplituda pojedinih pojaseva smanjena je na 8 razina, koje su predstavljene brojem vodoravnih 'točaka' na LED matričnom zaslonu. Razine amplitude su smanjene putem nelinearne karte koja prevodi rezultate FFT-a u jednu od 8 razina. točkice. Koristi se svojevrsno logaritamsko skaliranje koje najbolje predstavlja našu percepciju razine zvuka.

Postoji ugrađena AGC logika i analizator spektra pokušat će smanjiti amplitudne razine kada je u prethodnim ciklusima otkriveno više razina vrha. To se radi pomoću kliznog ravnala za usporedbu tablice.

Korak 6: Rukovanje uređajem

  • Kratkim pritiskom tipke u načinu prikaza prikazuje se prikaz bez točke, jedne točke, 2 točke i 3 točke.
  • Dugim pritiskom ulazi se u način postavljanja, a slijedećim dugim pritiskom rotira se kroz izbornik.
  • Stavke izbornika prolaze kroz 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate'.
  • U načinu postavljanja 'Hamming Window', kratki pritisci prolaze kroz ciklus bez udarca, udarca 1, udarca 2, udarca 3, dugog pritiska potvrđuje postavku.
  • U "Dimmer" načinu rada za postavljanje, kratki pritisci prolaze kroz dostupne razine svjetline od 0 do 3, dugi pritisak potvrđuje postavku.
  • U načinu postavljanja 'Uzorkovanje / učestalost osvježavanja', kratki pritisci prolaze kroz dostupne brzine osvježavanja od 0 do 7, 0 znači da nema odgode, dugi pritisak potvrđuje postavku.
  • Multipleksiranje LED segmenata uključuje vremenske odgode radi kompenzacije razlika u svjetlini za pojedine retke.

Preporučeni: