TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: ppalou en 30 de Marzo de 2005, 02:38:00

Título: Frecuencia DAC
Publicado por: ppalou en 30 de Marzo de 2005, 02:38:00
Buenas,

Tengo un problema con un DAC.

Estoy haciendo un generador de funciones y desde la PIC le envio los valores al DAC para que me saque un determinado tipo de onda. Me saca los tipos de onda que quiero perfectamente, y la frecuencia a la que quiero, lo miro en el bit bajo de datos en la PIC y la frecuencia es correcta.

Lo raro es que en el osciloscopio nos saca siempre 50Hz, no sabemos el porqué. Es extraño porqué si el DAC nos "entiende" la señal que le mandamos desde la PIC porqué no pinta la frecuencia correctamente?

Alguien tiene alguna sugerencia? Gracias
Título: RE: Frecuencia DAC
Publicado por: Nocturno en 30 de Marzo de 2005, 03:03:00
¿Qué significa eso de "y la frecuencia a la que quiero, lo miro en el bit bajo de datos en la PIC y la frecuencia es correcta"?
Pon aquí el código para que le echemos un vistazo.
Título: RE: Frecuencia DAC
Publicado por: ppalou en 30 de Marzo de 2005, 03:52:00
[cita title=Escrito originalmente por nocturno66]¿Qué significa eso de "y la frecuencia a la que quiero, lo miro en el bit bajo de datos en la PIC y la frecuencia es correcta"?
Pon aquí el código para que le echemos un vistazo.[/cita]

Yo tengo los valores que le paso al DAC en una tabla y lo que hago es

while ... {
si i>=limite_de_la_tabla {i=0;}
puerto_d = tabla;
delay_us(variable);
i++;
}


El valor de variable es lo que me fija la frecuencia de la señal que le paso al DAC, y la manera más fácil de mirarla es mirando el bit más bajo (LSB) del puerto_d

Título: RE: Frecuencia DAC
Publicado por: Nocturno en 30 de Marzo de 2005, 04:34:00
Entiendo lo de la frecuencia variable cambiando el valor del periodo, pero no lo de comprobarlo mirando el bit LSB del puerto_d.
Título: RE: Frecuencia DAC
Publicado por: ppalou en 30 de Marzo de 2005, 04:47:00
[cita title=Escrito originalmente por nocturno66]Entiendo lo de la frecuencia variable cambiando el valor del periodo, pero no lo de comprobarlo mirando el bit LSB del puerto_d.[/cita]

Te explico, si mi DAC trabaja con 8 bits :
- cuando el puerto d vale 0 (todos los pines a 0) el DAC me saca 0 Voltios
- cuando el puerto d vale 255 (todos los pines a 1) el DAC me saca 5 Voltios

En todos los valores intermedios el pin que sufre más modificaciones es el menos signficante del puerto d , el LSB del puerto D. Por eso si miro en ese pin la frecuencia de cambio se que frecuencia me tiene (tendría) que sacar el DAC.

Si no me entiendes te lo intento explicar de otra manera.
Título: RE: Frecuencia DAC
Publicado por: Nocturno en 30 de Marzo de 2005, 05:02:00
Vale, ahora sí te he entendido. Lo que haces es comprobar la frecuencia de actualización del valor del DAC, aunque no mides realmente la frecuencia que el DAC está generando.
Date cuenta que si dos valores consecutivos enviados al DAC son 0x01 y 0x03 no observarás ningún cambio en el LSB del puerto_d, puesto que estará encendido en ambos casos.
Se me permites una sugerencia, para hacer lo que quieres yo usaría un bit adicional que fuera invirtiéndose en cada ciclo, a modo de clock.
Título: RE: Frecuencia DAC
Publicado por: ppalou en 30 de Marzo de 2005, 05:53:00
[cita title=Escrito originalmente por nocturno66]Vale, ahora sí te he entendido. Lo que haces es comprobar la frecuencia de actualización del valor del DAC, aunque no mides realmente la frecuencia que el DAC está generando.
Date cuenta que si dos valores consecutivos enviados al DAC son 0x01 y 0x03 no observarás ningún cambio en el LSB del puerto_d, puesto que estará encendido en ambos casos.
Se me permites una sugerencia, para hacer lo que quieres yo usaría un bit adicional que fuera invirtiéndose en cada ciclo, a modo de clock.[/cita]

Y con ese bit que hago realmente? Se lo puedo enchufar al DAC de alguna manera para que sepa que frecuencia quiero de salida??
Título: RE: Frecuencia DAC
Publicado por: Nocturno en 30 de Marzo de 2005, 05:58:00
Ahora si que ya no entiendo nada de nada locolocolocolocolocoloco

Amo a ve, el DAC responderá a la frecuencia con que el PIC envíe datos al puerto_d, con independencia de que tú puedas verlo o no en un osciloscopio, ¿no?

Si tomamos como válida la afirmación anterior, tu problema no es que el DAC sepa la frecuencia de trabajo, sino saberlo tú mismo.

Si hasta aquí voy bien, te sugería que usaras otro pin del PIC como señal de clock para medir con el osciloscopio la frecuencia de salida de datos del PIC, pero no tiene nada que ver con el DAC.

¿Me he perdido?
Título: RE: Frecuencia DAC
Publicado por: ppalou en 30 de Marzo de 2005, 06:27:00
Escrito originalmente por nocturno66
Ahora si que ya no entiendo nada de nada locolocolocolocolocoloco

Amo a ve, el DAC responderá a la frecuencia con que el PIC envíe datos al puerto_d, con independencia de que tú puedas verlo o no en un osciloscopio, ¿no?

Si tomamos como válida la afirmación anterior, tu problema no es que el DAC sepa la frecuencia de trabajo, sino saberlo tú mismo.

Si hasta aquí voy bien, te sugería que usaras otro pin del PIC como señal de clock para medir con el osciloscopio la frecuencia de salida de datos del PIC, pero no tiene nada que ver con el DAC.

¿Me he perdido?


Claro, yo lo que supongo es que si me dibuja bien la señal está "entendiendo" bien los datos que le envio desde la PIC. Pero lo lógico seria que en la salida del DAC (donde tengo un AO) saliera esa misma frecuencia no?
Título: RE: Frecuencia DAC
Publicado por: Nocturno en 30 de Marzo de 2005, 06:36:00
No, la misma no, aunque sí debería ser proporcional.
Dependerá de los valores que contenga tu Tabla. Si en tu tabla se representa una onda completa cada 50 valores, pues la relación entre frecuencia de salida del pic y frecuencia de onda sería 1 a 50, por ejemplo.
Pero insisto en que no podrás medirlo con precisión si miras el bit lsb, porque puede ser que valores consecutivos no cambien este bit.
Título: RE: Frecuencia DAC
Publicado por: ppalou en 30 de Marzo de 2005, 06:58:00
[cita title=Escrito originalmente por nocturno66]No, la misma no, aunque sí debería ser proporcional.
Dependerá de los valores que contenga tu Tabla. Si en tu tabla se representa una onda completa cada 50 valores, pues la relación entre frecuencia de salida del pic y frecuencia de onda sería 1 a 50, por ejemplo.
Pero insisto en que no podrás medirlo con precisión si miras el bit lsb, porque puede ser que valores consecutivos no cambien este bit.[/cita]

Ya, lo del bit LSB lo decía para que se entendiese mejor.
En mi tabla hay 256 valores, 128 valores para la subida y 128 para la baja de la onda, por lo tanto toda la tabla digamos que es 1 representación de la onda.

Tienes razón, no estoy haciendo bien los cálculos:

Creo que sé porqué puede pasar. Nosotros tenemos, por ejemplo, una frecuencia de 4 KHz en los bits bajos del puerto de salida de la PIC. Pero esa frecuencia es la de los distintos valores de la tabla, no de la onda en si. Por lo tanto no podremos llegar a pintar una onda con la misma frecuencia.

Cálculo de la frecuencia de la onda del generador de funciones:

Frecuencia máxima PIC = 4KHz
Número valores tabla = 256
Frecuencia para "pintar" una onda = 4000/256 Hz = 15 y pico .  Del orden que nos da el osciloscopio.