Puertos serie - Trama unidireccional

Resuelto
strangeuser Mensajes publicados 29 Estado Miembro -  
 strangeuser -
Hola,

Tengo que hacer funcionar puertos COM de una tarjeta adicional en una máquina. La máquina en cuestión es un Lenovo T570s, la tarjeta adicional es una Lindy RS-232 16C650: [imagen]

El sistema es Ubuntu 18.04 (versión LTS).

El problema es el siguiente:
- los puertos serie iniciales de la máquina comunican bien
- los puertos serie iniciales se comunican bien con los puertos de la tarjeta adicional
- los puertos de la tarjeta adicional no se comunican con los puertos serie iniciales.

Lista de puertos iniciales:
- /dev/ttyS0
- /dev/ttyS1

Lista de puertos adicionales:
- /dev/ttyS4
- /dev/ttyS5

Estos son mis tests:
Terminal 1 -
echo "Test" > /dev/ttyS0
Envío de una trama desde un puerto inicial de la máquina hacia la tarjeta adicional

Terminal 2 -
cat /dev/ttyS4 Test
Recibo bien la trama enviada

Terminal 1 -
echo "Test" > /dev/ttyS4
Envío de una trama desde la tarjeta adicional hacia un puerto inicial de la máquina

Terminal 2 -
cat /dev/ttyS0
no hay respuestas ...

Para fines de la aplicación la comunicación debe ser bidireccional.

Necesito ayuda, por favor...

(diag en comentario)

4 respuestas

  1. strangeuser Mensajes publicados 29 Estado Miembro 1
     
    Aquí están las configuraciones completas de los puertos:

    root@hostname:/dev# stty -F ttyS0 -g && stty -F ttyS1 -g && stty -F ttyS4 -g && stty -F ttyS5 -g 500:5:cbd:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 500:5:cbd:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 500:5:cbd:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 500:5:cbd:8a3b:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 root@hostname:/dev# stty -F ttyS0 -a && stty -F ttyS1 -a && stty -F ttyS4 -a && stty -F ttyS5 -a ttyS0 speed 9600 baud; rows 0; columns 0; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc ttyS1 speed 9600 baud; rows 0; columns 0; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc ttyS4 speed 9600 baud; rows 0; columns 0; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc ttyS5 speed 9600 baud; rows 0; columns 0; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc


    INFO Importante :

    Con minicom las puertas funcionan correctamente. Desafortunadamente debo hacer que funcionen con stty (para una aplicación tipo ERP que utiliza stty).

    A priori, el problema no viene del driver porque están presentes. Cuando uso Minicom, la conf de los puertos cambia. Esta conf no funciona con stty... así que no es la solución.
    0
  2. strangeuser Mensajes publicados 29 Estado Miembro 1
     
    Up!

    Please necesito ayuda. Se trata de un problema que bloquea y es urgente para mi empresa, y todavía no tengo solución...
    0
  3. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 660
     
    hola
    Desafortunadamente debo hacerla funcionar con stty (para una aplicación tipo ERP que usa stty).

    ¿qué significa?
    stty solo modifica los parámetros del puerto, ¿cómo se transfieren los datos?
    0
    1. strangeuser
       
      Una comprobación periódica a través del ERP se realiza mediante stty; sin ello, los datos se transfieren de forma clásica a través de los puertos COM para básculas o etiquetadoras.
      0
    2. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 660
       
      ¿Qué es un ERP?
      stty muestra o modifica parámetros, no veo qué podría comprobar
      0
    3. strangeuser
       
      Olvídate del término ERP, es solo para decir que estoy obligado a pasar por stty para que funcione.
      0
    4. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 660
       
      muéstrame lo que haces, no podemos adivinarlo
      0
  4. strangeuser
     
    Problema resuelto. Tuve a mi disposición máquinas para realizar mis pruebas y resulta que los puertos COM funcionan bien a pesar de no comunicarse a través de "echo" y "cat". No entiendo mucho, pero mientras funcione, me sirve. Muchas gracias por tus respuestas
    0