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 #21

Avatar de Edwar09

Ha, es que se trata de hacerlo solo con el DAC y tratar de obtener el mejor resultado posible.
25/04/2014 #22

Avatar de Daniel Meza

Por cierto ¿usas un dac paralelo o serie?
25/04/2014 #23

Avatar de chclau

Edwar09 dijo: Ver Mensaje
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
Yo probaria no haciendo ninguna operacion matematica en el medio (portB = read_adc(0)) para obtener el maximo de datos posibles a la salida, el procesamiento lo harias despues off-line. O es una aplicacion en tiempo real?
25/04/2014 #24

Avatar de papirrin

Daniel Meza dijo: Ver Mensaje
Por cierto ¿usas un dac paralelo o serie?
si coloca el valor en todo el puerto es paralelo, casi puedo apostar que es R2R.

a nivel sofware y por ASM se puede hacer con mas eficiencia con PWM, y tengo entendido que haciendo un "hibrido" (PWM+R2R) se puede tener todavia mejor calidad.

ya hace tiempo habia leido y visto las mejores opciones para hacerlo, pero me detuvo y me sigue deteniendo mi falta de practica en programacion ASM.

---------- Actualizado después de 15 minutos ----------

@ Trilo-Byte

yo hise ese proyecto para alguien que me lo encargo para pasar una materia
normalmete a mi no me gusta pedir los trabajos de otros, pero debido al interes que tengo en este tema me atrevo a pedirte si fuera posible que nos compartas el proyecto, a mi en realidad me gustaría saber como se escucha bajo esas condiciones tan "limitadas"
25/04/2014 #25

Avatar de cosmefulanito04

En mi opinión, yo lo haría en assembler, hay tiempos que en C cuestan manejar ahí, limitás mucho la frecuencia máxima de muestreo.
25/04/2014 #26

Avatar de Edwar09

Daniel Meza dijo: Ver Mensaje
Por cierto ¿usas un dac paralelo o serie?
El DAC es paralelo.

chclau dijo: Ver Mensaje
Yo probaria no haciendo ninguna operacion matematica en el medio (portB = read_adc(0)) para obtener el maximo de datos posibles a la salida, el procesamiento lo harias despues off-line. O es una aplicacion en tiempo real?
Si es en tiempo real y esa multiplicacion que hago controla la amplitud de la salida.

Suena interesante eso del hibrido que comentas papirrin. Pero para esta aplicacion no puedo usar PWM esa la condicion.
Lo haria en ASM pero no conosco elleguaje.
25/04/2014 #27

Avatar de Daniel Meza

Bueno, si no se puede por ese camino del ensamblador, ¿que dices de elevar la frecuencia de muestreo investigando si se puede acelerar el reloj del ADC?. El AT328 tiene un preescaler antes de la entrada de reloj al ADC. ¿Que ajustes tienes al configurar el ADC?

adc.png
25/04/2014 #28

Avatar de chclau

Edwar09 dijo: Ver Mensaje
El DAC es paralelo.



Si es en tiempo real y esa multiplicacion que hago controla la amplitud de la salida.

Suena interesante eso del hibrido que comentas papirrin. Pero para esta aplicacion no puedo usar PWM esa la condicion.
Lo haria en ASM pero no conosco elleguaje.
En ese caso en lugar de multiplicacion yo lo limitaria a hacer shift obteniendo multiplicaciones y divisiones por multiplos de dos, mas limitado pero muchisimo mas rapido que una multiplicacion
25/04/2014 #29

Avatar de cosmefulanito04

El tema es que al meter una señal tan chica (500mVp), está haciendo pelota la resolución del ADC, ya que su rango de entrada solo irá de 2 a 3v.

No cuesta nada hacer la amplificación en forma analógica que es bastante sencilla, se ahorra ese tiempo que menciona chclau y aprovechás al máximo el ADC.
25/04/2014 #30

Avatar de papirrin

Definitivamente no es el primer tema que veo de esto y no sera el ultimo, XD...

todos los que he visto mas o menos terminan en : "para que te la complicas compra un amplificador, un microcontrolador no fue diseñado para eso"

la alternativa es hacerlo como el compañero trilo-byte sin importar para nada la calidad y no preocuparse de nada mientras parezca que se escucha XD
25/04/2014 #31

Avatar de cosmefulanito04

Es que en realidad un uC asi a secas como amplificador no se que tan buena idea sea.

Supongo que el ADC es de 10bits, a 5v son casi 5mV (poco menos), por lo tanto tu rango de entrada será de solo 200 cuentas .

La digitalización la veo útil cuando se:

- Quiere transmitir.
- Quiere procesar en algo mucho más complejo, por ej. algún filtro digital que pueda variar sus frecuencias de corte.
25/04/2014 #32

Avatar de Dr. Zoidberg

Por que no ponemos cuales son los requerimientos reales de la conversión AD, empezando con el ancho de banda de la señal de entrada y siguiendo con algun datasheet del micro que se va a usar????

Tal como dice cosme, es un desastre usar la quinta parte de la resolución del ADC para hacer la conversión y luego multiplicar por software (en punto flotante! ) para creerse que se ahorraron un amplificador analógico y que el resultado obtenido es el real.

Por otra parte, hace falta información del micro+adc, por que están suponiendo que la conversión es secuencial con el resto del procesamiento, pero bien puede ser concurrente y que el ADC soporte dispararse automáticamente a tiempos prediefinidos y guardar los resultados en posiciones de memoria contiguas (eso lo hacía el Intel 80196KB hace más de 20 años), con lo cual solo informa con una interrupción al final de la adquisición... y si no lo hace así, puede escribirse un poco de código para que resulte en el mismo efecto.

De todas formas, sin requerimientos claros esto ya lleva dos hojas de adivinanzas...
25/04/2014 #33

Avatar de cosmefulanito04

Comparto con lo que dice el Dr.

De la lista anterior me faltó el caso más importante, almacenamiento y reproducción .
25/04/2014 #34


que sentido tienen este invento??
25/04/2014 #35

Avatar de Edwar09

Daniel Meza dijo: Ver Mensaje
Bueno, si no se puede por ese camino del ensamblador, ¿que dices de elevar la frecuencia de muestreo investigando si se puede acelerar el reloj del ADC?. El AT328 tiene un preescaler antes de la entrada de reloj al ADC. ¿Que ajustes tienes al configurar el ADC?
Archivo Adjunto 109158
Si mira lo tengo configurado así:

ADCSRA=0xA3;

Ahora veo que el factor de division del reloj es 8.
Lo modificare para que divida por 2 .

chclau dijo: Ver Mensaje
En ese caso en lugar de multiplicacion yo lo limitaria a hacer shift obteniendo multiplicaciones y divisiones por multiplos de dos, mas limitado pero muchisimo mas rapido que una multiplicacion
Bien probare tambien esa opcion.

cosmefulanito04 dijo: Ver Mensaje
El tema es que al meter una señal tan chica (500mVp), está haciendo pelota la resolución del ADC, ya que su rango de entrada solo irá de 2 a 3v.

No cuesta nada hacer la amplificación en forma analógica que es bastante sencilla, se ahorra ese tiempo que menciona chclau y aprovechás al máximo el ADC.
Entonces haré la amplificación analógica antes de meterlo al ADC para que lo aproveche al máximo.


analogico dijo: Ver Mensaje
que sentido tienen este invento??
Solo entra al micro la señal de un mp3 o un celular y sale por un puerto hacia el DAC pero mas grande . No es invento xD.
25/04/2014 #36

Avatar de Daniel Meza

Siendo así manos a la obra, por mera experimentación pero a menos que proceses la señal digitalmente con el micro no creo viable amplificar con el uC, pero como te digo... experimenta
25/04/2014 #37

Avatar de Edwar09

Bueno si se nota una leve mejoría cambiando la velocidad del reloj del ADC
y con una señal senoidal a la entrada del ADC de 1 Khz y 5 Vpp.
Pero a 10 Khz no se ve nada bien.
Aqui adjunto las fotos de mis resultados, no habra algun otro registro del ATmega que pudiera modificar haha? O que frecuencia debe de ser nesesaria alcanzar para que se escuche bien.
Imágenes Adjuntas
Tipo de Archivo: png 1 khz Clock con Division por 2.png (21,7 KB (Kilobytes), 10 visitas)
Tipo de Archivo: png 1 Khz Clock con Division por 8.png (27,6 KB (Kilobytes), 8 visitas)
Tipo de Archivo: png 10 Khz.png (20,7 KB (Kilobytes), 9 visitas)
25/04/2014 #38

Avatar de Daniel Meza

Puedes intentar con otro cristal de mayor frecuencia pero siempre respetando las consideraciónes del fabricante cobre el tiempo de adquisición del ADC (lee en la hoja de datos), por demás, si sólo quieres reproducir voz con esa frecuencia es suficiente
Respuesta
¿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.