Indholdsfortegnelse:
- Trin 1: Anskaf dele
- Trin 2: Planlægning af komponenters layout
- Trin 3: Montering
- Trin 4: Kompilér og indlæs firmware
- Trin 5: Forstå kredsløbet
- Trin 6: Betjening af enheden
Video: MSP430 Breadboard Audio Spectrum Analyzer: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Dette projekt er mikrofonbaseret og kræver minimale eksterne komponenter. 2 x LR44 møntceller bruges, så jeg kan få hele strukturen til at fungere i rammerne af et 170 tie-point mini-brødbræt. ADC10, TimerA interrupt LPM wake-up, TimerA PWM lignende output, knapbrug, heltal aritmetik bruges og demonstreres.
Funktioner
- 8 bit heltal FFT 16 sampler ved 500Hz adskillelse
- viser 8 amplituder på 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K ikke-lineær
- delvis logaritmekort for at vise amplituder, begrænset da opløsningen er reduceret til 8 bit FFT
- TLC272 et -trins mikrofon forstærker ved 100x gange 100x forstærkning (du kan opleve m/ 2 trin)
- menu valgfri Hamming vindue
- menu justere lysstyrken på 4 niveauer
- menu justere 8 niveauer prøvehastighed / responstid
- 2 x LR44 møntcelle drevet "om bord"
Trin 1: Anskaf dele
Følgende er, hvad der er nødvendigt for dette projekt
- MSP430G2452 (den ekstra chip fra TI Launchpad G2 eller en hvilken som helst 4K 20 -pin MSP430G -serie MCU)
- et 170 tie-point mini breadboard eller perf board til pre-amp konstruktiona
- TLC272 Dobbelt op-amp
- mini electret mikrofon
- 47k (pull-up), 100k, 2 x 10k, 1k modstande
- 1 x 0,1 uF
- jumper ledninger
- dobbelt række han -pin -header, der skal bruges til batteriholder
- 2 x LR44 møntcellebatteri
Trin 2: Planlægning af komponenters layout
Projektet skal bygges på et 170 tie-point mini-brødbræt. Komponenternes layout er som vist nedenfor. Af særlig opmærksomhed er, at 8x8 LED -matrixen skal placeres oven på MSP430 MCU. Bortset fra komponenter er der også forbindende jumperwires afbildet med "+------+" tegn.
G V + Gnd (1 -trins layout) VI BRUGER DETTE LAYOUT + ======================================= =================+ 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 og r1 deler samme pin og vises ikke | +. +-+-+-+| +-+-+-+-+-+-+-+-+-+| *mulig ansøgning om at have c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | dette frigør b6 til 32khz xtal ur | | | TLC272 | | | | | | | ud - + 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 knap+ -----------------+
vi bruger kun et trin i TLC272
Trin 3: Montering
Du kan begynde at placere komponenter baseret på brødbræddernes layout. Da det er ASCII -kunst, er det måske ikke særlig klart. Du kan parre m/ fotos i dette trin for at identificere alle forbindelser.
Der skal udvises omhu for at placere IC -chipsene. Der er normalt en prik på et af hjørnerne for at angive pin 1 på en enhed.
Jeg havde brugt CAT5 ethernetkabeltråde, og de er meget lette at arbejde med brødbrætprojekter. Hvis du har gamle CAT5 -kabler, kan du skære det op, og du vil finde, at der er 6 snoede ledninger indeni. De er perfekte til brødbrætter.
Trin 4: Kompilér og indlæs firmware
Kildekoden findes normalt på mine github -lagre.
Til dette særlige projekt er den enkelte C -kildefil nfft.c samlet i mit opslagstavle til opslagstavler. Du skal bare have nfft.c
Jeg bruger mps430-gcc til at kompilere firmwaren, men det burde gå godt med TI CCS. Du kan undgå alle problemer med at installere IDE'er eller kompilatorer ved at gå til TI CCS cloud, som er en webbaseret IDE. Det vil endda downloade firmwaren til din målenhed.
Dette er et eksempel på kompileringskommando m/ switches
msp430 -gcc -Os -Wall -funktionssektioner -fdata -sektioner -fno -inline -små -funktioner -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- sektioner -I/energia -0101E0016/hardware/msp430/cores/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c
Jeg bruger en TI Launchpad G2 som programmerer til at programmere MCU'en.
Trin 5: Forstå kredsløbet
Kredsløbsskemaet er præsenteret nedenfor
MSP430G2452 eller lignende, har brug for 4K Flash TLC272 Dual Op-Amp, GBW @1.7Mhz, @x100 gain, båndbredde op til 17Khz
* vi bruger kun et trin i TLC272
._.
| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |. | Vcc | | | | pull-up (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | |. |. |. | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (se layout af brødbrættet) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | matrix | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///
LED -kørsel
LED -matrixen består af 8 x 8 elementer. De drives af 15 GPIO -ben. De er multiplekset m/ 8 rækker og 8 søjleskema. Da der kun er 15 ben, efter at vi har brugt 1 pin til ADC -input, har multiplexingen række 1 og kolonne 0, der deler en enkelt pin. Det betyder, at den særlige LED i række 1 og kolonne 0 ikke kan tændes. Dette er et kompromis, da der bare ikke er nok GPIO -ben til at drive alle LED -elementer.
Lydoptagelse
Lyd fanges via den indbyggede kondensatormikrofon på Educational BoosterPack. Da mikrofonsignaler er små, skal vi forstærke det til et niveau, som msp430 ADC10 kan bruge med en rimelig opløsning. Jeg havde brugt en totrins op-forstærker til dette formål.
Op-amp-forstærkeren består af to trin, hver med en gevinst på cirka 100x. Jeg havde vedtaget TLC272, da den også er en meget almindelig del, og den fungerer m/ 3V. Forstærkningsbåndbredden er omkring 1,7 Mhz betyder, at vi for vores gevinst på 100x kun kan garantere, at det ville fungere godt (dvs. opretholde den forstærkning, vi ønsker) under 17Khz. (1,7 Mhz / 100).
Oprindeligt har jeg tænkt mig at få denne spektrumanalysator til at måle op til 16-20Khz, men i sidste ende fandt jeg ud af, at omkring 8Khz er god nok til at vise musik. Dette kan ændres ved at udskifte LM358 med noget med lydklassificering og ændre samplingshastigheden. Se bare efter forstærkningsbåndbredden for de op-forstærkere, du vælger.
Prøvetagning og FFT
Den anvendte FFT -funktion er "fix_fft.c" -koden, som mange projekter havde vedtaget, den har svævet rundt på internettet i nogle år. Jeg havde prøvet en 16 bit version og en 8 bit version. Til sidst nøjedes jeg med 8 -bit -versionen, da jeg til mit formål ikke så et stort fremskridt med 16 -bit -versionen.
Jeg har ikke en god forståelse af FFT -mekanismen, bortset fra at det er et tidsdomæne til frekvensdomænekonvertering. Det betyder, at lydprøvernes hastighed (tid) efter indføring i FFT -beregningsfunktionen vil påvirke frekvensen af amplituden, jeg får som følge heraf. Så ved at justere hastigheden til at prøve lyd, kan jeg bestemme frekvensbåndet som resultatet.
Timer A 0 CCR0 bruges til at beholde prøveudtagningstiden. Vi bestemmer først de tællinger, vi har brug for for at opnå båndfrekvensen (svarer til vores DCO -urfrekvens på 16Mhz). dvs. TA0CCR0 indstillet til (8000/(BAND_FREQ_KHZ*2))-1; hvor BAND_FREQ_KHZ er 8 for mig. Det kan ændres, hvis du har en bedre op-amp og / eller ønsker at det skal være anderledes.
Frekvensbånd og amplitude skalering
Firmwaren behandler 16 bånd på én gang, og optagelsestimingen producerer 500 Hz adskillelse mellem disse banker. LED -matrixen består af 8 kolonner og viser kun 8 bånd / amplituder. I stedet for at vise et hvert andet bånd, bruges en ikke-lineær frekvensbåndsliste til at vise de mere dynamiske frekvensbånd (hvad angår musik). Listen er over 500Hz -huller i den lave ende, 1KHz -huller i de midterste bånd og 1,5Khz -bånd i højderne.
Amplituden af individuelle bånd skaleres ned til 8 niveauer, der er repræsenteret ved antallet af vandrette 'prikker' på LED-matrixdisplayet. Amplitude-niveauerne skaleres ned via et ikke-lineært kort, der oversætter FFT-resultater til et af de 8 prikker. En slags logaritmisk skalering bruges, da den bedst repræsenterer vores opfattelse af lydniveauer.
Der er indbygget AGC-logik, og spektrumanalysatoren vil forsøge at nedskære amplitudeniveauerne, når der er registreret flere topniveauer i de foregående cyklusser. Dette gøres med en glidende lineal sammenligningstabel.
Trin 6: Betjening af enheden
- Kort tastetryk i displaytilstand går igennem ingen prik, en prik, 2 prikker og 3 prikker.
- Langt tryk går ind i opsætningstilstand, efterfølgende langt tryk roterer gennem menuen.
- Menupunkterne cykler gennem 'Hamming Window Option', 'Dimmer', 'Sampling / Refresh Rate'.
- I opsætningstilstanden 'Hamming Window' går korte tryk igennem uden at hamre, hamme 1, hamme 2, hamme 3, langt tryk bekræfter indstilling.
- I 'Dimmer' opsætningstilstand, korte tryk cykler gennem tilgængelige lysstyrkeniveauer fra 0 til 3, langt tryk bekræfter indstilling.
- I opsætningstilstanden 'Sampling / Refresh rate' går korte tryk gennem de tilgængelige opdateringshastigheder fra 0 til 7, 0 betyder ingen forsinkelse, langt tryk bekræfter indstillingen.
- Led segment multiplexing inkluderer tidsforsinkelser for at kompensere for lysstyrkeforskelle for individuelle rækker.
Anbefalede:
Superstørrelse Acryllic Spectrum Analyzer: 7 trin (med billeder)
Superstørrelse Acryllic Spectrum Analyzer: Hvorfor vil du se på de små LED -skærme eller de små LCD'er, hvis du kan gøre det stort? Dette er en trinvis beskrivelse af, hvordan du bygger din egen gigantiske spektrumanalysator. Brug af akrylfliser og LED -strimler til at bygge et rumfyldningslys
DIY FFT Audio Spectrum Analyzer: 3 trin
DIY FFT Audio Spectrum Analyzer: FFT spektrumanalysator er et testudstyr, der bruger Fourier -analyse og digitale signalbehandlingsteknikker til at levere spektrumanalyse. Ved hjælp af Fourier -analyse er det muligt for en værdi i f.eks. Det kontinuerlige tidsdomæne at konvertere
10 Band Led Spectrum Analyzer: 11 trin
10 Band Led Spectrum Analyzer: God eftermiddag, kære seere og læsere. I dag vil jeg vise dig den komplette monteringsguide til 10 -bånds LED -spektrumanalysator
DIY Arduino Audio Signal Spectrum Analyzer: 3 trin
DIY Arduino Audio Signal Spectrum Analyzer: Dette er en meget enkel lydanalysator med ændrede visuelle tilstande
Audio Spectrum Analyzer (VU Meter): 6 trin
Audio Spectrum Analyzer (VU Meter): Hvad er musik? Fra et teknisk synspunkt er musik grundlæggende et signal med varierende spænding og frekvens. Audio Spectrum Analyzer er en enhed, der viser spændingsniveauet for en bestemt frekvens. Det er et instrument, der hovedsageligt bruges på steder som