Sadržaj:

MSP430 Analizator audio spektra za matičnu ploču: 6 koraka
MSP430 Analizator audio spektra za matičnu ploču: 6 koraka

Video: MSP430 Analizator audio spektra za matičnu ploču: 6 koraka

Video: MSP430 Analizator audio spektra za matičnu ploču: 6 koraka
Video: HU-008 ⚡ DIY набор, индикатор уровня, анализатор аудио спектра. Music spectrum display LED 2024, Novembar
Anonim
Image
Image
MSP430 Analizator audio spektra za matičnu ploču
MSP430 Analizator audio spektra za matičnu ploču

Ovaj projekt je zasnovan na mikrofonu i zahtijeva minimalne vanjske komponente. Koriste se 2 x LR44 kovanice kako bih cijela konstrukcija radila u granicama 170 malih ploča s povezivanjem. Koriste se i demonstriraju ADC10, TimerA prekid LPM buđenja, TimerA PWM poput izlaza, upotreba dugmeta, cijela aritmetika.

Karakteristike

  • 8 -bitni cijeli broj FFT 16 uzoraka na 500Hz razdvajanja
  • prikazuje 8 amplituda 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K nelinearnih
  • mapa djelomičnog logaritma za prikaz amplituda, ograničena jer je rezolucija smanjena za 8 -bitni FFT
  • TLC272 jednofazni mikrofonski pojačivač sa pojačanjem od 100x puta 100x (možete doživjeti w/ 2 stupnja)
  • izborni izborni opcionalni Hamming prozor
  • meni podešava 4 nivoa osvetljenja
  • meni podešava 8 nivoa brzinu uzorkovanja / vreme odziva
  • 2 x LR44 dugmaste ćelije sa napajanjem "na brodu"

Korak 1: Nabavite dijelove

Evo šta je potrebno za ovaj projekat

  • MSP430G2452 (dodatni čip sa TI Launchpada G2 ili bilo koji 4K 20 -pinski MCU serije MSP430G)
  • mini vezana ploča sa veznim tačkama 170 ili perf ploča za konstrukciju predpojač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 se koristi za držač baterije
  • 2 x dugmasta baterija LR44

Korak 2: Raspored komponenti plana

Projekt će biti izgrađen na 170 vezanih mini-ploča. Raspored komponenti je prikazan ispod. Posebno treba napomenuti da se LED matrica 8x8 postavlja na vrh MSP430 MCU. Osim komponenti, tu su i spojne kratkospojne žice 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 aplikacija za c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | ovo će osloboditi b6 za 32kHz xtal sat | | | TLC272 | | | | | | | out - + 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 dugme+ -----------------+

koristimo samo jednu fazu TLC272

Korak 3: Montaža

Montaža
Montaža
Montaža
Montaža

Komponente možete početi postavljati na osnovu izgleda matične ploče. Budući da je to umjetnost ASCII, možda neće biti baš jasna. 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 od uglova 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: Prevedite i učitajte firmver

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

Za ovaj konkretni projekat, pojedinačna C izvorna datoteka nfft.c je grupirana u mojem spremištu zbirki matičnih ploča. Samo vam treba nfft.c

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

Ovo je primjer naredbe za kompajliranje sa prekidačima

msp430 -gcc -Os -Wall -function -section -fdata -section -fno -inline -small -functions -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- sekcije -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 predstavljena 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 | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (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 8 kolona. 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.

Sound Capture

Zvuk se snima putem ugrađenog kondenzatorskog mikrofona na Educational BoosterPack -u. Kako su signali mikrofona mali, moramo ga pojačati do nivoa koji msp430 ADC10 može koristiti sa razumnom rezolucijom. U tu sam svrhu koristio dvostupanjsko op-pojačalo.

Op-pojačalo se sastoji od dvije faze, svaka sa pojačanjem od oko 100x. Morao sam usvojiti TLC272 jer je to također vrlo čest dio i radi sa 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 muzike. To se može promijeniti zamjenom LM358 sa nečim zvučno ocijenjenim i promjenom brzine uzorkovanja. Samo potražite pojačanje pojačanja op-pojačala koje odaberete.

Uzorkovanje i FFT

Korištena funkcija FFT je "fix_fft.c" kôd koji su usvojili mnogi projekti, a 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 konverzija iz vremenskog do frekvencijskog područja. To znači da će brzina (vrijeme) uzoraka zvuka, nakon unosa funkcije izračunavanja FFT -a, utjecati na frekvenciju amplitude koju dobivam kao rezultat. Tako da prilagođavanjem brzine uzorku zvuka mogu odrediti frekvencijski pojas kao rezultat.

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

Frekvencijski opsezi i skaliranje amplitude

Firmver obrađuje 16 opsega u jednom zamahu, a vrijeme snimanja 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 opsega, koristi se lista nelinearnih frekvencijskih pojasa za prikaz dinamičnijih frekvencijskih opsega (u smislu muzike). Spisak je praznina od 500Hz na donjem kraju, 1KHz praznina u srednjim opsezima i 1.5Khz opsega na visokim.

Amplitude pojedinih opsega su smanjene na 8 nivoa, koji su predstavljeni brojem horizontalnih 'tačaka' na LED matričnom ekranu. Nivoi amplitude se smanjuju putem nelinearne karte koja prevodi rezultate FFT-a u jedan od 8 nivoa. tačke. Koristi se svojevrsno logaritamsko skaliranje koje najbolje predstavlja našu percepciju nivoa zvuka.

Postoji ugrađena AGC logika i analizator spektra će pokušati smanjiti nivoe amplitude kada je u prethodnim ciklusima otkriveno više vršnih nivoa. To se radi pomoću kliznog ravnala za usporedbu tablice.

Korak 6: Rukovanje uređajem

  • Kratkim pritiskom na taster u režimu prikaza prikazuje se prikaz bez tačke, jedne tačke, 2 tačke i 3 tačke.
  • Dugim pritiskom ulazite u način postavljanja, a zatim dugim pritiskom rotirate kroz meni.
  • Stavke menija prolaze kroz opcije „Hamming Window Option“, „Dimmer“, „Sampling / Refresh Rate“.
  • U načinu rada za postavljanje 'Hamming Window', kratki pritisci prolaze kroz ciklus bez zakucavanja, udaranje 1, udaranje 2, udaranje 3, dugo pritiskanje potvrđuje postavku.
  • U režimu podešavanja „Dimmer“, kratki pritisci prolaze kroz dostupne nivoe osvetljenosti od 0 do 3, dugi pritisak potvrđuje postavku.
  • U načinu postavljanja 'Uzorkovanje / Brzina osvježavanja', kratki pritisci prolaze kroz raspoložive brzine osvježavanja od 0 do 7, 0 znači da nema odgode, dugi pritisak potvrđuje postavku.
  • Multipleksiranje LED segmenata uključuje vremenska kašnjenja radi kompenzacije razlika u svjetlini za pojedinačne redove.

Preporučuje se: