Tartalomjegyzék:

MSP430 Breadboard Audio Spectrum Analyzer: 6 lépés
MSP430 Breadboard Audio Spectrum Analyzer: 6 lépés

Videó: MSP430 Breadboard Audio Spectrum Analyzer: 6 lépés

Videó: MSP430 Breadboard Audio Spectrum Analyzer: 6 lépés
Videó: MSP430 Breadboard Audio Spectrum Analyser 2024, November
Anonim
Image
Image
MSP430 Breadboard Audio Spectrum Analyzer
MSP430 Breadboard Audio Spectrum Analyzer

Ez a projekt mikrofon alapú, és minimális külső komponenseket igényel. 2 db LR44-es érmecellát használok, hogy az egész szerkezet működjön egy 170-es, kötöttpontos mini kenyértáblán. ADC10, TimerA megszakítás LPM ébresztés, TimerA PWM, mint a kimenet, gombhasználat, egész számtani.

Jellemzők

  • 8 bites egész FFT 16 minták 500 Hz -es elválasztással
  • 8 amplitúdót mutat 1K, 1,5K, 2K, 3K, 4K, 5K, 6K, 7,5K nemlineáris
  • részleges logaritmus térkép az amplitúdók megjelenítésére, korlátozott, mivel a felbontás csökkent 8 bites FFT esetén
  • TLC272 egyfokozatú mikrofonos erősítő 100x -szor 100x -os erősítéssel (2 fokozatban tapasztalható)
  • menüből választható opcionális Hamming ablak
  • menü 4 fényerő szint beállítása
  • menü 8 szint beállítása mintavételi arány / válaszidő
  • 2 db LR44 -es érmecella a fedélzeten

1. lépés: Alkatrészek beszerzése

A következőkre van szükség ehhez a projekthez

  • MSP430G2452 (a kiegészítő chip a TI Launchpad G2 -ből vagy bármely 4K 20 tűs MSP430G sorozatú MCU -ból)
  • 170 kötöttpontos mini kenyérlap vagy perf tábla az erősítő előkészítéséhez
  • TLC272 Dual op-amp
  • mini elektret mikrofon
  • 47k (felhúzás), 100k, 2 x 10k, 1k ellenállás
  • 1 x 0,1uF
  • jumper vezetékek
  • kétsoros dugaszfejű fej az elemtartóhoz
  • 2 x LR44 gombelem

2. lépés: Tervezze meg az összetevők elrendezését

A projektet egy 170-es, kötöttpontos mini kenyérlapra kell építeni. Az alkatrészek elrendezése az alábbiak szerint történik. Külön figyelemre méltó, hogy a 8x8 LED -es mátrixot az MSP430 MCU tetejére kell helyezni. Az alkatrészeken kívül vannak "+------+" karakterekkel jelölt összekötő jumper vezetékek is.

G V + Gnd (1 fokozatú elrendezés) EZT AZ ELrendezést használjuk + ==================================== =================+ 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 | |…… |.. | b6 a7 | | c0 és r1 ugyanazt a tűt használja, és nem jelenik meg | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+| *lehetséges alkalmazás c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | ez felszabadítja a b6 -ot 32 khz xtal óra | számára | | TLC272 | | | | | | | ki - + 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 gomb+ -----------------+

csak a TLC272 egyik szakaszát használjuk

3. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

Elkezdheti az alkatrészek elhelyezését a kenyeretábla elrendezése alapján. Mivel ASCII művészetről van szó, lehet, hogy nem túl világos. Ebben a lépésben párosíthatja a fényképeket az összes kapcsolat azonosításához.

Ügyelni kell az IC chipek elhelyezésére. Általában az egyik sarkon van egy pont, amely jelzi az eszköz 1. tűjét.

CAT5 ethernet kábelvezetékeket használtam, és nagyon könnyűek dolgozni a kenyértábla projekteken. Ha régi CAT5 kábelei vannak, felnyithatja, és 6 csavart vezetéket talál benne. Tökéletesek kenyérpultokhoz.

4. lépés: Fordítsa le és töltse be a firmware -t

A forráskód általában a github tárhelyeimen található.

Ehhez a projekthez az egyetlen n forrású C -forrásfájl, az nfft.c, a kenyeretábla -gyűjtemények lerakatában található. Csak az nfft.c kell

A firmware fordításához mps430-gcc-t használok, de jól kell mennie a TI CCS-hez. Az IDE -k vagy fordítók telepítésével kapcsolatos összes problémát elkerülheti, ha megnyitja a TI CCS felhőt, amely egy webes IDE. Még a firmware -t is letölti a céleszközre.

Ez egy példa a kapcsolók fordításával

msp430 -gcc -Os -Fal -funkciós szakaszok -fdata -szakaszok -fno -inline -kisfunkciók -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- szakaszok -I/energia -0101E0016/hardware/msp430/core/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

TI Launchpad G2 -t használok programozóként az MCU programozásához.

5. lépés: Ismerje meg az áramkört

Értsd meg az áramkört
Értsd meg az áramkört
Értsd meg az áramkört
Értsd meg az áramkört

Az áramkör vázlata az alábbiakban látható

Az MSP430G2452 vagy hasonló, 4K Flash TLC272 Dual Op-Amp, GBW @1,7 MHz, @x100 erősítés, akár 17 Khz sávszélesség szükséges

* csak a TLC272 egyik szakaszát használjuk

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | felhúzás (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100 ezer | _ | | / _+\ / / | | /| --- (lásd a kenyeretábla elrendezését) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | mátrix | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///

LED vezetés

A LED mátrix 8 x 8 elemből áll. 15 GPIO csap hajtja őket. Ezek multiplexelve 8 soros és 8 oszlopos sémával. Mivel csak 15 tű van azután, hogy 1 tűt használunk ADC bemenetre, a multiplexelésnek az 1. sora és a 0 oszlopa egyetlen tűvel oszlik meg. Ez azt jelenti, hogy az adott sor az 1. sorban és a 0. oszlopban nem világít. Ez kompromisszum, mivel nincs elegendő GPIO -tű az összes LED -elem meghajtásához.

Hangrögzítés

A hangot az Educational BoosterPack fedélzeti kondenzátor mikrofonja rögzíti. Mivel a mikrofonjelek kicsi, azt olyan szintre kell erősítenünk, hogy az msp430 ADC10 ésszerű felbontással tudjon használni. Erre a célra kétfokozatú op-erősítőt használtam.

Az op-erősítő két fokozatból áll, mindegyik körülbelül 100x erősítéssel. Elvettem a TLC272 -t, mivel ez is nagyon gyakori alkatrész, és 3 V -on működik. A nyereség sávszélessége körülbelül 1,7 MHz, ami azt jelenti, hogy a 100 -szoros nyereségünkhöz csak azt tudjuk garantálni, hogy szépen működik (azaz megtartja a kívánt nyereséget) 17 Khz alatt. (1,7Mhz / 100).

Eredetileg ezt a spektrumanalizátort 16-20Khz-re szeretném elérni, de végül úgy találtam, hogy körülbelül 8Khz elég jó a zene megjelenítéséhez. Ez megváltoztatható úgy, hogy kicseréli az LM358-at hangminősítéssel, és megváltoztatja a mintavételi gyakoriságot. Csak keresse meg a választott op-erősítők erősítési sávszélességét.

Mintavétel és FFT

Az FFT függvény a "fix_fft.c" kód, amelyet sok projekt elfogadott, és néhány éve lebeg az interneten. Próbáltam egy 16 bites és egy 8 bites verziót. Végül a 8 bites verzió mellett döntöttem, de nem láttam jelentős előrelépést a 16 bites verzióban.

Nem ismerem jól az FFT mechanizmust, kivéve, hogy ez egy időtartományról frekvenciára történő tartománykonverzió. Ez azt jelenti, hogy a hangminták sebessége (ideje) az FFT számítási funkcióba történő betáplálás után befolyásolni fogja az eredményeként kapott amplitúdó frekvenciáját. Tehát a frekvenciát a mintahanghoz igazítva eredményként meg tudom határozni a frekvenciasávot.

Az időzítőA 0 CCR0 a mintavételi idő tartására szolgál. Először meghatározzuk a sávfrekvencia eléréséhez szükséges számokat (megfelel a 16 MHz -es DCO órajelünknek). azaz a TA0CCR0 beállítása (8000/(BAND_FREQ_KHZ*2))-1; ahol a BAND_FREQ_KHZ számomra 8. Meg lehet változtatni, ha van egy jobb op-erősítője és / vagy szeretné, ha más lenne.

Frekvenciasávok és amplitúdóskálázás

A firmware egy sávban 16 sávot dolgoz fel, és a rögzítés időzítése 500 Hz -es szétválasztást eredményez a bankok között. A LED mátrix 8 oszlopból áll, és csak 8 sávot / amplitúdót jelenít meg. Ahelyett, hogy minden második sávot megjelenítenének, nemlineáris frekvenciasávos listát használnak a dinamikusabb frekvenciasávok megjelenítésére (zene szempontjából). A lista 500 Hz -es hézagokat tartalmaz az alsó végén, 1 kHz -es réseket a középső sávokban és 1,5 kHz -es sávokat a magasban.

Az egyes sávok amplitúdója 8 szintre van kicsinyítve, amelyet a vízszintes „pontok” száma jelez a LED mátrix kijelzőjén. Az amplitúdó szintek nem lineáris térképen vannak lekicsinyítve, amely az FFT eredményeit a 8 pontok. Egyfajta logaritmikus skálázást használunk, mivel ez tükrözi legjobban a hangszintek érzékelését.

Van beépített AGC logika, és a spektrumanalizátor megpróbálja csökkenteni az amplitúdó szintjét, ha az előző ciklusokban több csúcsszintet észleltek. Ez egy csúszó vonalzó összehasonlító táblával történik.

6. lépés: A készülék kezelése

  • Rövid gombnyomás megjelenítési módban a pontok, egy pont, 2 pont és 3 pont kijelzés nélküli ciklusok között mozog.
  • Hosszú megnyomás beállítási módba lép, majd ezt követően hosszan nyomja meg a menüt.
  • A menüpontok a „Hamming Window Option”, a „Dimmer”, a „Sampling / Refresh Rate” ciklusokon keresztül ciklusoznak.
  • A „Hamming Window” beállítási módban a rövid megnyomások ciklikusan végzik a kalapálást, az ütés 1, a kalapálás 2, a kalapálás 3, a hosszú megnyomás megerősíti a beállítást.
  • A „Dimmer” beállítási módban a rövid megnyomások a rendelkezésre álló fényerő -tartományok között 0 -tól 3 -ig, a hosszú megnyomás pedig megerősíti a beállítást.
  • „Mintavételi / frissítési gyakoriság” beállítási módban a rövid megnyomások a rendelkezésre álló frissítési gyakoriságok között 0 -tól 7 -ig ciklusoznak, a 0 azt jelenti, hogy nincs késleltetés, a hosszú megnyomás megerősíti a beállítást.
  • A LED szegmensek multiplexelése késleltetést tartalmaz az egyes sorok fényerő -különbségeinek kompenzálására.

Ajánlott: