Sisällysluettelo:
- Vaihe 1: Osien hankkiminen
- Vaihe 2: Suunnittele komponenttien asettelu
- Vaihe 3: Kokoonpano
- Vaihe 4: Käännä ja lataa laiteohjelmisto
- Vaihe 5: Ymmärtäkää piiri
- Vaihe 6: Laitteen käyttö
Video: MSP430 Breadboard Audio Spectrum Analyzer: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Tämä projekti perustuu mikrofoniin ja vaatii vain vähän ulkoisia komponentteja. Käytetään 2 x LR44-nappiparistoa, jotta voin saada koko rakenteen toimimaan 170 solmukohdan minileipälevyn rajoissa. ADC10, TimerA keskeyttää LPM-herätyksen, TimerA PWM, kuten ulostulo, painikkeiden käyttö, kokonaislukujen aritmeettinen käyttö ja esittely.
ominaisuudet
- 8 -bittinen kokonaisluku FFT 16 -näytteet 500 Hz: n erolla
- näyttää 8 amplitudia 1K, 1,5K, 2K, 3K, 4K, 5K, 6K, 7,5K epälineaarinen
- osittainen logaritmikartta, joka näyttää amplitudit, rajoitettu, koska resoluutio on pienentynyt 8 -bittiselle FFT: lle
- TLC272 yksivaiheiset mikrofonivahvistimet 100x kertaa 100x vahvistus (voit kokea 2 vaihetta)
- valikosta valinnainen Hamming -ikkuna
- valikko säätää 4 kirkkaustasoa
- valikko säätää 8 tasoa näytteenottotaajuus / vasteaika
- 2 x LR44 -nappiparisto, joka toimii "aluksella"
Vaihe 1: Osien hankkiminen
Seuraavat ovat mitä tarvitaan tähän projektiin
- MSP430G2452 (TI Launchpad G2: n lisäsiru tai mikä tahansa 4K 20 -nastainen MSP430G -sarjan MCU)
- 170 kiinnityspisteinen mini-leipälauta tai perf-levy esivahvistimen rakentamiseen
- TLC272 Dual op-vahvistin
- minielektrettimikrofoni
- 47k (pull-up), 100k, 2 x 10k, 1k vastukset
- 1 x 0,1 uF
- hyppyjohtimet
- kaksirivinen urospistoke, jota käytetään paristopidikkeessä
- 2 x LR44 -nappiparisto
Vaihe 2: Suunnittele komponenttien asettelu
Projekti on tarkoitus rakentaa 170 tie-pisteen minileipälevylle. Komponenttien asettelu on seuraavanlainen. Erityisen huomionarvoista on, että 8x8 LED -matriisi on asetettava MSP430 MCU: n päälle. Komponenttien lisäksi on myös kytkentähyppyjohtimia, jotka on merkitty "+------+"-merkeillä.
G V + Gnd (1 -vaiheinen asettelu) KÄYTÄMME TÄTÄ ASETTELUA + ====================================== =================+ 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 o |…… |.. | b6 a7 | | c0 ja r1 jakavat saman nastan eivätkä näytä | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+| *mahdollinen sovellus, jolla on c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | tämä vapauttaa b6 32 kHz: n xtal -kellolle | | | TLC272 | | | | | | | ulos - + 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- [1 k] o o o………._. | | o ---- [10k] ----------- o……. o o | +================================================== ====+.1uF 100k 10k ADC -painike+ -----------------+
käytämme vain yhtä TLC272: n vaihetta
Vaihe 3: Kokoonpano
Voit aloittaa komponenttien sijoittamisen leipälevyn asettelun perusteella. Koska se on ASCII -taidetta, se ei ehkä ole kovin selkeä. Voit muodostaa pariliitoksen valokuvien kanssa tässä vaiheessa kaikkien yhteyksien tunnistamiseksi.
IC -sirut on sijoitettava huolellisesti. Yhdessä kulmassa on yleensä piste, joka osoittaa laitteen nastan 1.
Olin käyttänyt CAT5 -ethernet -kaapelijohtoja ja ne ovat erittäin helppoja työskennellä leipälautaprojekteissa. Jos sinulla on vanhat CAT5 -kaapelit, voit leikata sen auki ja huomaat, että sisällä on 6 kierrettyä johtoa. Ne sopivat täydellisesti leipälaudoille.
Vaihe 4: Käännä ja lataa laiteohjelmisto
Lähdekoodi sijaitsee yleensä github -arkistoissani.
Tätä projektia varten yksittäinen C -lähdetiedosto nfft.c on yhdistetty leipälautakokoelmatiedostooni. Tarvitset vain nfft.c
Käytän mps430-gcc: tä laiteohjelmiston kääntämiseen, mutta sen pitäisi mennä hyvin TI CCS: n kanssa. Voit välttää kaikki IDE: iden tai kääntäjien asentamisen ongelmat siirtymällä TI CCS -pilveen, joka on verkkopohjainen IDE. Se jopa lataa laiteohjelmiston kohdelaitteellesi.
Tämä on esimerkki käännöskomennosta kytkimillä
msp430 -gcc -Os -Wall -funktio -osiot -fdata -section -fno -inline -small -function -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- osiot -I/energia -0101E0016/hardware/msp430/ytimet/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c
Käytän TI Launchpad G2: ta ohjelmoijana MCU: n ohjelmointiin.
Vaihe 5: Ymmärtäkää piiri
Piirikaavio on esitetty alla
MSP430G2452 tai vastaava, tarvitaan 4K Flash TLC272 Dual Op-Amp, GBW @1.7Mhz, @x100 vahvistus, kaistanleveys jopa 17 Khz
* Käytämme vain yhtä TLC272: n vaihetta
._.
| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | vetäminen (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100 000 | _ | | / _+\ / / | | /| --- (katso leipälevyn asettelu) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | matriisi | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///
LED -ajo
LED -matriisi koostuu 8 x 8 elementistä. Niitä ohjaa 15 GPIO -nastaa. Ne ovat multipleksoituja 8 rivillä ja 8 sarakkeella. Koska ADC -sisääntulossa on vain 15 nastaa sen jälkeen, kun olemme käyttäneet yhtä nastaa, multipleksoinnilla on rivi 1 ja sarake 0 jakavat yhden nastan. Tämä tarkoittaa, että rivin 1 ja sarakkeen 0 LED -valot eivät voi palaa. Tämä on kompromissi, koska GPIO -nastoja ei vain ole tarpeeksi kaikkien LED -elementtien ohjaamiseen.
Äänenkaappaus
Ääni kaapataan Educational BoosterPack -laitteen sisäisen kondensaattorimikrofonin kautta. Koska mikrofonisignaalit ovat pieniä, meidän on vahvistettava se tasolle, jota msp430 ADC10 voi käyttää kohtuullisella resoluutiolla. Olin käyttänyt kaksivaiheista op-vahvistinta tähän tarkoitukseen.
Op-vahvistin koostuu kahdesta vaiheesta, joista jokaisella on noin 100-kertainen vahvistus. Minulla oli omaksua TLC272, koska se on myös hyvin yleinen osa ja se toimii w/ 3V. Vahvistuksen kaistanleveys on noin 1,7 Mhz, mikä tarkoittaa sitä, että 100 -kertaisella voitollamme voimme vain taata, että se toimisi hienosti (eli säilyttää haluamamme vahvistuksen) alle 17 Khz. (1,7 MHz / 100).
Alunperin aion saada tämän spektrianalysaattorin mittaamaan jopa 16-20Khz, mutta lopulta huomasin, että noin 8Khz on tarpeeksi hyvä näyttämään musiikkia. Tätä voidaan muuttaa korvaamalla LM358 w/ jotain äänitason luokkaa ja muuttamalla näytteenottotaajuutta. Etsi vain valitsemiesi op-vahvistimien vahvistuskaistanleveys.
Näytteenotto ja FFT
Käytetty FFT -toiminto on "fix_fft.c" -koodi, jonka monet hankkeet olivat omaksuneet, ja se on kellunut Internetissä jo vuosia. Kokeilin 16- ja 8 -bittistä versiota. Lopulta päädyin 8 -bittiseen versioon tarkoituksessani, en nähnyt suurta edistystä 16 -bittisessä versiossa.
Minulla ei ole hyvää ymmärrystä FFT -mekanismista, paitsi että se on aika -alue -taajuus -alueen muuntaminen. Tämä tarkoittaa sitä, että ääninäytteiden nopeus (aika) FFT -laskutoimintoon syöttämisen jälkeen vaikuttaa tuloksena saadun amplitudin taajuuteen. Joten säätämällä taajuuden näyteäänen perusteella voin määrittää taajuuskaistan tuloksena.
Ajastinta 0 CCR0 käytetään näytteenottoajan pitämiseen. Määritämme ensin kaistan taajuuden saavuttamiseen tarvittavat lukemat (vastaa DCO -kellotaajuuttamme 16Mhz). eli TA0CCR0 asetettu arvoon (8000/(BAND_FREQ_KHZ*2))-1; jossa BAND_FREQ_KHZ on 8 minulle. Sitä voidaan muuttaa, jos sinulla on parempi op-vahvistin ja / tai haluat sen olevan erilainen.
Taajuusalueet ja amplitudin skaalaus
Laiteohjelmisto prosessoi 16 kaistaa yhdellä pyyhkäisyllä, ja sieppauksen ajoitus tuottaa 500 Hz: n eron näiden pankkien välillä. LED -matriisissa on 8 saraketta ja se näyttää vain 8 kaistaa / amplitudia. Sen sijaan, että näytettäisiin yksi joka toinen kaista, käytetään epälineaarista taajuuskaistaluetteloa dynaamisempien taajuuskaistojen näyttämiseksi (musiikin kannalta). Luettelo sisältää 500 Hz: n raot alemmassa päässä, 1 KHz: n raot keskikaistoilla ja 1,5 KHz: n kaistat korkeimmilla.
Yksittäisten kaistojen amplitudi skaalataan 8 tasolle, joita edustaa vaakasuuntaisten "pisteiden" lukumäärä LED-matriisinäytössä. pisteitä. Käytetään eräänlaista logaritmista skaalausta, koska se edustaa parhaiten käsitystämme äänitasoista.
Siinä on sisäänrakennettu AGC-logiikka ja spektrianalysaattori yrittää pienentää amplituditasoja, kun edellisissä sykleissä on havaittu useita huipputasoja. Tämä tehdään liukuvan viivaimen vertailutaulukon avulla.
Vaihe 6: Laitteen käyttö
- Lyhyt näppäimen painallus näyttötilassa kiertää pisteettömän, yhden pisteen, 2 pisteen ja 3 pisteen näytön.
- Pitkä painallus siirtyy asetustilaan, seuraava pitkä painallus kiertää valikon läpi.
- Valikkokohdat vaihtuvat 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate' kautta.
- 'Hamming Window' -asetustilassa lyhyet painallukset kiertävät ilman vasaraa, vasara 1, vasara 2, vasara 3, pitkä painallus vahvistaa asetuksen.
- Himmennysasetustilassa lyhyet painallukset kiertävät käytettävissä olevia kirkkaustasoja välillä 0 - 3, pitkä painallus vahvistaa asetuksen.
- 'Näytteenotto / virkistystaajuus' -asetustilassa lyhyet painallukset kiertävät käytettävissä olevat virkistystaajuudet välillä 0-7, 0 tarkoittaa, ettei viivettä ole, pitkä painallus vahvistaa asetuksen.
- Led -segmentin multipleksointi sisältää aikaviiveitä yksittäisten rivien kirkkauserojen kompensoimiseksi.
Suositeltava:
DIY FFT Audio Spectrum Analyzer: 3 vaihetta
DIY FFT Audio Spectrum Analyzer: FFT -spektrianalysaattori on testilaite, joka käyttää Fourier -analyysiä ja digitaalisia signaalinkäsittelytekniikoita spektrianalyysin tarjoamiseen. Fourier -analyysiä käyttämällä on mahdollista muuntaa yksi arvo esimerkiksi jatkuvan aikatason alueella
CRAZY L.O.L SPECTRUM ANALYZER: 6 vaihetta (kuvilla)
CRAZY L.O.L SPECTRUM ANALYZER: Tänään haluaisin kertoa, kuinka tehdä äänitaajuuden analysaattori - 36 kaistaa yhdistämällä 4 LoL -suojaa yhteen. Tämä hullu projekti käyttää FFT -kirjastoa analysoimaan stereoäänisignaalia, muuntamaan sen taajuuskaistoiksi ja näyttämään näiden taajuuksien amplitudin
Äärellinen tilakone MSP430: 6 vaihetta
Finite State Machine MSP430: Näytän sinulle, kuinka voit ohjelmoida MSP430G2 -käynnistyslevyn Finite State Machines (FSM) -ohjelmalla käyttämällä YAKINDU Statechart Tools -työkalua suoraan Texas Instruments Code Composer Studiossa. Tämä opetusohjelma sisältää kuusi vaihetta: YAKINDU Statechart Tools -työkalun asentaminen
MSP430 sekuntien laskuri: 10 vaihetta
MSP430 sekuntien laskuri: Tervetuloa! Sekuntimittarin tekeminen: CCStudio 8: n ja MSP430F5529: n käyttäminen projektissa. C -kieli mikro -ohjaimen koodaamiseen. Virransäästötilat, ajastimet ja keskeytykset Lähtö näytetään 7 segmentin kautta
LoL Shield Audio Spectrum VU -mittari: 4 vaihetta (kuvilla)
LoL Shield Audio Spectrum VU Meter: Tämä on äänispektrinen VU -mittari, joka käyttää LoL Shieldiä Arduinolle. LoL Shield on 14 x 9 LED -matriisi, joka sopii Arduinolle suojana ja jota ohjataan tehokkaalla Charlieplexing -menetelmällä. Sen on suunnitellut Jimmie P