Taula de continguts:

Analitzador d'espectre d'àudio MSP430 Breadboard: 6 passos
Analitzador d'espectre d'àudio MSP430 Breadboard: 6 passos

Vídeo: Analitzador d'espectre d'àudio MSP430 Breadboard: 6 passos

Vídeo: Analitzador d'espectre d'àudio MSP430 Breadboard: 6 passos
Vídeo: Ti Launchpad Dice Roller 2024, Desembre
Anonim
Image
Image
Analitzador d'espectre d'àudio MSP430 Breadboard
Analitzador d'espectre d'àudio MSP430 Breadboard

Aquest projecte està basat en micròfon i requereix components externs mínims. S’utilitzen 2 cèl·lules de moneda LR44 perquè pugui tenir tota l’estructura treballant als límits d’una mini placa de 170 punts de lligadura. S'utilitzen i es demostren ADC10, TimerA interrupt LPM wake-up, TimerA PWM like output, use button, aritmetic integer.

Característiques

  • FFT enter de 8 bits de 16 mostres a 500Hz de separació
  • mostra 8 amplituds de 1 K, 1,5 K, 2 K, 3 K, 4K, 5 K, 6 K, 7,5 K no lineals
  • mapa de logaritme parcial per mostrar amplituds, limitades ja que la resolució s'ha reduït per a FFT de 8 bits
  • TLC272 amplifica el micròfon d'una etapa amb un guany de 100 vegades 100x (podeu experimentar amb dues etapes)
  • finestra de Hamming opcional seleccionable al menú
  • menú ajustar la brillantor de 4 nivells
  • menú ajustar la freqüència de mostra de 8 nivells / temps de resposta
  • 2 x cèl·lules de moneda LR44 alimentades "a bord"

Pas 1: adquirir peces

Els següents són els necessaris per a aquest projecte

  • MSP430G2452 (el xip addicional de TI Launchpad G2 o qualsevol MCU de la sèrie MSP430G 4K de 20 pins)
  • una tauleta de perfeccionament de 170 punts de connexió o tauler de perf per a la construcció de preamplificadors
  • TLC272 Amplificador opcional doble
  • mini micròfon electret
  • Resistències de 47 k (pull-up), 100 k, 2 x 10 k, 1 k
  • 1 x 0,1uF
  • cables de pont
  • capçalera de pin de doble fila mascle que s'utilitzarà per al suport de la bateria
  • 2 x bateria de cèl·lula LR44

Pas 2: planifiqueu el disseny dels components

El projecte es construirà sobre una mini taula de suport de 170 punts de connexió. El disseny dels components és el que es mostra a continuació. Cal destacar que la matriu LED de 8x8 s’ha de col·locar a la part superior de l’MCP MSP430. A part dels components, també hi ha cables de pont connectats representats per caràcters "+ ------ +".

G V + Gnd (disseny en 1 etapa) ESTEM FENT UTILITZACIÓ D'AQUESTA DISPOSICIÓ + ==================================== ================= + 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 i r1 comparteixen el mateix pin i no es mostraran | +. + - + - + - + | + - + - + - + - + - + - + - + - + - + | * possible aplicació per tenir c6 + c0 + r1 | | | V + | | | G b6 b7 T R a7 a6 b5 b4 b3 | | això alliberarà b6 per a 32 kHz rellotge xtal | | | TLC272 | | | | | | | fora - + 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 Botó ADC + ----------------- +

només estem utilitzant una etapa del TLC272

Pas 3: Muntatge

muntatge
muntatge
muntatge
muntatge

Podeu començar a col·locar components en funció del disseny de la taula de treball. Com que és art ASCII, pot ser que no estigui molt clar. Podeu emparellar amb les fotos en aquest pas per identificar totes les connexions.

Cal tenir precaució a la posició dels xips IC. Normalment hi ha un punt en una de les cantonades per indicar el pin 1 d’un dispositiu.

Havia utilitzat cables de cable Ethernet CAT5 i són molt fàcils de treballar en projectes de taulers de suport. Si teniu cables CAT5 antics, el podeu tallar i trobareu que hi ha 6 cables retorçats a l’interior. Són perfectes per a taulers de suport.

Pas 4: Compileu i carregueu el microprogramari

El codi font sol residir als meus dipòsits de github.

Per a aquest projecte en concret, el fitxer font C únic nfft.c s’inclou al dipòsit de col·leccions de taulers de suport. Només necessiteu nfft.c

Estic fent servir mps430-gcc per compilar el firmware, però hauria d’anar bé amb TI CCS. Podeu evitar tots els problemes d’instal·lar IDE o compiladors anant al núvol TI CCS, que és un IDE basat en web. Fins i tot es descarregarà el firmware al dispositiu de destinació.

Aquest és un exemple d'ordre de compilació amb commutadors

msp430 - gcc -Os -Wall -ffunction-sections -fdata-sections -fno-inline-small-functions -Wl, -Map = nfft.map, --cref -Wl, --relax -Wl, --gc- seccions -I / energia-0101E0016 / hardware / msp430 / cores / msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

Estic fent servir un TI Launchpad G2 com a programador per programar la MCU.

Pas 5: entendre el circuit

Entendre el circuit
Entendre el circuit
Entendre el circuit
Entendre el circuit

A continuació es presenta l’esquema del circuit

MSP430G2452 o similar, necessiten 4K Flash TLC272 Dual Op-Amp, GBW @ 1,7 Mhz, @ x100 de guany, amplada de banda fins a 17 Khz

* només estem utilitzant una etapa del TLC272

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1 - + | | | |. | Vcc | | | | pull-up (47k) Vcc Vcc | --------------- | | | | _ | | | + -1 | ----. Vcc | 8- + | | | |. |. |. | ^.--- | 7 | | 16- + | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _ + / / / | | / | --- (vegeu el disseny de la taula de treball) |.1u | | | | | / _ + / | | / | ------_ + - || --- | - [1k] - + - 2 | --- + | | | | | 15 GPIO | | | | + ---------- 3 | ----- + + - | - | 6 | P1.1-P1.7 | | 8x8 | | | + -4 | Gnd + - | 5 | P2.0-P2.7 | | LED | | + | | --------------- | | | matriu | ((O)) |. | | / | | _ | | MIC | | 10k | + -20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///

Conducció LED

La matriu LED és de 8 x 8 elements. Són accionats per 15 pins GPIO. Són esquemes multiplexats amb 8 files i 8 columnes. Com que només hi ha 15 pins després d’utilitzar 1 pin per a l’entrada ADC, el multiplexat té la fila 1 i la columna 0 compartint un pin únic. Això significa que el LED concret de la fila 1 i de la columna 0 no es pot encendre. Es tracta d’un compromís, ja que no hi ha prou pins GPIO per conduir tots els elements LED.

Captura de so

El so es captura a través del micròfon condensador incorporat a l’educatiu BoosterPack. Com que els senyals de micròfon són reduïts, hem d’amplificar-lo fins a un nivell que el msp430 ADC10 pugui utilitzar amb una resolució raonable. Per a aquest propòsit, havia utilitzat un amplificador amplificador operacional de dues etapes.

L'amplificador d'amplificador operacional consta de dues etapes, cadascuna amb un guany aproximat de 100x cadascuna. Vaig adoptar el TLC272, ja que també és una part molt comuna i funciona amb 3V. L’amplada de banda del guany d’uns 1,7 MHz significa que per obtenir un guany de 100 vegades, només podem garantir que funcionaria bé (és a dir, mantenir el guany que desitgem) a menys de 17 KHz. (1,7 MHz / 100).

Originalment, tinc la intenció de fer que aquest analitzador d'espectre mesuri fins a 16-20 Khz, però al final he trobat que uns 8 Khz són prou bons per mostrar música. Això es pot canviar substituint el LM358 amb una qualificació d’àudio i canviant la freqüència de mostreig. Només cal buscar l’amplada de banda de guany dels amplificadors operatius que trieu.

Mostreig i FFT

La funció FFT que s’utilitza és el codi "fix_fft.c" que molts projectes havien adoptat, ja que fa anys que flota a Internet. Havia provat una versió de 16 bits i una versió de 8 bits. Finalment, em vaig conformar amb la versió de 8 bits, ja que per al meu propòsit, no vaig veure un avanç important en la versió de 16 bits.

No conec bé el mecanisme FFT, tret que es tracta d'una conversió de domini de temps a domini de freqüència. Això vol dir que la velocitat (temps) de les mostres de so, després d’alimentar-se a la funció de càlcul FFT, afectarà la freqüència de l’amplitud que estic obtenint com a resultat. Per tant, ajustant la velocitat al so de la mostra, puc determinar la banda de freqüències com a resultat.

TemporitzadorA 0 CCR0 s’utilitza per mantenir el temps de mostreig. Primer determinem els recomptes que necessitem per aconseguir la freqüència de banda (correspon a la nostra freqüència de rellotge DCO de 16 MHz). és a dir, TA0CCR0 definit a (8000 / (BAND_FREQ_KHZ * 2)) - 1; on BAND_FREQ_KHZ és 8 per a mi. Es pot canviar si teniu un amplificador operatiu millor i / o voleu que sigui diferent.

Bandes de freqüència i escalat d'amplitud

El microprogramari processa 16 bandes a la vegada i el temps de captura produeix una separació de 500Hz entre aquests bancs. La matriu LED té 8 columnes i només mostrarà 8 bandes / amplituds. En lloc de mostrar una banda cada dues, s'utilitza una llista de bandes de freqüència no lineal per mostrar les bandes de freqüència més dinàmiques (en termes de música). La llista és de buits de 500Hz a la part baixa, buits d’1KHz a les bandes mitjanes i bandes de 1,5Khz a les màximes.

L'amplitud de les bandes individuals es redueix fins a 8 nivells, que es representen pel nombre de "punts" horitzontals a la pantalla de la matriu LED. Els nivells d'amplitud es redueixen mitjançant un mapa no lineal que tradueix els resultats FFT en un dels 8 punts. S'utilitza una mena d'escala logarítmica perquè representa millor la nostra percepció dels nivells sonors.

Hi ha una lògica AGC integrada i l’analitzador d’espectre intentarà reduir els nivells d’amplitud quan es detectin múltiples nivells de pic en els cicles anteriors. Això es fa amb una taula de comparació de regles lliscants.

Pas 6: Funcionament del dispositiu

  • Si premeu una tecla curta en mode de visualització, no es visualitza cap punt, un punt, 2 punts i 3 punts.
  • La premsa llarga entra en mode de configuració, la premsa llarga posterior gira pel menú.
  • Els elements del menú passen per "Opció de finestra de martell", "Dimmer", "Freqüència de mostreig / actualització".
  • En el mode d'instal·lació de "Finestra de martellatge", les premses curtes no passen de martellades, martellades 1, martellades 2, martellades 3, premudes llargues confirmen la configuració.
  • En el mode de configuració "Dimmer", es premen breument els cicles a través dels nivells de brillantor disponibles de 0 a 3, mentre es prem la tecla llarga es confirma la configuració.
  • Al mode de configuració "Freqüència de mostreig / actualització", premeu breument els cicles de refresc disponibles de 0 a 7, 0 significa que no hi ha retard, la premuda llarga confirma la configuració.
  • La multiplexació de segments de led inclou retards de temps per compensar les diferències de brillantor de les files individuals.

Recomanat: