Autor Tema: hyperterminal haciendo "eco" de linea TX?  (Leído 3122 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
hyperterminal haciendo "eco" de linea TX?
« en: 14 de Septiembre de 2006, 07:35:40 »
Buenas,

tengo un problema bastante curioso entre manos, a ver si alguien pudiera "echar" alguna idea acerca de lo que puede estar pasando.

El tema es un 16F648A que se comunica con un dispositivo por un puerto serie, usando la usart del PIC. Por lo tanto, en un principio:


   PIC              DISPOSITIVO

    RX  <------------->  TX
    TX  <------------->  RX


Entonces me surgió la necesidad de "ver" qué estaba pasando por las líneas de RX/TX, ya que si no el debug se me hacía muy difícil. En realidad yo creo que lo mejor para el debug de una comunicacion serie con un PIC sería conectarle un LCD al PIC e ir sacando por ahi lo que reciba, pero como el tema del LCD me iba a suponer aún más tiempo, intenté arreglarlo de forma "chusquera" pinchando en medio un max232 para poder ver desde el hyperterminal lo que estaba pasando.
Así pues, lo que hice fue esto :

  PIC                  PC/DB9                            DISPOSITIVO

   RX <------------>   RX    <------------------>      TX
   TX <------------>   TX    <------------------>      RX

La idea era que cuando el dispositivo transmitiera, tanto el PIC como el hyperterminal recibieran el caracter. Y cuando el PIC transmita, *en teoría* el hyperterminal no tendría que mostrar nada, pues estamos "tocando" su terminal TX electricamente desde fuera, asi que *no deberia* haber eco en pantalla de ningun tipo.

Por supuesto, como no podia ser de otra manera, resulta que hay eco de pantalla  :shock:
Cuando el PIC transmite, la secuencia de caracteres transmitida aparece en el hyperterminal.... como es esto posible, acaso el hyperterminal tambien "escucha" su linea TX y hace eco de la misma en pantalla, simulando de esta manera la pulsacion de la tecla correspondiente en el PC? ya me parece demasiado....

encontrais explicacion a este comportamiento del hyperterminal?

gracias por vuestro tiempo,

pollastre

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: hyperterminal haciendo "eco" de linea TX?
« Respuesta #1 en: 14 de Septiembre de 2006, 08:10:39 »
a menos.... que el dispositivo haga automáticamente eco de todo lo que recibe (ahora que recuerdo he visto ese comportamiento en algunos cacharros, mayormente como una especie de "acuse de recibo", para indicar el emisor que la informacion fue recibida.

Entonces , todo lo que el PIC sacase por TX llegaría, efectivamente , a RX del dispositivo, pero si este a su vez lo replica inmediatamente  por su propio TX, eso podria explicar que el hiperterminal lo reciba en su RX.

tiene sentido algo de lo que estoy diciendo ?  :mrgreen:


pollastre

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: hyperterminal haciendo "eco" de linea TX?
« Respuesta #2 en: 14 de Septiembre de 2006, 08:31:50 »
pollastre, no hay mucho misterio en estos temas.

A mi entender puede ser

1) Una mala masa, osea que no has cableado bien el GND a lo largo de los 3 dispositivos y se te está induciendo el RX con el TX.

2) Que el dispositivo haga eco.


Recuerdo hace unos meses atrás diego tenía el mismo inconveniente y resultó ser la 2da opción.   He aquí el link tal vez te sirva de algo. 
Eco en una línea RS232 -> RS485 ¿como eliminarlo?


Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: hyperterminal haciendo "eco" de linea TX?
« Respuesta #3 en: 14 de Septiembre de 2006, 14:20:19 »
pues es un thread muy interesante ese.... de momento me estoy haciendo con el serial monitor a ver si consigo echar un poco mas de luz en el tema.

De todas formas, y aparte de esto, a ver si me puedes confirmar esto: creo que podría estar teniendo problemas derivados que el famoso dispositivo (a la sazón, actua como DCE, vamos, es un modem) tiene un puerto serie "como dios manda", con sus pines  RTS/CTS y DCD/DTR.  Sin meterse en mayores complicaciones, el PIC como sabes es capaz de darle la RX, TX y la GND.

Independientemente del tema del eco, me he dado cuenta de otra cosa. Cuando tengo "pinchada" la conexion con el DB9 para espiarla, los caracteres llegan  al dispositivo y este responde sin problemas. Pero cuando no pincho con el db9, el dispositivo es capaz de RECIBIR, pero no de RESPONDER al PIC.
Y esto sospecho que es por que las señales RTS/CTS y DCD/DTR del dispositivo quedan "flotando". Y esto creo que me podría estar dando problemas en la comunicacion.

Según he leido de RS232, bastaría - en principio - con conectar en el DCE los pines DTR-RTS , y conectar ambos a un "1" logico permanente... es esto así, o no es el null-modem que necesito en esta ocasion?

De hecho, mi teoria - de momento - para explicar que el dispositivo responde cuando el DB9 está pinchado, es que el puerto serie del PC sí que está proporcionando las señales que el dispositivo espera encontrar ( RTS/CTS, etc. ) y que por lo tanto el dispositivo puede iniciar la respuesta.

Cuando sólo está conectado el pic, como sólo le proporciona gnd, tx y rx, pues parece que no inicia la respuesta  ( eso sí, he comprobado que el dispositivo recibe perfectametne el comando a traves de su RX, es solo que no es capaz de respnoder con el "OK" que debe salir a traves de su TX).

Como crees que debería cortocircuitar los pines que no uso del DCE para emular un control de flujo adecuado por hardware, sin tener que meterme a programar un control de flujo en el propio codigo del pic?

gracias y un saludo,

pollastre

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: hyperterminal haciendo "eco" de linea TX?
« Respuesta #4 en: 14 de Septiembre de 2006, 15:24:07 »
bueno, ahora que has dicho que es un modem está todo más claro.

Sí, muchos modems requieren por hardware que les indiques con DTR y/o RTS que te envíe el dato.

Lo que puedes hacer es puntear en el conector del modem los pines el 7 con el 8, y el 4 con el 6.

Fíjate este link http://www.todopic.com.ar/foros/index.php?topic=13346.msg78082#msg78082

Lo del eco, si es un modem lo puedes deshabilitar de la siguiente forma

ATE=0<enter>

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado pollastre

  • PIC12
  • **
  • Mensajes: 65
Re: hyperterminal haciendo "eco" de linea TX?
« Respuesta #5 en: 14 de Septiembre de 2006, 17:35:40 »
bueeeee.... ahora si que me has pillado, no había mirado documentación al respecto de conexiones rs232 DTE<--->DCE, y para serte sincero, no tenía ni idea que debía llevar el RXdel PIC al RX del modem, y el TX al TX.

He encontrado esto http://www.bb-elec.com/tech_articles/FAQ_rs232_connections_work.asp   , donde lo explican estupendamente.

Yo lo estaba haciendo al estilo DCE --- DCE ... vamos, cruzando  RX contra TX y viceversa.

creo que con estos ultimos detalles que he aprendido hoy, mañana dejo listo el tema....

por cierto, cuando dices que en el modem cortocircuite los pines 7-8 y 4-6 te estas refiriendo a los pares RTS/CTS y DSR/DTR, no es asi ?

gracias!

pollastre

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: hyperterminal haciendo "eco" de linea TX?
« Respuesta #6 en: 14 de Septiembre de 2006, 20:01:16 »
bueeeee.... ahora si que me has pillado, no había mirado documentación al respecto de conexiones rs232 DTE<--->DCE, y para serte sincero, no tenía ni idea que debía llevar el RXdel PIC al RX del modem, y el TX al TX.

He encontrado esto http://www.bb-elec.com/tech_articles/FAQ_rs232_connections_work.asp   , donde lo explican estupendamente.

Yo lo estaba haciendo al estilo DCE --- DCE ... vamos, cruzando  RX contra TX y viceversa.

creo que con estos ultimos detalles que he aprendido hoy, mañana dejo listo el tema....
Jejeje, ¿se ahorra tiempo leyendo un poco antes no?  :mrgreen: :mrgreen:

Fuera de broma me arreglo que lo hayas resuelto ;)


por cierto, cuando dices que en el modem cortocircuite los pines 7-8 y 4-6 te estas refiriendo a los pares RTS/CTS y DSR/DTR, no es asi ?

Si, eso mismo digo.  En el mismo conector que uses (un db9) lo haces ahí mismo.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything