TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: joruji en 22 de Mayo de 2007, 11:42:05

Título: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 22 de Mayo de 2007, 11:42:05
Hola, mi problema es que quiero utilizar un único cristal para un pic y otro dispositivo que tambien necesita una fuente de reloj.

El montaje lo tengo claro, he conectado el cristal a las patillas osc1 y osc2 del dispositivo secundario, y he utilizado la patilla clkout como fuente de reloj para el PIC a traves de la patilla clkin. El problema es que haciendo solo esto no consigo hacer funcionar el pic, supongo que necesitaré hacer algún tipo de declaración dentro del programa para que el pic se entere de que tiene una señal de reloj que le está entrando por la patilla clkin, pero la verdad es que no se que tipo de expresión he de utilizar. He leido algo en el foro de que hay que activar el fuse ec oscillator del pic, pero no se como se hace y tampoco tengo muy claro de que es el fuse ec ese.

Espero que los que están acostumbrados a este programa me sepan decir cual es la instrucción que he de utilizar para hacer funcionar el pic de esta manera. Por cierto, se me olvidaba, el programa que utilizo es Pic Basic Pro

Un saludo.
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: Nocturno en 22 de Mayo de 2007, 12:29:38
No sé cómo se utiliza el Pic Basic Pro pero si utilizas Winpic800 puedes modificar los fuses en su propia interface. Poniendo al segundo pic el fuse EC lo tendrás resuelto.
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 22 de Mayo de 2007, 14:08:49
vale, leyendo un poco he averiguado que utilizando ASM podria activar el fuse de la siguiente manera desde mi programa

asm
@ DEVICE pic16f84a, "fuse"_ON
endasm

Lo que ocurre es que he puesto "EC" donde pone "fuse" y me da error. Como deberia escribir el fuse EC para activarlo?
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: navaismo en 22 de Mayo de 2007, 14:27:25
Con que PIC quiers hacerlo??? si miras en la carpeta donde estan los archivos del compilador de PBP existe una carpeta que dice INC ahi buscas el modelo del PIC a usar y lo abres con el MCS o Bloc de notas. Ahi viene todos los registros y Fuses de tu pic. busca como es la sintaxis del fuse en especifico y basta con poner en tu programa al inicio

@DEVICE y el fuse sin usar ASM ENDASM
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 22 de Mayo de 2007, 14:48:43
ok, vale he encontrado los fuses de mi pic, que es el 16F84a, pero no existe el fuse EC que es el que me había encontrado leyendo por el foro y que servía para lo que yo quería. He mirado para el 16f877 que tambien es un pic que tengo que utilizar, pero tampoco he encontrado el fuse ese.Ahora que empezaba a aclararme, resulta que ya no se como decirle al pic que utilice el reloj externo.  :(
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: navaismo en 22 de Mayo de 2007, 15:21:16
Para ambos pics mediante la directiva @DEVICE tienes estas opciones del oscilador:

RC_OSC....Oscilador mediante capacitor y resistor     
HS_OSC....Oscilador mediante crystal o resonador de alta velocidad externo
XT_OSC....Oscilador MEDIANTE CRYSTAL O RESONADOR EXTERNO   
LP_OSC....Oscilador mediante un crystal de bajo poder.


Al parecer por la imagen del data sheet del 16f84a de la pagina 24  puedes usar XT HS o LP para usar una señal externa.

En PBP el oscilador default es XT osea externo de 4mhz default siempre y cuando no se le diga lo contrario.

Una solucion rapida es usar un 16f88 que posee oscilador interno.

Saludos
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: Nocturno en 22 de Mayo de 2007, 15:53:51
Me temo que el 16F84 no contempla la posibilidad de una señal de clock externa directamente  :(
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 22 de Mayo de 2007, 16:58:38
Pero debe haber alguna manera, porque en el datasheet te indican que se le puede asociar una señal de reloj externa a traves del pin16 que es tanto osc1 como clkin. Después, tal y como indica navaismo, tienes diferentes modos de operación, tanto para un cristal directo (a osc1 y osc2) como para uno externo de otro dispositivo (a clkin). Y yo que me pensaba que esto iba a ser una tontería... :?
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: navaismo en 22 de Mayo de 2007, 17:23:54
Insistiendo un poco no podrias cualquier otro pic con oscilador interno???
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: Nocturno en 22 de Mayo de 2007, 17:27:44
Retiro lo dicho, según la página 25 de la datasheet, los modos XT,HS y LP deberían servirte para oscilador externo.
Si el primer PIC oscila perfectamente deberías buscar la avería por otra parte.
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 23 de Mayo de 2007, 06:45:38
ya, pero quieres decir que si escribo en mi programa "@ DEVICE pic16f84a, XT_OSC" el pic me reconocerá el reloj externo?. Se supone que los modos XT,HS yLP simplemente afectan al modo de operación o tipo de reloj, pero no dice nada de que active o desactive el operar con un reloj externo. Esta tarde lo probare a ver, ya os contaré.

Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: navaismo en 23 de Mayo de 2007, 11:34:30
Nota:  solo es @DEVICE XT_OSC o HS_OSC o LP_OSC

Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 23 de Mayo de 2007, 13:47:26
bueno, he probado el @DEVICE XT_OSC (tengo un cristal de cuarzo de 8mhz), y no he conseguido hacer reaccionar al pic. El programa debe funcionar ya que simplemente le digo que active o desactive un pin. Además, lo he probado con el cristal conectado al pic directamente y así funciona. Habra que buscar otra alternativa a lo del XT_OSC  :(
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: navaismo en 23 de Mayo de 2007, 13:54:49
xt es la default de microcode y es para 4Mhz intenta con HS. y mandanos un diagrama de como conectas todo.
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 23 de Mayo de 2007, 15:38:09
Nada, no hay manera ni con XT ni con HS. Donde debo poner el @DEVICE HS_OSC? supongo que al principio que es donde lo estoy poniendo. Debería poner además algún "define osc"?.

La manera en la que están conectados los dispositivos al reloj es la siguiente, por si ésto deja más claro como lo quiero probar:
(http://img130.imageshack.us/img130/7504/imagensr6.jpg)
                         
                         



Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: Nocturno en 23 de Mayo de 2007, 16:37:15
¿estás seguro que ese CLKOUT transmite señal de clock?, ¿lo has visto en osciloscopio/frecuencímetro?
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 23 de Mayo de 2007, 18:15:44
No he medido la salida de mi circuito, pero esa configuración sí estoy seguro de que funciona ya que viene en el datasheet del tda5051( es un modem para transmitir datos por la red eléctrca). De hecho tengo dos posibilidades, una útilizando el pic como maestro y el modem como esclavo y ésta que yo utilizo. He optado por ésta porque puedo comprobar si funciona o no el pic, mientras que con la otra configuración me resultaría muy dificil comprobar si el módem funciona o no, ya que todavía no he conseguido transmitir. Hasta ahora tenía un cristal para cada dispositivo, pero como no lograba transmitir información con el módem opté por utilizar el circuito que proponían en el datasheet ya que puede que de esa manera funcionen el pic y el modem correctamente sincronizados. No se, la verdad es que el circuito me está trayendo bastantes quebraderos de cabeza para hacerlo funcionar...
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: sander en 23 de Mayo de 2007, 19:19:32
Citar
No he medido la salida de mi circuito, pero esa configuración sí estoy seguro de que funciona ya que viene en el datasheet del tda5051( es un modem para transmitir datos por la red eléctrca).


Dejame corregirte , no es que la configuracion funcione , si no que deberia funcionar, y para verificar que esta funcionando y eliminar este posible fallo deberias medirla , segun la hoja de datos del TDA5051 la señal en este pin tiene una frecuencia que es la mitad a la del cristal , es decir  4 MHz, y ademas de verificar la frecuencia deberias ver tambien la amplitud de esta señal ,  ya que se puede dar el caso que no tenga suficiente amplitud para alimentar al PIC.

Saludos
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: jfh900 en 23 de Mayo de 2007, 20:47:55
Es un proyecto muy interesante.

Un saludo.
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: Nocturno en 24 de Mayo de 2007, 02:20:47
... no es que la configuracion funcione , si no que deberia funcionar, ...
Exacto, si no dispones de instrumental, podrias cargar un programa que cuente pulsos en el PIC y probarlo con cristal externo hasta estar seguro que el TDA te genera clock válido.
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 24 de Mayo de 2007, 13:21:19
He medido la señal de entrada osc1 del módem y la señal de salida en el pin clkout con un osciloscopio y obtengo exactamente la misma señal sinusoidal. Por tanto ya sabemos que a la entrada del pin clkin del PIC tenemos la señal de reloj. Dios, no hay manera...! A buscar otra posibilidad. No ha probado nadie a hacer algo parecido?
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: jfh900 en 24 de Mayo de 2007, 13:24:55
Donde has conseguido los integrados, ya que estoy interesado en adquirirlos. Seguro que entre los dos podriamos hacer funcionar el circuito.

Un saludo
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: Nocturno en 24 de Mayo de 2007, 13:28:56
Mmmm..., ¿sinusoidal?, prueba a cuadrarla con una puerta lógica Schmitt-Trigger (o un operacional) antes de inyectarla al PIC. Puede que el PIC necesite una señal cuadrada para eso...
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 24 de Mayo de 2007, 14:01:38
con esa misma señal pero insertada directamente al PIC por las patillas osc1 y osc2 funciona, nose porque no debería funcionar insertando esa misma señal pero solo por el pin osc1. Respecto al TDA5051 lo pedí en RS en su página de amidata, no recuerdo por cuanto salía pero estaba por los 10euros. Yo no lo pagué, lo pagó la universidad, ya que es para el proyecto de fin de carrera  :)
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: Nocturno en 24 de Mayo de 2007, 14:36:02
Bueno, pero ahora no puedes meterla por los dos pines; sólo por uno. No pierdes nada probando  :-)
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 24 de Mayo de 2007, 14:49:29
Lo puedo intentar, pero el problema es que la placa la tengo ya hecha en pcboard y no en protoboard por tanto modificar cosas es un poco más dificil, sobretodo si tengo que añadir cosas. Es más simple cortar pistas como ya habia hecho con el cristal del pic. Eso sí, llevando cuidado de no cargarme otra parte del circuito  :)
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: Nocturno en 24 de Mayo de 2007, 15:33:41
Entiendo. Pues como quieras, sólo es una idea porque realmente no sé por donde tirar con ese fallo.
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 24 de Mayo de 2007, 18:37:21
Agradezco toda la ayuda que me estais dando, la verdad es que yo tampoco se ya por donde tirar. Pensaba que sería una chorrada, pero parece que es más de lo que parecía.  :(

Yo creo que debe haber alguna instrucción que habilite el modo de operación como esclavo. Aquello de activar el fuse EC no creo que lo dijeran por nada,de hecho salía en un post donde querían hacer lo mismo que yo pero con dos PICs y un reloj, lo que pasa es que no tengo ni idea de para que es ese fuse ni en que pics está disponible.

Como último recurso me queda cambiar el reloj y poner el PIC como maestro y el módem como esclavo, pero en ese caso habrá que ver de que modo puedo comprobar que el modem está operativo...
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: joruji en 24 de Mayo de 2007, 18:53:17
He buscado el post en el que hablaban sobre eso de poner 2PICs con un reloj y es el siguiente:
http://www.todopic.com.ar/foros/index.php?topic=8531.0 (http://www.todopic.com.ar/foros/index.php?topic=8531.0)

Jeje, resulta que los PICs de los que hablan son 16F84's como el mío, y la persona que saca el tema del fuse EC eres tú Nocturno :o. Siempre apareces en todo lo sitios..!!  :D
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: sander en 24 de Mayo de 2007, 20:13:55
Citar
He medido la señal de entrada osc1 del módem y la señal de salida en el pin clkout con un osciloscopio y obtengo exactamente la misma señal sinusoidal. Por tanto ya sabemos que a la entrada del pin clkin del PIC tenemos la señal de reloj. Dios, no hay manera...! A buscar otra posibilidad. No ha probado nadie a hacer algo parecido?

Esto me suena un poco raro , porque se supone que la la señal en CLKOUT del pic deberia tener una frecuencia de 1/4 el valor de la señal e CLKIN,

Por otro lado creo que la señal que debes ponerle a CLKIN debe ser cuadrada , encontre unos esquemas en el mid-range reference manual que muestra como alimentar el pic con una señal de reloj externa por CLKIN y se utilizan señales cuadradas.

Adjunto los dibujos.

Saludos
Título: Re: Problemas intentando utilizar dos dispositivos con un Oscilador
Publicado por: Nocturno en 25 de Mayo de 2007, 01:48:09
Jeje, resulta que los PICs de los que hablan son 16F84's como el mío, y la persona que saca el tema del fuse EC eres tú Nocturno :o. Siempre apareces en todo lo sitios..!!  :D
Sí :D, siempre respondo lo mismo porque lo he probado con éxito, pero en un 18F. No sabía que el 16F no lo tiene.