TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: ElVale en 05 de Junio de 2008, 14:13:53
-
Hola. Alguien ha usado el ADC incorporado en los PIC16F877A o parecidos para convertir audio de analogo a digital? si es buena idea o vale la pena usar un ADC dedicado especial para audio? La idea es medir SPL solamente.
-
si es factible.
¿que es SPL?
-
Hola Pedro.
SPL es Sound pressure level, o nivel de presión de sonido, es la que en general se expresa en decibelios.
Si vas a usar el ADC solo para medir potencia sonora el PIC16F877A puede servirte a la perfección, ya para analisis del audio se te va a quedar cortito, en capacidad de procesamiento y en resolución del ADC, yo creo que por lo menos un DSPIC necesitas, pero la verdad que nunca he tocado audio y solo estoy suponiendo.
Saludos.
-
para señales de baja calidad y bajo muestreo, va bien. Ahora si es como dice Gonzalo, de analizar audio, pués no sabría decirte , porque todo dependerá de lo primero que mencioné.
-
Pues todo depende de qué resolución y que rango quieras obtener en la medida.
Jugando con las tensiónes de referencia del pic puedes favorecer una cosa u otra,pero no ambas.
Tendrías que hacer el cálculo en base al escalado de tu circuito de adquisición y ver si para un rango de tensiones dado (0 - 5V por ejemplo) los 10 bits de resolución del conversor del pic (unos 4.9 mV de resolución para dicho rango) son suficientes para detectar cambios de "x" decibelios (siendo x la resolución que quieres obtener en la medida)
-
Ok, entendido, pienso que el ADC del PIC16F877A me sirve para lo que quiero, pero aun no he entendido bien como establecer la frecuencia de muestreo. Suponiendo que tengo un cristal de 4 Mhz, cuales serían las frecuencias de muestreo en Hz que puedo usar?
-
Seria mejor que uses un cristal de 20Mhz, podrias guardar el audio que lees con el adc en una ram externa y luego volver a leerla detenidamente para analizarla según tus necesidades, trata de optimizar al máximo la lectura del adc y la escritura en la ram a fin de que puedas muestrear mas rapido si es que asi lo deseas.
Es dificil que puedas muestrear a 44.1Khz con un XT de 20Mhz peor aun con uno de 4Mhz porque el periodo de muestreo es de 22.6uS y mientras lees el adc incrementas el contador de direcciones de la ram escribes y todo lo demas te va a consumir varias lineas de programa y por ende bastante tiempo. Por ejemplo puedes muestrear a baja calidad como lo hacen los chips de Winbond a 6.4Khz es decir un periodo de muestreo de 156uS con esto al PIC le sobra tiempo incluso, pruebalo y poco a poco anda aumentando tu frecuencia de muestreo hasta donde pueda el PIC.
Javicho.
-
En esta nota de aplicación usan un Atmel (http://www.atmel.com/dyn/resources/prod_documents/doc1456.pdf) con un cristal de 8MHz para muestrear audio a 8000HZ y almacenarlo en una Flash SPI externa
-
Hola Gonzalo BlackHawk , un saludo, soy de españa, sevilla.
Te escribo a ver si me puedes orientar, ya que veo que sabes del tema, te comento.
Como puedo conectar un microfono y altavoz por ej. auriculares de baja potencia de forma que al
hablar por el microfono (voz analogica) salga por el altavoz en (digital) por medio de un pic.
Que pic es mejor 16Fxxx, 18Fxxx, 24, 32... para esto ?
que sea rápido y tenga una memoria aceptable, hay algún proyecto o algo parecido para poder estudiarlo ?.
Muchas gracias por todo.