Kazalo:

Analizator zvočnega spektra MSP430 Breadboard: 6 korakov
Analizator zvočnega spektra MSP430 Breadboard: 6 korakov

Video: Analizator zvočnega spektra MSP430 Breadboard: 6 korakov

Video: Analizator zvočnega spektra MSP430 Breadboard: 6 korakov
Video: MSP430 Breadboard Audio Spectrum Analyser 2024, November
Anonim
Image
Image
Analizator zvočnega spektra MSP430 Breadboard
Analizator zvočnega spektra MSP430 Breadboard

Ta projekt temelji na mikrofonu in zahteva minimalne zunanje komponente. 2 x kovanci LR44 so uporabljeni tako, da lahko celotno strukturo delam v mejah 170 majhnih plošč s povezovalno točko. Uporabljajo se in dokazujejo ADC10, TimerA prekinitev LPM prebujanja, TimerA PWM podoben izhod, uporaba gumbov, celoštevilska aritmetika.

Lastnosti

  • 8 -bitni celoštevilni FFT 16 vzorcev pri ločitvi 500Hz
  • prikazuje 8 amplitud 1L, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K nelinearno
  • zemljevid delnega logaritma za prikaz amplitud, omejen, ker se je ločljivost zmanjšala za 8 -bitno FFT
  • TLC272 enostopenjski mikrofonski ojačevalnik s 100 -kratnim povečanjem 100 -krat (lahko doživite z 2 stopnjami)
  • izbirno okno Hamming, ki ga lahko izberete v meniju
  • meni nastavi 4 stopnje svetlosti
  • meni prilagaja 8 stopenj vzorčenja / odzivni čas
  • 2 x LR44 gumbne celice, ki se napajajo "na krovu"

1. korak: Pridobite dele

Za ta projekt je potrebno naslednje

  • MSP430G2452 (dodatni čip iz TI Launchpad G2 ali kateri koli 4K 20 -polni MCU serije MSP430G)
  • 170 vezanih točk mini ploščic ali perf plošč za izdelavo predpojačevalnikov
  • TLC272 Dvojni op-amp
  • mini električni mikrofon
  • 47 k (izvlečni), 100 k, 2 x 10 k, 1 k upori
  • 1 x 0,1 uF
  • mostične žice
  • dvoredni moški zatič za glavo, ki se uporablja za držalo baterije
  • 2 x gumbna baterija LR44

2. korak: Postavitev komponent načrta

Projekt naj bi bil zgrajen na 170 vezani točki mini. Postavitev komponent je prikazana spodaj. Posebej velja omeniti, da je LED matrika 8x8 nameščena na MCU MSP430. Poleg komponent so na voljo tudi povezovalne mostične žice, označene z znaki "+------+".

G V + Gnd (1 -stopenjska postavitev) UPORABLJAMO TO ZGLEDO + ==================================== =================+ 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 in r1 imata isti pin in ne bosta prikazana | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| *možna aplikacija za c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | to bo sprostilo b6 za 32 kHz xtalno uro | | | TLC272 | | | | | | | ven - + 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 gumb ADC+ -----------------+

uporabljamo samo eno stopnjo TLC272

3. korak: Montaža

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

Komponente lahko začnete postavljati glede na postavitev matične plošče. Ker gre za umetnost ASCII, morda ni zelo jasna. V tem koraku lahko seznanite fotografije in prepoznate vse povezave.

Pri nameščanju čipov IC je treba paziti. Običajno je na enem od vogalov pika, ki označuje pin 1 naprave.

Uporabil sem kable Ethernet CAT5 Ethernet in z njimi je zelo enostavno delati na projektih. Če imate stare kable CAT5, jih lahko prerežete in v notranjosti boste našli 6 zvitih žic. Idealne so za plošče.

4. korak: Zberite in naložite vdelano programsko opremo

Izvorna koda je običajno v mojih skladiščih github.

Za ta poseben projekt je enotna izvorna datoteka C nfft.c združena v mojem skladišču zbirk osnovnih plošč. Potrebujete samo nfft.c

Za pripravo vdelane programske opreme uporabljam mps430-gcc, vendar bi morala biti v redu s TI CCS. Vsem težavam pri nameščanju IDE -jev ali prevajalnikov se lahko izognete tako, da obiščete oblak TI CCS, ki je spletni IDE. Prenesel bo celo vdelano programsko opremo na vašo ciljno napravo.

To je primer ukaza za prevajanje s stikali

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

Za programiranje MCU -ja uporabljam TI Launchpad G2 kot programer.

5. korak: Razumeti vezje

Razumeti vezje
Razumeti vezje
Razumeti vezje
Razumeti vezje

Shema vezja je predstavljena spodaj

MSP430G2452 ali podobno, potrebujete dvojni op-amp 4K Flash TLC272, GBW @1,7 Mhz, ojačanje @x100, pasovno širino do 17 kHz

* uporabljamo samo eno stopnjo TLC272

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | izvlečni (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (glej postavitev mize) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | matrika | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///

LED vožnja

LED matrika je sestavljena iz 8 x 8 elementov. Poganja jih 15 zatičev GPIO. So multipleksirani z 8 vrsticami in 8 stolpci. Ker je po uporabi 1 pina za vhod ADC le 15 zatičev, ima multipleksiranje vrstico 1 in stolpec 0, ki delita en pin. To pomeni, da posebne LED v vrstici 1 in stolpcu 0 ni mogoče prižgati. To je kompromis, saj ni dovolj zatičev GPIO za pogon vseh LED elementov.

Zajem zvoka

Zvok se snema prek vgrajenega kondenzatorskega mikrofona v izobraževalnem paketu BoosterPack. Ker so signali mikrofona majhni, ga moramo povečati na raven, ki jo msp430 ADC10 lahko uporablja z razumno ločljivostjo. V ta namen sem uporabil dvostopenjski ojačevalnik.

Ojačevalnik op-amp je sestavljen iz dveh stopenj, vsaka s približno 100-kratnim ojačanjem. Moral sem sprejeti TLC272, saj je tudi zelo pogost del in deluje z 3V. Pasovna širina dobička, ki znaša približno 1,7 MHz, pomeni, da lahko za naš 100 -kratni dobiček zagotovimo le, da bo deloval dobro (tj. Ohranil želeni dobiček) pod 17 kHz. (1,7 MHz / 100).

Sprva nameravam narediti ta analizator spektra do 16-20Khz, na koncu pa sem ugotovil, da je približno 8Khz dovolj dobro za predvajanje glasbe. To lahko spremenite tako, da zamenjate LM358 z nekaj zvočno ocenjenega in spremenite frekvenco vzorčenja. Samo poiščite pasovno širino ojačevalnika op-ojačevalnikov, ki jih izberete.

Vzorčenje in FFT

Uporabljena funkcija FFT je koda "fix_fft.c", ki so jo sprejeli številni projekti, že nekaj let lebdi po internetu. Poskusil sem 16 -bitno in 8 -bitno različico. Sčasoma sem se odločil za 8 -bitno različico, saj za svoj namen nisem videl večjega napredka pri 16 -bitni različici.

Ne razumem dobro mehanizma FFT, razen da gre za pretvorbo časovne domene v frekvenčno domeno. To pomeni, da bo hitrost (čas) zvočnih vzorcev po vnosu v funkcijo izračuna FFT vplivala na frekvenco amplitude, ki jo posledično dobim. Tako lahko s prilagajanjem hitrosti vzorčenega zvoka kot rezultat določim frekvenčni pas.

TimerA 0 CCR0 se uporablja za ohranjanje časa vzorčenja. Najprej določimo števila, ki jih potrebujemo za dosego pasovne frekvence (ustreza naši takti DCO 16Mhz). TA0CCR0 nastavljeno na (8000/(BAND_FREQ_KHZ*2))-1; kjer je zame BAND_FREQ_KHZ 8. Lahko ga spremenite, če imate boljši op-amp in / ali želite, da je drugačen.

Frekvenčni pasovi in amplitudno skaliranje

Vdelana programska oprema obdeluje 16 pasov naenkrat, čas zajema pa povzroči 500 Hz ločitev med temi bankami. LED matrika ima 8 stolpcev in bo prikazala le 8 pasov / amplitud. Namesto prikaza enega na vsaka dva pasova se za prikaz bolj dinamičnih frekvenčnih pasov (v smislu glasbe) uporablja nelinearni seznam frekvenčnih pasov. Seznam je 500Hz vrzeli na spodnjem koncu, 1KHz vrzeli v srednjih pasovih in 1.5Khz pasov v visokih.

Amplituda posameznih pasov je zmanjšana na 8 stopenj, ki so predstavljene s številom vodoravnih "pik" na zaslonu matrike LED. Ravni amplitude se zmanjšajo z nelinearnim zemljevidom, ki rezultate FFT prevede v enega od 8 pike. Uporablja se nekakšno logaritmično skaliranje, saj najbolje predstavlja naše dojemanje ravni zvoka.

Obstaja vgrajena logika AGC in analizator spektra bo poskušal zmanjšati amplitudne ravni, če je v prejšnjih ciklih zaznanih več najvišjih ravni. To naredite z drsnim ravnilom za primerjavo tabele.

6. korak: Upravljanje naprave

  • Kratek pritisk tipke v načinu prikaza se premika med prikazom brez pik, ene pike, 2 pik in 3 pik.
  • Dolg pritisk vstopi v način nastavitve, poznejši daljši pritisk se vrti skozi meni.
  • Elementi menija se gibljejo od 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate'.
  • V nastavitvenem načinu 'Hamming Window' kratki pritiski preidejo skozi brez udarjanja, udarjanje 1, udarjanje 2, udarjanje 3, dolgo pritiskanje potrjuje nastavitev.
  • V nastavitvenem načinu 'Dimmer' kratki pritiski ciklirajo skozi razpoložljive ravni svetlosti od 0 do 3, dolg pritisk potrdi nastavitev.
  • V nastavitvenem načinu 'Vzorčenje / hitrost osveževanja' kratki pritiski preklopijo med razpoložljivimi hitrostmi osveževanja od 0 do 7, 0 pomeni brez zamika, dolg pritisk potrdi nastavitev.
  • Multipleksiranje segmentnih luči vključuje časovne zamude za kompenzacijo razlik v svetlosti posameznih vrstic.

Priporočena: