Obsah:

Analyzátor zvukového spektra Breadboard MSP430: 6 krokov
Analyzátor zvukového spektra Breadboard MSP430: 6 krokov

Video: Analyzátor zvukového spektra Breadboard MSP430: 6 krokov

Video: Analyzátor zvukového spektra Breadboard MSP430: 6 krokov
Video: Полевой транзистор. Часть 1. JFET. № 079. 2024, November
Anonim
Image
Image
MSP430 Breadboard Audio Spectrum Analyzer
MSP430 Breadboard Audio Spectrum Analyzer

Tento projekt je založený na mikrofóne a vyžaduje minimum externých komponentov. Používajú sa 2 mincové bunky LR44, aby som mohol celú štruktúru pracovať v medziach 170 dvojbodového mini breadboardu. Použité a predvádzané sú ADC10, TimerA prerušenie LPM prebudenie, TimerA výstup podobný PWM, použitie tlačidla, celočíselná aritmetika.

Vlastnosti

  • 8 bitové celočíselné FFT 16 vzoriek s oddelením 500 Hz
  • ukazuje 8 amplitúd 1K, 1,5K, 2K, 3K, 4K, 5K, 6K, 7,5K nelineárne
  • čiastočná logaritmická mapa na zobrazenie amplitúd, obmedzené, pretože rozlíšenie bolo znížené pre 8 bitový FFT
  • Jednostupňové mikrofónne zosilňovače TLC272 so 100 -násobným zosilnením 100x (môžete zažiť 2 stupne)
  • z ponuky voliteľné voliteľné Hammingovo okno
  • ponuka upraví 4 úrovne jasu
  • ponuka upraví 8 úrovní vzorkovacia frekvencia / doba odozvy
  • 2 x gombíkový článok LR44 napájaný „na palube“

Krok 1: Získajte diely

Nasledujúce sú potrebné pre tento projekt

  • MSP430G2452 (extra čip z TI Launchpad G2 alebo akéhokoľvek 4K 20 -pinového MCU radu MSP430G s rozlíšením 4K)
  • 170-bodová mini breadboard alebo perfboard na stavbu predzosilňovačov
  • Dvojitý operačný zosilňovač TLC272
  • mini elektretový mikrofón
  • 47k (pull-up), 100k, 2 x 10k, 1k odpory
  • 1 x 0,1 uF
  • prepojovacie vodiče
  • dvojradový kolíkový kolíkový konektor, ktorý sa má použiť ako držiak batérie
  • 2 x gombíková batéria LR44

Krok 2: Naplánujte rozloženie komponentov

Projekt má byť postavený na 170 dvojbodovom mini-breadboarde. Rozloženie komponentov je uvedené nižšie. Zvláštnosťou je, že matica LED 8x8 má byť umiestnená na vrchu MCU MSP430. Okrem komponentov existujú aj prepojovacie prepojovacie vodiče označené znakmi „+------+“.

G V ++ =================+ 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 a r1 zdieľajú rovnaký pin a nezobrazia sa | +. +-+-+-+| +-+-+-+-+-+-+-+-+-++ *možná aplikácia má c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | tým sa uvoľní b6 pre 32kHz xtal hodiny | | | TLC272 | | | | | | | von - + 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 tlačidlo+ -----------------+

používame iba jeden stupeň TLC272

Krok 3: Zostavenie

zhromaždenie
zhromaždenie
zhromaždenie
zhromaždenie

Môžete začať umiestňovať súčiastky na základe rozloženia na lište. Pretože je to umenie ASCII, nemusí to byť celkom jasné. V tomto kroku môžete spárovať fotografie a identifikovať všetky pripojenia.

Je potrebné dávať pozor na umiestnenie čipov IC. V jednom z rohov je zvyčajne bodka označujúca kolík 1 zariadenia.

Použil som ethernetové káblové káble CAT5 a je ich veľmi ľahké pracovať na projektoch typu breadboard. Ak máte staré káble CAT5, môžete ich rozrezať a zistíte, že vo vnútri je 6 skrútených vodičov. Sú perfektné na chlebové dosky.

Krok 4: Zostavte a načítajte firmvér

Zdrojový kód sa zvyčajne nachádza v mojich úložiskách github.

Pre tento konkrétny projekt je jeden zdrojový súbor C nfft.c uložený v mojom úložisku chlebových zbierok. Potrebujete iba nfft.c

Na zostavenie firmvéru používam mps430-gcc, ale malo by to fungovať dobre s TI CCS. Môžete sa vyhnúť všetkým problémom s inštaláciou IDE alebo kompilátorov tým, že pôjdete do cloudu TI CCS, čo je webové IDE. Dokonca stiahne firmvér do vášho cieľového zariadenia.

Toto je príklad príkazu kompilácie s prepínačmi

msp430 -gcc -Os -Wall -funkčné sekcie -fdata -sekcie -fno -inline -small -functions -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- sekcie -I/energia -0101E0016/hardvér/msp430/jadrá/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

Na programovanie MCU používam ako programátor TI Launchpad G2.

Krok 5: Pochopte obvod

Pochopte obvod
Pochopte obvod
Pochopte obvod
Pochopte obvod

Schéma zapojenia je uvedená nižšie

MSP430G2452 alebo podobný, potrebuje dvojitý operačný zosilňovač 4K Flash TLC272, GBW @1,7 MHz, zisk x x100, šírka pásma až 17 kHz

* používame iba jeden stupeň TLC272

._.

| MSP430G2452 | Vcc | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | pull-up (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100 000 | _ | | / _+\ / / | | /| --- (pozri rozloženie na lište) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +---6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | matica | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ //// /// /// ///

LED riadenie

LED matica má 8 x 8 prvkov. Poháňa ich 15 pinov GPIO. Sú multiplexované s 8 riadkami a 8 stĺpcovými schémami. Pretože potom, čo použijeme 1 pin na vstup ADC, existuje iba 15 pinov, multiplexovanie má riadok 1 a stĺpec 0 zdieľajúci jeden pin. To znamená, že konkrétna dióda LED v riadku 1 a stĺpci 0 nemôže svietiť. Toto je kompromis, pretože nie je dostatok pinov GPIO na pohon všetkých prvkov LED.

Zachytenie zvuku

Zvuk je zachytený prostredníctvom vstavaného kondenzátorového mikrofónu vo vzdelávacom BoosterPack. Pretože sú signály mikrofónu malé, musíme ho zosilniť na úroveň, ktorú môže msp430 ADC10 používať s primeraným rozlíšením. Na tento účel som použil dvojstupňový zosilňovač.

Zosilňovač operačného zosilňovača pozostáva z dvoch stupňov, každý so 100-násobným ziskom. Použil som TLC272, pretože je to tiež veľmi bežná súčasť a funguje s napätím 3V. Šírka pásma zisku približne 1,7 MHz znamená, že pri našom 100 -násobnom zisku môžeme len zaručiť, že bude pekne fungovať (tj. Zachová požadovaný zisk) pod 17 kHz. (1,7 MHz / 100).

Pôvodne som chcel dosiahnuť, aby tento spektrálny analyzátor meral až 16-20 kHz, ale nakoniec som zistil, že asi 8 kHz je dosť dobrých na to, aby ukazovali hudbu. Toto je možné zmeniť nahradením LM358 za niečo s hodnotením zvuku a zmenou vzorkovacej frekvencie. Stačí sa pozrieť na šírku pásma zosilňovača, ktorý si vyberiete.

Odber vzoriek a FFT

Použitá funkcia FFT je kód „fix_fft.c“, ktorý prijalo mnoho projektov, a na internete sa pohybuje už niekoľko rokov. Skúsil som 16 -bitovú a 8 -bitovú verziu. Nakoniec som sa uspokojil s 8 -bitovou verziou, pretože v 16 -bitovej verzii som nevidel zásadný pokrok.

Nerozumiem dobre mechanizmu FFT, okrem toho, že ide o konverziu časovej domény na frekvenčnú doménu. To znamená, že rýchlosť (čas) zvukových vzoriek po vložení do funkcie výpočtu FFT ovplyvní frekvenciu amplitúdy, ktorú v dôsledku toho dostávam. Takže nastavením rýchlosti na vzorový zvuk môžem ako výsledok určiť frekvenčné pásmo.

Na udržanie času vzorkovania sa používa TimerA 0 CCR0. Najprv určíme počty, ktoré potrebujeme na dosiahnutie frekvencie pásma (zodpovedá našej hodinovej frekvencii DCO 16 MHz). t.j. TA0CCR0 nastavený na (8000/(BAND_FREQ_KHZ*2))-1; kde BAND_FREQ_KHZ je pre mňa 8. Môžete to zmeniť, ak máte lepší operačný zosilňovač a / alebo chcete, aby bol iný.

Frekvenčné pásma a škálovanie amplitúdy

Firmvér spracováva 16 pásiem jedným ťahom a načasovanie snímania vytvára medzi týmito bankami oddelenie 500 Hz. LED matica má 8 stĺpcov a bude zobrazovať iba 8 pásiem / amplitúd. Namiesto zobrazovania každého dvoch pásiem sa na zobrazenie dynamickejších frekvenčných pásiem (z hľadiska hudby) používa nelineárny zoznam frekvenčných pásiem. Zoznam obsahuje medzery 500 Hz na dolnom konci, medzery 1 kHz v stredných pásmach a pásma 1,5 kHz na výškach.

Amplitúda jednotlivých pásiem je zmenšená na 8 úrovní, ktoré sú reprezentované počtom horizontálnych „bodov“na LED maticovom displeji. Úrovne amplitúdy sú zmenšené prostredníctvom nelineárnej mapy, ktorá prekladá výsledky FFT do jednej z 8 bodky. Používa sa určitý druh logaritmického škálovania, ktoré najlepšie reprezentuje naše vnímanie hladín zvuku.

Je tu vstavaná logika AGC a spektrálny analyzátor sa pokúsi zmenšiť úrovne amplitúdy, ak je v predchádzajúcich cykloch zistených niekoľko špičkových úrovní. To sa vykonáva pomocou porovnávacej tabuľky posuvného pravítka.

Krok 6: Ovládanie zariadenia

  • Krátke stlačenie klávesu v režime displeja cykluje po zobrazení bez bodiek, jednej bodky, 2 bodiek a 3 bodiek.
  • Dlhým stlačením prejdete do režimu nastavenia, ďalším dlhým stlačením sa otáčate v ponuke.
  • Položky ponuky prechádzajú cyklom „Možnosti Hammingovho okna“, „Stmievač“, „Vzorkovacia / obnovovacia frekvencia“.
  • V režime nastavenia „Hammingovo okno“krátke stlačenia cyklujú bez Hammingu, Hamming 1, Hamming 2, Hamming 3, dlhé stlačenie potvrdí nastavenie.
  • V režime nastavenia „Stmievač“krátke stlačenia cyklujú cez dostupné úrovne jasu od 0 do 3, dlhé stlačenie potvrdí nastavenie.
  • V režime nastavenia „Vzorkovacia / obnovovacia frekvencia“krátke stlačenia cyklujú cez dostupné obnovovacie frekvencie od 0 do 7, 0 znamená žiadne oneskorenie, dlhé stlačenie potvrdí nastavenie.
  • Multiplexovanie segmentov LED obsahuje časové oneskorenia na kompenzáciu rozdielov jasu pre jednotlivé riadky.

Odporúča: