Tabla de contenido:

Analizador de espectro de audio de placa de pruebas MSP430: 6 pasos
Analizador de espectro de audio de placa de pruebas MSP430: 6 pasos

Video: Analizador de espectro de audio de placa de pruebas MSP430: 6 pasos

Video: Analizador de espectro de audio de placa de pruebas MSP430: 6 pasos
Video: Review: analizador de espectro de audio con led, Audio spectrum analyzer 2024, Noviembre
Anonim
Image
Image
Analizador de espectro de audio de placa de pruebas MSP430
Analizador de espectro de audio de placa de pruebas MSP430

Este proyecto se basa en un micrófono y requiere componentes externos mínimos. Se utilizan 2 pilas de botón LR44 para que pueda tener toda la estructura funcionando en los confines de una mini placa de pruebas de 170 puntos de unión. ADC10, TimerA interrumpe la activación de LPM, TimerA PWM como salida, uso de botones, aritmética de enteros se utilizan y demuestran.

Características

  • Entero de 8 bits FFT 16 muestras a una separación de 500 Hz
  • muestra 8 amplitudes de 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K no lineales
  • mapa de logaritmo parcial para mostrar amplitudes, limitado porque la resolución se ha reducido para FFT de 8 bits
  • El micrófono de una etapa TLC272 amplifica a 100 veces la ganancia de 100 veces (puede experimentar con 2 etapas)
  • ventana de Hamming opcional seleccionable por menú
  • menú ajustar 4 niveles de brillo
  • menú ajustar 8 niveles de frecuencia de muestreo / tiempo de respuesta
  • 2 pilas de botón LR44 alimentadas "a bordo"

Paso 1: Adquirir piezas

Lo siguiente es lo que se necesita para este proyecto.

  • MSP430G2452 (el chip adicional de TI Launchpad G2 o cualquier MCU de la serie MSP430G 4K de 20 pines)
  • una mini placa de pruebas o placa de perforación de 170 puntos de unión para la construcción de preamplificadores
  • Amplificador operacional doble TLC272
  • mini micrófono electret
  • 47k (pull-up), 100k, 2 x 10k, resistencias de 1k
  • 1 x 0,1 uF
  • cables de puente
  • Cabezal de clavija macho de doble fila que se utilizará para el soporte de la batería
  • 2 pilas de tipo botón LR44

Paso 2: Diseño de componentes del plan

El proyecto se construirá sobre una mini placa de pruebas de 170 puntos de unión. El diseño de los componentes se muestra a continuación. Cabe destacar que la matriz de LED de 8x8 debe colocarse en la parte superior del MCU MSP430. Aparte de los componentes, también hay cables de puente de conexión representados por los caracteres "+ ------ +".

G V + Gnd (diseño de 1 etapa) ESTAMOS UTILIZANDO ESTE DISEÑO + ==================================== ================= + 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 y r1 comparten el mismo pin y no se muestran | +. + - + - + - + | + - + - + - + - + - + - + - + - + - + | * posible aplicación para tener c6 + c0 + r1 | | | V + | | | G b6 b7 T R a7 a6 b5 b4 b3 | | esto liberará b6 para el reloj xtal de 32 khz | | | TLC272 | | | | | | | fuera - + 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ón ADC + ----------------- +

estamos usando una etapa del TLC272 solamente

Paso 3: Montaje

Montaje
Montaje
Montaje
Montaje

Puede comenzar a colocar componentes según el diseño de la placa de pruebas. Como es arte ASCII, puede que no sea muy claro. Puede emparejar con las fotos en este paso para identificar todas las conexiones.

Se debe tener cuidado al colocar los chips IC. Por lo general, hay un punto en una de las esquinas para indicar el pin 1 de un dispositivo.

Había usado cables de Ethernet CAT5 y son muy fáciles de trabajar en proyectos de tablero. Si tiene cables CAT5 viejos, puede cortarlos para abrirlos y encontrará que hay 6 cables trenzados en el interior. Son perfectos para protoboards.

Paso 4: compile y cargue el firmware

El código fuente generalmente reside en mis repositorios de github.

Para este proyecto en particular, el único archivo fuente de C nfft.c está incluido en el repositorio de colecciones de mi tablero. Solo necesitas nfft.c

Estoy usando mps430-gcc para compilar el firmware, pero debería funcionar bien con TI CCS. Puede evitar todos los problemas de instalar IDE o compiladores yendo a TI CCS cloud, que es un IDE basado en web. Incluso descargará el firmware a su dispositivo de destino.

Este es un ejemplo de comando de compilación con interruptores

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

Estoy usando un TI Launchpad G2 como programador para programar la MCU.

Paso 5: Comprenda el circuito

Entender el circuito
Entender el circuito
Entender el circuito
Entender el circuito

El esquema del circuito se presenta a continuación.

MSP430G2452 o similar, necesita 4K Flash TLC272 Dual Op-Amp, GBW @ 1.7Mhz, @ x100 ganancia, ancho de banda de hasta 17Khz

* solo estamos usando una etapa del TLC272

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1 - + | | | |. | Vcc | | | | dominadas (47k) Vcc Vcc | --------------- | | | | _ | | | + -1 | ----. Vcc | 8- + | | | |. |. |. | ^.--- | 7 | | 16- + | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _ + / / / | | / | --- (ver diseño de tablero) |.1u | | | | | / _ + / | | / | ------_ + - || --- | - [1k] - + - 2 | --- + | | | | | 15 GPIO | | | | + ---------- 3 | ----- + + - | - | 6 | P1.1-P1.7 | | 8x8 | | | + -4 | Gnd + - | 5 | P2.0-P2.7 | | LED | | + | | --------------- | | | matriz | ((O)) |. | | / | | _ | | MIC | | 10k | + -20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ | _ /// /// /// ///

Conducción LED

La matriz de LED es de 8 x 8 elementos. Están accionados por 15 pines GPIO. Están multiplexados con esquema de 8 filas y 8 columnas. Dado que solo hay 15 pines después de que usamos 1 pin para la entrada ADC, la multiplexación tiene la fila 1 y la columna 0 compartiendo un solo pin. Esto significa que el LED en particular en la fila 1 y la columna 0 no se puede encender. Este es un compromiso ya que simplemente no hay suficientes pines GPIO para controlar todos los elementos LED.

Captura de sonido

El sonido se captura a través del micrófono de condensador integrado en el Educational BoosterPack. Como las señales del micrófono son pequeñas, necesitamos amplificarlas a un nivel que el msp430 ADC10 pueda usar con una resolución razonable. Había usado un amplificador de amplificador operacional de dos etapas para este propósito.

El amplificador de amplificador operacional consta de dos etapas, cada una con una ganancia de aproximadamente 100x. Adopté el TLC272 ya que también es una pieza muy común y funciona con 3V. El ancho de banda de ganancia es de aproximadamente 1.7Mhz significa que para nuestra ganancia de 100x, solo podemos garantizar que funcionará bien (es decir, mantendrá la ganancia que queremos) por debajo de 17Khz. (1,7 Mhz / 100).

Originalmente tenía la intención de hacer que este analizador de espectro mida hasta 16-20Khz, pero al final descubrí que unos 8Khz son lo suficientemente buenos para mostrar música. Esto se puede cambiar reemplazando el LM358 con algo de clasificación de audio y cambiando la frecuencia de muestreo. Solo busque el ancho de banda de ganancia de los amplificadores operacionales que elija.

Muestreo y FFT

La función FFT utilizada es el código "fix_fft.c" que muchos proyectos habían adoptado, ha estado flotando en Internet durante algunos años. Probé una versión de 16 bits y una versión de 8 bits. Finalmente me conformé con la versión de 8 bits, ya que para mi propósito, no vi un avance importante en la versión de 16 bits.

No tengo una buena comprensión del mecanismo FFT, excepto que es un dominio de tiempo a una conversión de dominio de frecuencia. Eso significa que la velocidad (tiempo) de las muestras de sonido, después de alimentar a la función de cálculo FFT, afectará la frecuencia de la amplitud que obtengo como resultado. Entonces, al ajustar la frecuencia para muestrear el sonido, puedo determinar la banda de frecuencia como resultado.

Temporizador Se utiliza un 0 CCR0 para mantener el tiempo de muestreo. Primero determinamos los conteos que necesitamos para lograr la frecuencia de banda (corresponde a nuestra frecuencia de reloj DCO de 16Mhz). es decir, TA0CCR0 establecido en (8000 / (BAND_FREQ_KHZ * 2)) - 1; donde BAND_FREQ_KHZ es 8 para mí. Se puede cambiar si tiene un amplificador operacional mejor y / o quiere que sea diferente.

Bandas de frecuencia y escala de amplitud

El firmware procesa 16 bandas en un barrido y el tiempo de captura produce una separación de 500 Hz entre estos bancos. La matriz de LED es de 8 columnas y solo mostrará 8 bandas / amplitudes. En lugar de mostrar una cada dos bandas, se utiliza una lista de bandas de frecuencia no lineal para mostrar las bandas de frecuencia más dinámicas (en términos de música). La lista es de brechas de 500Hz en el extremo bajo, brechas de 1KHz en las bandas medias y bandas de 1.5Khz en las altas.

La amplitud de las bandas individuales se reduce a 8 niveles, que están representados por el número de 'puntos' horizontales en la pantalla de matriz LED. Los niveles de amplitud se reducen a través de un mapa no lineal que traduce los resultados de FFT en uno de los 8 puntos. Se utiliza una especie de escala logarítmica, ya que representa mejor nuestra percepción de los niveles de sonido.

Hay lógica AGC incorporada y el analizador de espectro intentará reducir los niveles de amplitud cuando se detecten múltiples niveles de pico en los ciclos anteriores. Esto se hace con una tabla comparativa de regla deslizante.

Paso 6: funcionamiento del dispositivo

  • Al presionar brevemente la tecla en el modo de visualización, se alterna entre la visualización sin punto, un punto, 2 puntos y 3 puntos.
  • La pulsación larga entra en el modo de configuración, la pulsación larga subsiguiente gira a través del menú.
  • Los elementos del menú pasan por 'Opción de ventana de Hamming', 'Atenuador', 'Frecuencia de muestreo / actualización'.
  • En el modo de configuración 'Ventana de Hamming', las pulsaciones cortas pasan por ciclos sin martillado, martillado 1, martillado 2, martillado 3, la pulsación larga confirma la configuración.
  • En el modo de configuración 'Dimmer', las pulsaciones cortas recorren los niveles de brillo disponibles de 0 a 3, la pulsación larga confirma la configuración.
  • En el modo de configuración 'Frecuencia de muestreo / actualización', las pulsaciones cortas recorren las frecuencias de actualización disponibles de 0 a 7, 0 significa que no hay demora, una pulsación larga confirma la configuración.
  • La multiplexación de segmentos LED incluye retrasos de tiempo para compensar las diferencias de brillo para filas individuales.

Recomendado: