Haz una pregunta
  Foros de Electrónica » Sistemas de Audio » Audio: Discusión General
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

24/04/2014 #1

Avatar de Edwar09

Audio y ADC del PIC
Buen dia, me gustaria saber como se puede hacer para leer audio con el adc del pic
Lo que quiero hacer es esto

AUDIO - ADC(del pic) - PIC(programacion) -DAC - AUDIO

Si eso usar el adcdel pic y sacar el audio con el dac y meterlo a un amplificador
Pero no se como acoplar el audio al adc para que no se dañe,¿con un capacitor basta no?
bueno pienso usar como audio la salida de mi telfono celular.Se acepta toda la ayuda haha
24/04/2014 #2

Avatar de Daniel Meza

¿De que PIC hablamos?, en cuanto a la interfaz sólo es necesario acoplar la entrada de tal manera que las fluctuaciones de la señal de audio queden comprendidas entre 0 y Vcc del PIC. Antes de eso creo que la dificultad sería la velocidad de muestreo que creo los PIC's normales no llegan a alcanzar.
¿que dices de un dsPIC?
24/04/2014 #3

Avatar de Edwar09

Bueno el ADC de mi micro muestrea a 1000 Khz (ATmega328)
Si tenia entendido que se debe hacer un offset para que se adapte al voltaje que maneja el micro y evitar los valores negativos pero no se nada de audio haha
como que amplitud maxima de entrada o esas cosas
24/04/2014 #4

Avatar de Daniel Meza

Las señales de audio andan entre los 200 y 350mV (según algunas medidas que hice), lo que a mi me ha servido es poner a la entrada del micro un divisor de tensión con dos resistores iguales de forma que el voltaje de offset quedara en 2.5V. Luego sobre ese nodo monté la alterna con un capacitor de 10uF y funcionaba, pero aclaro que yo sólo procesaba la señal y no la volvía a reproducir por lo que no se que tanta distorsión genere la conexión que hice. Prueba
24/04/2014 #5

Avatar de Dr. Zoidberg

Edwar09 dijo: Ver Mensaje
Bueno el ADC de mi micro muestrea a 1000 Khz (ATmega328)
1000 Hz o 1000 kHz?
http://es.wikipedia.org/wiki/Frecuen...o_y_v.C3.ADdeo
24/04/2014 #6

Avatar de TRILO-BYTE

yo hise ese proyecto para alguien que me lo encargo para pasar una materia

usando 2 pic 18f2550 y el 18f4550 "los use por que los tenia a la mano no significa que asi debe ser"
usando el teorema de Nyquist dice que frecuencia de muestreo = 2Fmax
es decir si yo quiero muestrear 4khz "una frecuencia de audio aceptable".
debo muestrear minimo a 8khz .

ahora este proyecto lo use metiendo la señal de audio directo al ADC "no hay riesgo de quemar el micro" pues el audio standard es de 1Vpp un micro lee maximo 0 a 5v

si el audio es muy bajo puedes multiplicar por 10 o por 100 tu lectura para evitar usar un amplificador si se te complica, o usar un preamplificador a transistor.

el DAC lo puedes hacer por PWM o con el tumbaburros DACR2R
eso si, si vas a usar el DACR2R no vale la pena leer un ADC de 10 bits pues un puerto es de 8 bits
si haces por PWM pues tu ancho del pulso variara con 1024 eso es muy logico.

es posible, dificil al principio pero no tan imposible
24/04/2014 #7

Avatar de Daniel Meza

TRILO-BYTE dijo: Ver Mensaje
yo hise ese proyecto para alguien que me lo encargo para pasar una materia

usando 2 pic 18f2550 y el 18f4550 "los use por que los tenia a la mano no significa que asi debe ser"
usando el teorema de Nyquist dice que frecuencia de muestreo = 2Fmax
es decir si yo quiero muestrear 4khz "una frecuencia de audio aceptable".
debo muestrear minimo a 8khz .
¿3 PIC's?, ¿que proyecto era?, y ¿el sonido muestreado era reproducido nuevamente?
24/04/2014 #8

Avatar de papirrin

y que opinan de alimentar el micro con una tension que comprenda de -2.5v en gnd y 2.5v en VDD, no debe haber ningun problema. no se en micros de atmel, pero en pic un 18f2550 puede llegar segun recuerdo a veintitantos Khertz.

seria un interesante proyecto, lastima que todavia no domino ASM, quizas en un futuro XD
24/04/2014 #9

Avatar de Daniel Meza

papirrin dijo: Ver Mensaje
y que opinan de alimentar el micro con una tension que comprenda de -2.5v en gnd y 2.5v en VDD, no debe haber ningun problema. no se en micros de atmel, pero en pic un 18f2550 puede llegar segun recuerdo a veintitantos Khertz.

seria un interesante proyecto, lastima que todavia no domino ASM, quizas en un futuro XD
Se lograría el mismo efecto del divisor resistivo. Además sería más inconvenientes por las interfaces y demás, pero experimentar no cuesta
24/04/2014 #10

Avatar de papirrin

Además sería más inconvenientes por las interfaces
a que interfaces te refieres?
24/04/2014 #11

Avatar de Daniel Meza

Pues si es que el amigo EDWAR quiera usar un DAC. Sobre todo por eso de las referencias de voltajes. Pero viéndolo bien, si todo el sistema funcionara con +-2.5V no creo haya inconveniente.
Esperemos a que diga que le convence
24/04/2014 #12

Avatar de Edwar09

Bueno lei bien y dice que el clock del ADC es 1000.000 Khz xD

Si exactamente eso me habian dicho Daniel Meza del divisor y el capacitor probare aver que tanta distorsion hay como comentas

TRYLO-BYTE osea que puedo meter la señal directamente sin hacer offset???
Y si trabajare a 8 bits.

Tambien probare eso de +-2.5v para alimentar el pic
24/04/2014 #13

Avatar de cosmefulanito04

No, tenés que meter el offset de 2,5v, que lo podés hacer como dice Daniel, usas un divisor con los valores adecuados y acoplás la señal con un capacitor.

Similar a esta entrada:



Antes de la base (como si el transistor fuera el ADC), pero R1 y R2 serán iguales; el valor del capacitor dependerá del paralelo R1//R2.

Sobre la frecuencia de muestreo, fijate que tan veloz es el uC para luego rearmar la señal, nyquist se aplica tanto para el ADC como para el DAC.
24/04/2014 #14

Avatar de papirrin

Daniel Meza dijo: Ver Mensaje
Pues si es que el amigo EDWAR quiera usar un DAC. Sobre todo por eso de las referencias de voltajes. Pero viéndolo bien, si todo el sistema funcionara con +-2.5V no creo haya inconveniente.
Esperemos a que diga que le convence
es lo que tenia en mente, incluso podria ser un Amplificador Clase PIC
24/04/2014 #15

Avatar de TRILO-BYTE

jaja no eran 3 pic solo eran 2 uno emitia y otro recivia por UART
para eso configure el ADC como de 8 bits para que cupiera perfecto en un unsigned Char
los pic no se programan solo en ASM yo programo en C18 tambien en CCS pero hay bugs

respecto al ofset pues como la señal de audio es tan baja pues si con un capacitor de 100nf basta

y como dice el colega Cosme el amplificador a transistor si funciona perfecto ese viejo proyecto lo hise con el mismo circuito del transistor "viene el el libro del Floyd si lo quieres calcular"

pero como mi cliente era un inepto en electronica no me arriesgue y lo hise multiplicando por 10 el valor que leia del reproctor asi uno evita electronica pero resta velocidad al micro.

pero a 8Khz el audio se oye bastante bien almenos que tengas un super oido o seas muy exigente .
24/04/2014 #16

Avatar de Edwar09

OK gracias por sus respuestas, realice la simulación del circuito y
y con una señal senoidal de 100Hz a la entrada con el acoplamiento por divisor y capacitor
el resultado fue satisfactorio pero a frecuencias mas altas, como 1 khz el resultado es muy malo les adjunto las imagenes de mis resultados, tal vez sea por la velocidad de muestreo
¿Que puedo esperar si le pongo audio en lugar de senoidal con estos resultados?
Sonara aunque sea algo?

Haa y el micro lo que hace es leer el ADC y multiplicar el valor para hacer mas grande o mas chiquita la señal eso lo elijo con dos pulsadores
Imágenes Adjuntas
Tipo de Archivo: png 100.png (19,7 KB (Kilobytes), 30 visitas)
Tipo de Archivo: png 1KHZ.png (22,8 KB (Kilobytes), 29 visitas)
24/04/2014 #17

Avatar de Daniel Meza

Eso es debido a la frecuencia de muestreo. ¿cómo es tu programa que procesa esa parte?, quizá se pueda optimizar para elevar la velocidad (de preferencia hacerlo en ASM)
24/04/2014 #18

Avatar de cosmefulanito04

También tené en cuenta que la red de acople funciona como un filtro pasa bajos cuya frecuencia la fija el capacitor y el paralelo de las resistencias.
24/04/2014 #19

Avatar de Edwar09

Ok, verificare la frecuencia de corte del filtro

y mi programa es en realidad solo una linea

Código:
PORTB = amplitud*read_adc(0) ;
Donde amplitud es una variable del tipo float que aumenta o decrementa mediante dos interrupciones del micro.La cambiare al tipo char .
Y la funcion read_adc trae un delay por defecto de 10 microsegundos que para estabilizar el voltaje.
Seria buena idea en ensamblador pero no conozco nada de eso xD
24/04/2014 #20

Avatar de papirrin

porque no lo haces por PWM? en lugar de R2R como entendi que lo haces no?
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Audio: Discusión General

Cerrar
Foros de Electrónica » Sistemas de Audio » Audio: Discusión General

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.