# De asincrono a sincrono



## dkhiri (Jul 26, 2007)

Buenas a todos!
Estoy con un amigo intentando hacer un proyecto de comunicar un pic con un dispositivo. El problema que tenemos es que el pic es asincrono y el dispositivo es sincrono. He mirado que con la USART se puede configurar para que los datos salgan sincronos pero no somo capaces. He mirado varios ejemplos, tanto de este foro como de otros, pero estan en basic o assambler. ¿Alguien sabe como se hace en C o conocen algun integrado que sea capaz de hacer esa conversion?

Muchas gracias de antemano


----------



## torres007 (Jul 26, 2007)

Utiliza un reloj de cuarzo para sincronizar el pic


----------



## Ardogan (Jul 26, 2007)

A través de que interfase se comunica el PIC con el dispositivo sincrónico?.
Podrías tratar de usar la interfase SPI o I2C del PIC en modo esclavo, así la señal de reloj la generaría el dispositivo sincrónico.
Suerte


----------



## jjfonsecaz (Jul 26, 2007)

Hola amigo.

Si pudieras ser mas especifico en cuanto al dispositivo que manejas yo creo se te podria ayudar mas, puesto que es absurdo que menciones que el pic es asincrono, la comunicacion que configuras puede ser asincrona o no dependiendo de como lo quieras configurar. (en el caso del USART puede ser de cualquiera de los dos tipos, pero aparte tienes que configurar la velocidad de transmision y cosas por el estilo).

Trata de ser mas especifico en cuanto al dispositivo, se comunica por: serial, paralelo, usb, can, wireles, etc...

No creo que alguien aqui pueda leer la mente cuando no mencionas siquiera la matricula de tu dispositivo.


----------



## dkhiri (Jul 26, 2007)

Perdon por ser tan escueto, las prisas  ops: 
La idea es comunicar un pc con una radio. La configuracion seria: PC -> Pic -> Modem FFSK -> Radio. Se trata de que el pic reciba algo desde el pc, actue y envie por otro puerto los datos a la radio. Para comunicarme con la radio necesito que la comunicacion sea sincrona. El modem que utilizo es un CML469. 
Un circuito que encontre habia un conversor asincrono/sincrono entre el pc y el modem pero ese integrado se a descontinuado.
La velocidad tiene que ser de 1200 a 4800. No se si haria falta algun detalle mas, cualquier pregunta mas, contesto lo antes posible.
Muchas gracias a los 3 por contestar


----------



## jjfonsecaz (Jul 27, 2007)

Ok amigo,

Bueno no encontre el circuito que dices para realmente darme una idea de como se comunica este circuito, pero pienso que tal vez te convendria buscar otro circuito ya que para comunicar con un radio, generalmente los modems FSK te entregan una señal Asincrona lo cual es totalmente compatible con el COM1 de una PC(ya no tendrias que usar otro circuito como el pic). Si de todos modos quieres usar este, pues si es sincrono tendrias que usar el USART del PIC como puerto SINCRONO y hacer algunas rutinas para hacer un USART Asincrono virtual en cualquier par de PINES del PIC(creo que se me haria bastante mas facil de esta forma y no al reves). lo cual es bastante sencillo ya que lo unico que tienes que hacer es calcular los retardos para la frecuencia que vas a trabajar y lo demas es solo leer dato hacer 8 corrimientos a la izquierda y ya(eso ya depende de tu formato de comunicacion).


----------



## dkhiri (Jul 27, 2007)

Hola jjfonsecaz
De lo que has dicho, la opcion de configurar la USART a sincrono y trabajar con ella seria perfecto. Tienes algun ejemplo en C de como se haria eso? Es que otros lenguajes si lo encuentro pero en C no  ops: El pic trabajaria a 4Mhz y la comunicacion seria a 2400.  Es que lo de configurarlo en sincrono y los 8 "corrimientos " no se como hacerlo. 

El esquema que decia se encuentra aqui:
http://datasheets.ru/docs/CML/000006.pdf

Muchas gracias por la ayuda


----------



## jjfonsecaz (Jul 31, 2007)

hola amigo.

No tengo ningun ejemplo en C ya que generalmente trabajo en Ensamblador. pero no es dificil solo consulta el Manual del PIC y carga los registros del RCSTA y TXSTA con el valor adecuado a tus necesidades. ya despues es cuestion de ir checando el estado de la bandera. 

Mas sin embargo creo que deberias checar el datasheet de tu circuito ya que puede que sea mas facil simular (mediante codigo hacer lo mismo que si fuera un solo puerto) un puerto sincrono con la ayuda de interrupciones por flanco y otros dos pines del PIC, y la parte asincrona con el PC lo manejas con el USART del PIC ya que e imagino es mas facil conseguir ejemplos de este tipo de aplicaciones en C.

Un saludo, y una disculpa pero no tengo ejemplos, solo te puedo aportar ideas de como atacar tu problema. bye


----------



## dkhiri (Ago 3, 2007)

Muchas gracias jjfonsecaz
Como bien dices, todo sera cuestion de chequearlo. Espero que nos salga y si lo consigo, posteare el cofigo, asi quien quiera hacer algo parecido, ya lo tiene   

Gracias de nuevo


----------

