# En busca de un microcontrolador que tenga salida analógica.



## Zettaextremo (Ene 8, 2010)

Feliz dia, tengo una pregunta, pues me atore en un proyecto de reproducion de sonidos con micrcontroladores, hasta ahora solo habia hecho experimentos con tres pics 16f84a, pero me atoré pues se requiere crear una onda compleja. 
Por eso anduve investigando que el pic 16f877 tiene una salida analogica, pero en si no saben como funciona este puerto?.
Sinceramente me ahorraria mucho adquirir un micro con capacidad para poder reproducir una ecuación que yo le pueda programar en su memoria, pero dudo que existan micros que manejen senos, u.u, en verdad sería muy genial recibir una señal digital como valor de entrada, que el micro use la ecuacion indicada, y responda con una salida analogica mmm espero que alguien pueda indicarme si el 16f877 sería capaz de esto.
Saludos.


----------



## Vegetal Digital (Ene 8, 2010)

Creo que te referis a un conversor digital analogico (DAC) como el de las placas de sonido. el 16f877 tiene ADC, que es lo contrario al DAC.

podes buscar un PIC con salida analogica acá:
http://www.microchip.com/maps/microcontroller.aspx
hay unos dsPIC que tienen.

saludos

[EDITO]
Lo que podes hacer es usar los modulos PWM para variar la tensión promedio pero dudo que funcione con audio.


----------



## sebitronic (Ene 8, 2010)

Hola, otra cosa que podes hacer es usar un PCF8591 que es un ADC y DAC por I2C tien una salida analogica que escribis con el micro y aparte tenes 4 canales de ADC que los podes usar como independientes o como diferenciales.


----------



## Zettaextremo (Ene 8, 2010)

hola, mmm orale no habia tomado en cuenta los conversores de digital a analogico :3 mmm investigare más acerca de ellos, quizas si iva por un camino incorrecto pero lo bueno es que ya me guiaron para salir de mi estancamiento, gracias.
Una pregunta, en que lugar de este foro se puede hablar de frecuencias sonoras, muestreos, y rango de amplitud?... pero enfocado no en musica si no en las frecuencias que usa el hombre para hablar.


----------



## sebitronic (Ene 8, 2010)

Te advierto que la fonetica del hombre es muy compleja aun mas que la de un instrumentos y que las señales sonoras de ese tipo estan conpuestas por muchos tonos puros uno sobre el otro.


----------



## Zettaextremo (Ene 8, 2010)

si, gracias 
en estas vacaciones sacrifiqué algunos dias para hacer una extensa investigación acerca de la voz humana, el problema es aplicar todo lo que encontré en forma de circuitos para ver si es cierto, me da gracia que yo leí muchos documentos de la fonetica humana y pues tuve que salir del pais, llevando mi laptop pero sin poder conectarme a internet ni si quiera tener una biblioteca cerca, así que me hice mis propias teorias de audio, lo que despues vi hace poco en un tema de una revista ya estaban hechas jeje. Me inventé una manera de como crear una onda senoidal en forma de muestro y que la frecuencia de muestreo fuese de 40kHz n.n, supuse que la amplitud total de la onda deberia dividirse en n partes y asi poderle asignar un numero binario a cada parte y resulto que todo ya estaba hecho y asi funciona actualmente la reproduccion de sonidos, n.n es como si volviese a inventar la rueda pero creo que fue genial.
Bueno lo único que no comprendi de la fonetica del hombre fue la variacion de intensidad que tiene cada armónico que se genera a partir de la frecuencia fundamental, pues para reproducir vocales se necesitan que 5 armonicos sean los mas sonoros, y los demas vayan disminuyendo en intensidad.
Hace poco hice un proyecto tomando solo los armónicos principales y logre reproducir las vocales, pero asi como que muy robótico y lamentablemente es donde me atoré, pues use tres micros para tres armónicos y el hombre tiene como 50 armónicos lo cual no es factible usar 50 micros u.u, por eso quisiera aprender la conversion digital a analógico, crear unas ecuaciones y facilitarme la vida.
Saludos, n.n gracias por leer, a a a si feliz año jeje ya cuando


----------



## pepechip (Ene 8, 2010)

Hola
Puede que no te sirva, pero te recuerdo que algunos pic, como el 16f628 disponen de comparadores analogicos, que a su vez disponen de un modulo de referencia interna, el cual puedes utilizar para obtener aproximadamente 22 escalones de tension (16 del rango alto + 6 del rango bajo). Esta tension en el pic 16f628 la puedes tener disponible en el pin RA2.

Te pongo la relacion de las distintas tensiones que puedes obtener:
*Rango bajo:* 0,00-0,21-0,42-0,63-0,83-1,04-1,25-1,46-1,67-1,88-2,08-2,29-2,50-2,71-1,92-3,13V
*Rango alto:* 1,25-1,41-1,56-1,72-1,88-2,03-2,19-2,34-2,50-2,66-2,81-2,97-3,13-3,28-3,44-3,59V


----------



## pic-man (Ene 8, 2010)

la verdad este es un tema muy interesante, a mi también me interesaría trabajar en un proyecto de sintetización de voz con un microcontrolador, lamentablemente no tengo los conocimientos necesarios. Si te sirve, existe un proyecto llamado Cantarino, que es un sintetizador de voz utilizando arduino. Tal vez en su página encuentres información sobre la implementación realizada y puedas tomar ideas o directamente colaborar con ellos, aunque tu no se si quieras utilizar un microcontrolador pic.

De todas formas es un proyecto interesante y me gustaría, si fuera posible, que subieras toda la información que vayas generando con el proyecto.


----------



## Zettaextremo (Ene 8, 2010)

pepechip interesante el uso de ese micro que recomiendas, de hecho sabes, como solo dispongo de pics 16f84a me las ingenie para tener 8 "escalones" de voltaje a traves de resistencias y otros componentes para tener una onda senoidal... amm si me preguntan si funcionó pues no lo se pues no dispongo de osciloscopio, pero al oido se noto una clara diferencia entre un tono que elaboré anteriormente de onda cuadrada, y ese mismo tono con una onda simulada casi senoidal, este ultimo sono como que más natural o mas raro.
Para el ultimo usuario, la verdad si es interesantisimo esto de la sintetiización de voz, pero hasta ahora, mis apuntes solo me llevaron a un callejon sin salida, con gusto cuando los corrija los publicaré pues aunque es parte de mi tesis, el conocimiento pues podemos tenerlo todos, de hecho me gustaria tener un equipo de trabajo pues es demasiada informacion que se tiene que ver para proyectos grandes, en mi universidad lamentablemente soy de los unicos que se avientan en proyectos asi de este tipo, tengo infinidad de amigos listos pero cada quien vive con diferentes intereses, hasta yo mismo descuido los estudios y estos proyectos por andar de vago o con al guitarra.
Pero bueno para empezar con la base del proyecto, es necesario tener conocimientos ensambler para entender mis apuntes, bueno no tanto pues lo importante es generar los tiempos precisos con el programa.
Ahora bien, hablando de las frecuencias que usa el hombre, todas parten de un tono de 125 Hz, frecuencia fundamental a la que vibran las cuerdas bucales. 
La voz se descompone en armonicos de esta frecuencia, ejem.
125 Hz
250 Hz
325 Hz
500 Hz
así hasta llegar a los 6000 Hz que es el ultimo armonico que puede alcanzar el hombre.
Sin alterar esas frecuencias, la intensidad sonora disminuiria desde los 125 Hz (80db) hasta los 6000 Hz (1db) decremento que ocurre de manera lineal.
Pero en el hombre existen huecos o cajas en el aparato fonador lo que produce resonancias y por lo tanto, lo mencionado anteriormente (decremento lineal) ya no se puede aplicar, pues estas resonancias aumentan el volumen de ciertas frecuencias (ejem 750, 1375, 2125, 3625, 4500), por lo general siempre son 5 frecuencias las que aumentan y dependiendo de que frecuencias se incrementan pues se produce el sonido deseado, en el ejemplo anterior es para la vocal "a"...
creo que la verdad asi no me entenderán jaja mejor terminare mis apuntes con graficas y programas n.n saludos!!!

okei ya investigue acerca de los convertidores DAC y no andaba muy lejos de unas teorias que hice.

Una forma de convertir una señal digital a analogica, es de de cierta manera sumar los voltajes que salen de 8 puertos con un OPAMP en modo sumador, genial gracias, ya elabore un circuito en livewire y funciono correctamente n.n tendre ahora que hacer calculos para ver si se puede optimizar el diseño realizado, gracias


----------



## Alekvasb (Ene 10, 2010)

El Psoc de Cypress si maneja estos módulos, pero no sé que tan fácil les sería pasar el proyecto a esos micros...


----------



## Zettaextremo (Abr 9, 2010)

Hola a todos n.n al final desisti en el uso del pic 16f84a,

y estoy viendo la posibilidad de usar otro componente mas poderoso, porque diseñe un programa en c++ que a través de ciertas variables que nosotros le introduzcamos obtenemos a la salida de 8 puertos un código del voltaje que se le aplicará al parlante.

El soft ya lo tengo, pero usé librerías iostream, math y stdlib, y estos no se si puedan ser introducidos en digamos en un pic 18f2455 o un 16f877.

Si si se pueden usar estoy salvado wiiiii el proyecto quedara listo =)


----------



## josb86 (Abr 10, 2010)

pues podrías utilizar un vhdl, según la programación es medio fácil casi gráfica eso si son caros


----------



## sammaael (Abr 21, 2010)

y... funciono?(adadadhuhdaudhaudah)


----------



## antiworldx (Abr 21, 2010)

No tienen los microcontroladores salida analogica como tal, pero el modulo pwm hace cualquier cosa en análogo, y con un poco de calculos, haces cualquier onda a cualquier potencia...


----------



## wacalo (Abr 21, 2010)

Josb dijo: "pues podrías utilizar un vhdl, según la programación es medio fácil casi gráfica eso si son caros"
Si alguien puede explicarme que es "un vhdl", lo cuales según josb86 son caros.


----------



## Zettaextremo (Abr 28, 2010)

jeje no a funcionado aun porque nunca llegaron los pics  jaj u.u pedi en la escuela un 2455 y en una tienda clandestina 5 18f 4550 jeje pero lo bueno es que no he soltado feria mmm será por eso? jeje naa pero el 2455 llega el siguiente jueves al fin T.T


----------



## tiopepe123 (Abr 29, 2010)

Para estos menesteres se utiliza matlab para hacer las pruebas facilmente y una vez verificado el funcionamiento pasar al microcontrolador.

Los DAC se pueden hacer con simples resistencias al estilo R-2R o utilizar un dac comercial que da una gran calidad aunque sea de 8 nits, si ademas añades un control de volumen con un fet y un aplificador seguidor puedes mejorar la dinamica sin necesitar mas resolucion.

El PWM es  el sistema mas economico  para pasar a analogico pero esta muy limitado en frecuencia y debe vigilarse con el ruido que produce.

Ideal para baja frecuencia para crear envolventes y atacar el control de volumen


----------



## Zettaextremo (May 21, 2011)

tiopepe123 dijo:


> Para estos menesteres se utiliza matlab para hacer las pruebas facilmente y una vez verificado el funcionamiento pasar al microcontrolador.
> 
> Los DAC se pueden hacer con simples resistencias al estilo R-2R o utilizar un dac comercial que da una gran calidad aunque sea de 8 nits, si ademas añades un control de volumen con un fet y un aplificador seguidor puedes mejorar la dinamica sin necesitar mas resolucion.
> 
> ...





Hola felices tranquilidades ^^...
Desde hace mas de un año que me aleje de mis proyectos personales, ya saben novias :/, bien a reiniciar , respecto a este tema, me he quebrado la cabeza intentando poner en operación el DAC0800, he intentado de todo, con el datasheet, sin éste, de proyectos de usuarios en la net que aseguran que si funciona, he utilizado otro integrado por si se me habia dañado y en fin, ha sin olvidar usar mi pulsera a tierra , cuando hice la conexión que aparece en el datasheet y que esta en unos cuantos temas aqui en foros de electrónica, el dac se me calentaba (+-15V) y no producia un voltaje de salida (por supuesto que habia puesto un convertidor corriente-voltaje, es más coloque diferentes formas de conexión), mi esperanza es un circuito que es a +-5V aunque no produce una salida lineal (ojo las resistencias empleadas para la corriente de 1mA o 2mA son identicas) u.u asistí con un profesor de mi uni y me dio la idea de que si no puedo hacer lineal la salida con el integrado entonces modifique el programa de 8 bits para que sea lineal...

 por otra parte a esto lo llame síntesis de voz para mi robot Bo, por ahora no tiene mas que un pic16f84a como controlador(el cual quiero reemplazar por un uc Z80), mi etapa convertidora es un grupo de resistencias el cual quisiera sustituir por un dac, mi amplificador es un tl081 y su pot digital es un demultiplexor analógico creo 4051B, no se si agregarle una etapa pasabajas para generar ondas más cercanas a lo ideal... ha el parlante de 8ohms 

pero en sí mi dolor de cabeza es ese dac#@%$!#$% -.- le seguiré todo el día... no no si lo hago funcionar pondré un tutorial para novatos con dolores de cabeza ...

saludos compañeros, pasenla chido!!





PD. Ya funciona!!!!  en horabuena me voy a almorzar y correr y a celebrar en la noche wu wu ea ea ea 3 semanas de exprimir neuronas  y al fin hice funcionar el dac0800


----------



## TheSpartan66 (Jun 25, 2011)

hola que tal como le hiciste para hacerlo funcionar? yo no encuentro forma de hacerlo funcionar, ya vi la datasheet, ya busque circuitos, ya lei un libro donde esta el esquematico pero nadamas no... ya me empiezo a frustrar .. :S


----------



## RUIZ13 (Jul 6, 2011)

con un picaxe solucionas lo de las salidas analogicas lease el segundo manual de ayuda de el programming editor, en otras palabras es el programa con el cual se puede programar los picaxe y solucionado, creo que con uno de 8 patas el 8M solucionas investigalo tu le puedes programar sonidos y de paso crreo que ese mismo chip trae varias canciones en la memoria ejemplo rodolfo el reno


----------



## Sebastian1989 (Jul 6, 2011)

El microcontrolador propeller de parallax es capaz de generar señales de audio complejas, el software de programacion viene con unos ejemplos donde el propeller se pone a cantar y moviendo el mouse uno lo hace mas agudo o grave.


----------



## curioso207 (Jul 13, 2011)

hay un micro de texas instruments que te puede reproducir voz checa el sitio de www.ti.com este micro viene con notas para esa aplicacion


----------



## antiworldx (Jul 14, 2011)

Están hablando de procesadores de voces de audio???


----------



## maverick_007 (Jul 17, 2011)

Hola, existe un tipo de microcontrolador llamado Psoc de la empresa cypres y ese micro si tiene el conversor analogo digital y el digital analogo. vi un ejemplo del uso de ese tipo de microcontrolador en un post en este mismo foro esta el grabador (por puerto paralelo) y los entornos de programacion cuando lo encuentre te dejo el link ( estoy pensando cambiarme a esa familia de uC).

saludos


----------



## rojjo (Jul 18, 2011)

hola:

texas intruments tiene varios, el que recuerdo es el msp430f169.
existen otros mas veloces de la familia msp430f2xx

saludos


----------



## Zettaextremo (Jul 26, 2011)

TheSpartan66 dijo:


> hola que tal como le hiciste para hacerlo funcionar? yo no encuentro forma de hacerlo funcionar, ya vi la datasheet, ya busque circuitos, ya lei un libro donde esta el esquematico pero nadamas no... ya me empiezo a frustrar .. :S



Hola n.n disculpa no habia entrado por andar en la chamba te refieres al dac0800?

yo solo lo aplico para +-5V  y funciona bien si la conexión es la que buscas para este integrado te paso mi circuito...



maverick_007 dijo:


> Hola, existe un tipo de microcontrolador llamado Psoc de la empresa cypres y ese micro si tiene el conversor analogo digital y el digital analogo. vi un ejemplo del uso de ese tipo de microcontrolador en un post en este mismo foro esta el grabador (por puerto paralelo) y los entornos de programacion cuando lo encuentre te dejo el link ( estoy pensando cambiarme a esa familia de uC).
> 
> saludos



D: interesante... yo logre solucionar mi problema de conversion ahora solo me queda un problema de ruido en un amplificador de potencia ^^ algo se me paso filtrar...

(una curiosidad... yo conecte los puertos de un ADC y un DAC y escuche alguna estacion de radio con canciones de tipo Banda   jamas logre saber porque ;P ni tampoco que estacion fue la que capte S: )


----------



## curioso207 (Jul 27, 2011)

checa la familia de texas instruments ese trae un convertidor dac de salida y puedes generar cualquier forma de onda


----------



## felipeyeah (Jul 27, 2011)

creo que lo que necesitas es un dsPIC, 

en el libro:

'dsPIC diseño práctico de aplicaciones. Jose María Angulo Usartegui, Aritza Etxebarría Ruiz, Ignacio Angulo MArtinez, Iván TR+ueba Parra. Editoria Mc Graw Hill' 

se explican a detalle las propiedades de estos dispositivos..


----------

