Autor Tema: Problema con envio de datos por usart en RF  (Leído 3130 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado nietzche

  • PIC10
  • *
  • Mensajes: 14
Problema con envio de datos por usart en RF
« en: 03 de Agosto de 2010, 03:51:37 »
Buenas, estoy haciendo un proyecto que transmite y recibe datos por rf a travez del modulo usart, uso 2 pic16f876a, y de acuerdo con lo que lei aca http://www.todopic.com.ar/foros/inde...;topic=30837.0 programe el pic para realizar una codificacion manchester en tx y decodificacion manchester en rx, el problema no es la codificacion, si no el problema es que no se como enviar 2 bytes completos y sin interrupciones por el transmisor, ya que es lo que quiero hacer, en el manual habla de back to back, lo que hice fue cargar el registro txreg 2 veces seguidas para mandar 2 bytes completos pero no se si funcione asi.

En el receptor es el problema porque debo de recibir esos 2 bytes seguidos y cargarlos en registros, la duda es que usando interrupciones en el receptor, cada vez que un byte entra entonces se interrumpe y se debe de leer el rcreg, o en realidad entran los 2 bytes y despues se interrumpe ?????

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: Problema con envio de datos por usart en RF
« Respuesta #1 en: 03 de Agosto de 2010, 04:18:14 »
una manera, a rx llega un byte, lo guarda en un registro, sale de la interruopcion y espera a la siguiente que guarda en otro registro. otra forma, entra en la int. de rx, recibe el primer byte y espera dentro de la int. hasta que llega el segundo. lo puedes hacer como tu quieras, depende de lo que estes haciendo y necesites

un saludo

Desconectado nietzche

  • PIC10
  • *
  • Mensajes: 14
Re: Problema con envio de datos por usart en RF
« Respuesta #2 en: 03 de Agosto de 2010, 13:00:08 »
ah y para esperar dentro de la interrupcion tengo entonces que testear el bit pir1,5 que es el RCIF no es asi?

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Problema con envio de datos por usart en RF
« Respuesta #3 en: 03 de Agosto de 2010, 13:13:18 »
Bienvenido al foro Nietzche, al usar el USART para transmitir tienes que revisar la bandera TXIF, antes de poder enviar otro byte, esto puedes hacerlo sin necesidad de usar interrupciones, en la parte de recepcion por interrupcion aumentando a lo que alogic.on te dijo, debes saber que los Usart por lo general tienen un buffer interno de 2 bytes y medio, esto quiere decir que puedes recibir dos bytes y no leerlos mientras recibes un tercero, pero cuando el terminas de recibir el tercer byte uno de los anteriores se perdera y esto habilitara un error de overflow.

Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado nietzche

  • PIC10
  • *
  • Mensajes: 14
Re: Problema con envio de datos por usart en RF
« Respuesta #4 en: 03 de Agosto de 2010, 16:55:00 »
ok, entonces segun entendi, esto se debe de hacer asi: al mandar un byte en el tx, debo monitorizar para ver si se envio ese byte, y cuando termine de enviar ese byte puedo mandar otro, en la recepcion entonces si es como dijo alogic.on? recibir un byte y monitorizar la bandera para ver si ya llego otro y asi recuperar los datos, esto es correcto ?

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Problema con envio de datos por usart en RF
« Respuesta #5 en: 04 de Agosto de 2010, 10:04:02 »
Si nietzche basicamente como lo entendiste es la forma mas sencilla de hacerlo, ahora  para una comunicacion inalambrica se suele enviar unos bytes de cabecera antes de enviar los datos validos, debido a que  los receptores RF pueden estar entregandote una señal de salida  debido simplemente al ruido  que el PIC leeria.

Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado nietzche

  • PIC10
  • *
  • Mensajes: 14
Re: Problema con envio de datos por usart en RF
« Respuesta #6 en: 05 de Agosto de 2010, 01:08:20 »
si, eso de la cabecera  lo tomo en cuenta, aunque tengo una duda, despues de que el receptor reciba la cabesera; como sabe el RX que es una cabecera?, se me ocurre que cuando llegue una cabecera se reste con por ejemplo 0x55, que es el dato de cabecera, si la bandera Z se pone a uno, entonces si es la cabecera y se reciben datos, se puede hacer asi?

Otra cosa el codigo manchester lo hise tomando cada byte y testeando cada bite, por ejemplo: si un bite es cero entonces escribire 01, si es uno, escribire: 10.  Como resultado cada byte codificado me dan 2 bytes,   es correcto lo que hize ???

Desconectado sander

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 624
Re: Problema con envio de datos por usart en RF
« Respuesta #7 en: 05 de Agosto de 2010, 16:59:14 »
Para lo de la cabecera envio varios bytes 0x55 , y los voy descartando hasta que llegue una secuencia de bytes de inicio en mi caso eran 0x33 y luego 0xCC, es decir, que si despues de varios 0x55, no se recibia un 0x33 seguido de un 0xCC asumia que la trama no era valida, y como dices para comparar que dos bytes son iguales tienes que testear la bandera Z luego de hacer una resta.

Sobre lo del codigo manchester tienes razon, un byte codificado se volvera dos bytes en codigo manchester.

Saludos
La electrónica es el arte de manipular señales eléctricas que transportan información
Jan Davidse

Visita mi blog
Visita mi canal de youtube

Desconectado nietzche

  • PIC10
  • *
  • Mensajes: 14
Re: Problema con envio de datos por usart en RF
« Respuesta #8 en: 06 de Agosto de 2010, 02:01:58 »
muchas gracias, aprecio tu ayuda en mucho


 

anything