Autor Tema: Pido ayuda con el Rx y Tx  (Leído 15956 veces)

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

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: Pido ayuda con el Rx y Tx
« Respuesta #30 en: 11 de Marzo de 2013, 14:16:37 »
Bueno mira he revisao los proyectos que has posteados y no veo nada raro que pueda no funcionar.
Lo mismo sucedia con el el primer proyecto que adjuntaste.
No se que puede estar pasando.

Como ahora tengo un poquito mas de tiempo, intentaré repasarlos de manera concienzuda a ver si encuentro por que puedes estar leyendo los valores distorsionados en el primer proyecto.

Si encuentro alguna cosa que pueda estar molestando te informaré.

F.
Todos los días se aprende algo nuevo.

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Pido ayuda con el Rx y Tx
« Respuesta #31 en: 11 de Marzo de 2013, 23:14:50 »
Buenas noches a todos. Reapresco por acá, que aunque he estado mirando no esa mucho lo que he podido hacer. Por suerte parece que está casi terminado, felicidades Juan Carlo. De todos modos dejo algo que alcancé a programar pero no ha probar, por lo que no se si funcionen. Comento los funcionamientos de ambas: El trasmisor coloca los 4 bits de cada nible de cada registro en RA6, RA7,RA0 y RA1 y en ese orden, y con RB1 en 1 los trasmite durante x tiempo, secuencialmente y sigue con igual proceso hasta trasmitir los 3 registros. Cabe aclarar que quiero modificar para el envio de datos modificados unicamente. El receptor lee los datos recibidos y copia a temporal, cuando se completan ambos nibles del temporal los copia al registro correspondiente, los convierte a BCD y los muestra. En TX RB0 cuenta los paquetes, en RX lleva a la lectura cada ves que VT se pone a 1 y permanece hasta que valga 0, evitando lecturas sucecivas incorrectas. Como debo hacer las placas no he podido probar el funcionamiento. Busco que el mismo codigo sirva tanto para envios alambricos o no, manejando unicamente los deco-code. Un abrazo
- Santiago -

Desconectado Juan4kd

  • PIC10
  • *
  • Mensajes: 30
Re: Pido ayuda con el Rx y Tx
« Respuesta #32 en: 13 de Marzo de 2013, 17:25:50 »
Hola lucengiar2005:

Para este trabajo construi los 2 prototipos, armados en plaquetas, asi que los programas que postie estan probados y corren bien en los microcontroladors PIC en tiempo real, no en simuladores. Todas las pruebas estan hechas sobre los 2 prototipos Tx y Rx
Segui adelante con las pruebas y elimine los retardos de 2 seg en la transmision igual siguio funcionando bien, todo esta programado en el Niple 5.6, asi que si alguien los quiere usar, se pueden eliminar los retardos del programa del Tx.
Estoy mirando tus sugerencias pero no alcanzo a entender del todo bien como debe funcionar. ¿Seria una mejora a los programas que postie?
Desde ya ¡¡ Muchas Gracias por tu atencion!!

Juan Carlos

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Pido ayuda con el Rx y Tx
« Respuesta #33 en: 13 de Marzo de 2013, 19:13:57 »
Hola a todos, como están. Juan Carlos me alegra que lo hayas logrado y te pido disculpas por lo poco aportado, pero el hombre propone y Dios dispone. De todos modos seguiré con el comenzado, no sé si sea una mejora, no creo si ya está funcionando, solo que ai llega a trabajar como quiero va a servir con cualquier medio de trasmisión que se disponga. Lo he hecho con un micro distinto para hacer las placas y probarlos bien, no tengo como probarlos simulando, y no me sirve armarlos usando un pic 877, pero el codigo que funcione será de facil aplicación a cualquier micro. Con el 628a me permite realizar los proyectos pequeños y no tanto. Un abrazo.
 
- Santiago -

Desconectado Juan4kd

  • PIC10
  • *
  • Mensajes: 30
Re: Pido ayuda con el Rx y Tx
« Respuesta #34 en: 30 de Abril de 2013, 12:02:16 »
Hola a todos:
Ha comprado la actualizacion del Niple5.6 Rev 3, ¡¡funciona muy bien !!, es un lujo, vale la pena.
Algunos de los problemas que tuve con la comunicacion por RF estan resueltos con mas elegancia de lo que pude hacer con la Rev 0. El modulo RF Tx, ¡de 10!
¿Alguien del foro sabe como se utiliza el modulo Rx que aparece con un diamante de pregunta por el bit "rx_ok?"? No me doy cuenta como usarlo. en mi caso no tengo implementado el canal de retorno, solo el de ida: un equipo transmite y el otro recibe. El manual que baje del sitio Niple no dice nada al respecto.
El receptor recibe pero no consigo que meta los 3 bytes en las 3 variables, las pone siempre en la misma, la va sobreescribiendo ¿Alguien sabe como se puede manejar esto con la Rev 3? si utilizo el metodo que desarrolle con la Rev 0 separa los 3 bytes pero no es nada elegante y lleva un monton de bloques.
Muchas gracias, Feliz dia del Trabajador a todos.

Juan Carlos

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Pido ayuda con el Rx y Tx
« Respuesta #35 en: 30 de Abril de 2013, 12:31:01 »
Probá que TX haga 3 trasmisiones sucesivas y en el receptor implementá un contador que a cada recepción se incremente, según el valor de este se indica cual registro usar como almacenamiento del dato. Lo que se me ocurre es entre trasmisiones copiar el valor del registro declarado en el modulo RX al registro indexado, así si cont=0 el dato se copia en dato_0, si cont=1 -->dato_1 y si cont=2-->dato_2 y reset de cont, asi´el proximo se guardará en dato_0 y se rrepite.
- Santiago -

Desconectado Juan4kd

  • PIC10
  • *
  • Mensajes: 30
Re: Pido ayuda con el Rx y Tx
« Respuesta #36 en: 30 de Abril de 2013, 17:51:27 »
Hola luceguiar2005:
Muchas gracias por la atencion.
La forma que me sugeris es la forma en que hice funcionar la comunicacion con el Niple 5.6 Rev 0.
El Niple 5.6 Rev 3 viene arreglado y mucho mas completo asi que con 1 solo bloque de transmision paso los 3 bytes bien. El lado TX esta resuelto
Lo que me falta es acomodar el bloque Rx porque no se como se usa y no encuentro nada en el manual. Con las mejoras que tiene esta revision seguramente no hace falta poner el contador ni nada de eso para y pasar los 3 bytes sin sobreescribir, pero no le he podido encontrar la vuelta al Bit "rx_ok".
Desde ya Muchas Gracias y feliz dia del trabajador a todos!!!

Juan Carlos

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Pido ayuda con el Rx y Tx
« Respuesta #37 en: 30 de Abril de 2013, 22:00:43 »
Hola Juan Carlos, espero estés bien. Declaraste los 3 registros para la recepción y la interrupción por flanco ascendente? porque si es así y no funciona deberías comunicarselo a Jorge Cano o a Lucas Palomba. En oportunidades dejar de hacerlo modular y darle a pulso puede ser buena idea. Si te funcionó con el 5.6.0 deberías probar igual modo con este. Un abrazo
- Santiago -

Desconectado Juan4kd

  • PIC10
  • *
  • Mensajes: 30
Re: Pido ayuda con el Rx y Tx
« Respuesta #38 en: 06 de Mayo de 2013, 19:55:17 »
Hola a todos:
Por el momento me voy arreglando recibiendo cada registro por separado..
¿Alguien me puede dar una ayudita?
¿Como hay que utilizar el diamante de condicion "bit_rx_ok=1" que aparece automaticamente al insertar el bloque recibir comunicaciones RF?  ¿Adonde mando el "No"? ¿Adonde el "si"? si lo borro aparece un error de compilacion.
Muchas gracias a todos:


Juan Carlos

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Pido ayuda con el Rx y Tx
« Respuesta #39 en: 08 de Mayo de 2013, 07:45:10 »
Si bien no he trabajado con el modulo resulta evidente que se trata de la condición if - them, o si-sino, donde pones una acción a realizar cuando el valor de lo recibido es valido, ahí y con un contador podes copiar, por ejemplo, el registro recibido a otro de una serie, lo que podría solucionar tu problema, Ej. Si es valido y si el contador = 0 ---> copiar dato a copia_0 y sumar 1 a contador, si valido y si el contador = 1 ---> copiar dato a copia_1 y sumar 1 a contador, y en el ultimo no sumo sino que reset del contador, si no es valido pregunto nuevamente. No me contestaste si declaraste igual cantidad de registros para la trasmición y recepción de los datos. Un abrazo
- Santiago -

Desconectado Juan4kd

  • PIC10
  • *
  • Mensajes: 30
Re: Pido ayuda con el Rx y Tx
« Respuesta #40 en: 26 de Junio de 2013, 18:35:52 »
Hola Lucegiar2005
Pido disculpas por haber "desaparecido" tanto tiempo,
Paso a responder, es cierto, es una condicion "If Then", lo que no encuentro en el manual del Niple ni en el foro es alguna indicacion del correcto uso de esta condicion ¿Como fue pensada?, yo en mi trabajo conecte las 2 salidas del diamante de preguntas a la misma salida, lo que es una perogrullada pero no encontre otra cosa y asi funciono, si borro el diamante me da un error de compilacion.
Termine el trabajo del cliente y la comunicacion funciona bien, esta  todo hecho en NIPL 5.6 pero no lo pude hacer en la forma que se podria entender de la informacion que dispongo del Niple, sino con un "rebusque" distinto. Si le llega a servir a alguien no tengo inconveniente en poner el "rebusque" a disposicion de todos.
El enlace es unidireccional y envia una palabra de 8 bits y luego una de 16 bits cada vez que se actua el boton en el lado del transmisor.
Ahora tengo un problema con el cliente porque a veces entran interferecias electromagneticas que falsean las palabras recibidas. Esto podria estar conectado con la pregunta anterior respecto de este registro o bit que indica una recepcion correcta o no, pero no encuentro ninguna indicacion de como configurar y utilizar esta condicion "if Then" en el Niple. Quza Jorge pueda darme alguna indicacion de como fue pensado el modulo.
Al no tener un canal de retorno se me ocurre como una salida posible que podria transmitir 2 o 3 veces la misma palabra digital y descartar las que aparezcan corrompidas, pero no estoy seguro que esto sea un buen metodo.
¿A alguien se le ocurre algo mejor?

Desde ya muchas gracias a todo el foro y en especia a Lucegiar


Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Pido ayuda con el Rx y Tx
« Respuesta #41 en: 26 de Junio de 2013, 20:27:21 »
Hola Juan4kd, un gusto leerte. Lo primero que te comento es que no se si estoy en lo correcto, entiendo que en la comparación de un evento has dado salida si es verdad a una parte del codigo, y si es falso al mismo punto del programa, si es así carecede toda lógica, analisado como un salto condicional, voy a xxx si es verdad y a yyy si es falso, no tiene función si salta a xxx en ambos casos. Si lo eliminas y conectas la salida del anterior con la entrada del posterior dará el mismo resultado, cualquiera sea el resultado será lo mismo a ejecutar. Una condición "Si, si no" es eso, si verdad hago esto (.....), si no hago esto otro (.....), de ese modo está pensado siempre que se implemente en cualquier lenguaje.
Lo que tu llamas rebusque es parte de la programación, puede ser más o menos vistoso, pero si funciona el código es valido. El algoritmo de una solución varía según quien lo implemente, todos pensamos similar pero resolvemos de distinto modo, y todos son validos si llegan a buen puerto.
Cuando hablas de un registro de 16 bits imagino que son dos registros de 8 cada uno, enviados por el trasmisor como tal, tendía que ver el codigo, de todos modos si usaste deco HT12 el mismo comprueba en 3 oportunidades si es correcto el codigo por igualdad, recien entonces valida, las 3 veces debes ser iguales según entiendo, con lo que hace lo que te propones. Podrías probar con un pote y variar la R determinante de la velocidad, o probar filtrar la entrada cuidando este aspecto, un pote y un capacitor y variar hasta encontrar la mejor relación señal - constante tiempo.
Espero algo de todo esto te sirva para solucionar y definir el programa. Un abrazo

Nota: No te encierres en como fue pensado Niple, es un programa exelente pero está basado en otro lenguaje, te permite realizar rapida y confiadamente, pero si lees de C o C++, o cualquier otro, encontraras que la sintaxis difiere en los distintos lenguajes, pero cuando lo llevas al ansambler un salto condicional es lo mismo para todos, la condición dentro del mismo cambia pero se ejecuta del mismo modo, a una dirección a otra. Todo sirve para entender más a Niple.
- Santiago -

Desconectado Juan4kd

  • PIC10
  • *
  • Mensajes: 30
Re: Pido ayuda con el Rx y Tx
« Respuesta #42 en: 10 de Julio de 2013, 12:27:10 »
Hola lucegiar2005:
Sigo con las dudas, entiendo como funcionan las comparaciones, la uso habitualmente, pero en este caso no me doy cuenta que hacer, para mi todavia no esta claro y necesito mejorar la recepcion en un trabajo para un cliente.
Adjunto la captura de la pantalla cuando se instala el bloque de recepcion por RF tal como aparece metido dentro de la interrupcion por RB0. Ahi se ve el diamante de preguna ¿rx_ok=1?. Esto esta pensado para ser usado de alguna forma que desconozco y tampoco encuentro en ningun lado la informacion pertinente.
Hasta ahora estoy utilizando el bloque de recepcion "a lo bruto" para salir del paso, pero creo que esta parte del Niple esta bien pensada por Jorge y su gente y que lo que estoy haciendo es un desperdicio y que puedo perfeccionar mis programas ya que tengo problemas con las interferencias electromagneticas que me corrompen los datos transmitidas de vez en cuando (no siempre).
Me falta la informacion de ¿Que indica este bit rx_ok? ¿en que casos se va a 1 y cuales se va a 0?  Si no tengo un canal de retorno, este bit ¿indica algo que se puede usar? ¿en que forma?.
Desde ya muchas gracias por la atencion del foro y los consejos.

Saludos.

Desconectado lucegiar2005

  • PIC24F
  • *****
  • Mensajes: 504
Re: Pido ayuda con el Rx y Tx
« Respuesta #43 en: 11 de Julio de 2013, 10:17:26 »
El bit que compara indica si se realizo bien o no la recepción, si se recepcionó correctamente continua con el programa, si no realizá una nueva lectura para validar el dato, esa es la acción que estimo nececitas.
Nota: dale unos miliseg. antes de comprobar Rb0 para formar un filtro de ruido que haga erratica la interrupción.
« Última modificación: 11 de Julio de 2013, 10:20:15 por lucegiar2005 »
- Santiago -