resolução de problemas de configurações seriais através de stty

0

Hardware

PHYTEC Mira Board com i.MX6 Processador

Sistema Operacional

Imagem Yocto criada usando o BSP fornecido pela PHYTEC Source com pacotes mínimos.

A placa tem uma placa UART chamada UART3 e sua interface de software dentro do sistema operacional é /dev/ttymxc2 Manual de Hardware . A única coisa disponível para verificar / definir porta serial a bordo é stty .

Tarefa

Gostaria de fazer a interface de um GPS final do Adafruit para o UART3 para ler informações dele no quadro de Mira.

Tentativa 1

Eu conectei os dois componentes da seguinte maneira.

UART3_RXD_RS232 (MIRA) --> TX pin (GPS)
UART3_TXD_RS232 (MIRA) --> RX pin (GPS)

Defina a porta serial da seguinte forma:

 stty -F /dev/ttymxc2 speed 9600

Valor de leitura:

 cat /dev/ttymxc2

Resultado : Garbage Values. Tentei todas as configurações possíveis e ainda obtive valores de lixo. Escrevi um script simples de node para tentar ler as informações vindas da porta, mas recebi um erro ao informar que os caracteres (valores de lixo) não são reconhecidos.

Tentativa-2

Inicialmente tentei conectar o GPS a um simples Arduino Nano para obter os valores do GPS e isso funciona, confirmando que o GPS envia informações e nenhum defeito ocorreu.

Eu conecto as Portas Seriais do Mira e do Arduino e tento enviar informações do Mira para a interface serial do Arduino e lê-las através do console serial.

configuração

   MIRA_Board (serial UART3) ---> Arduino Nano (Serial Pins) --USBCable--> Computer

Pins

 UART3_RXD_RS232 (MIRA) --> RX PIN NANO
 UART3_TXD_RS232 (MIRA) --> TX PIN NANO

Estou logado no quadro Mira através do SSH. O seguinte comando é acionado, esperando esperar o mesmo valor no console serial do computador através do Arduino

 echo 'hello' > /dev/ttymxc2

Resultado : Ainda valores de lixo no console.

A configuração para /dev/ttymxc2 é como

stty -F /dev/ttymxc2 -a                       
speed 9600 baud;stty: /dev/ttymxc2 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; flush = ^O; min = 1; time = 0;   -parenb -parodd 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

Se esse problema ocorrer devido à incompatibilidade da configuração serial, como resolvo o problema usando stty ?

P.S. : A taxa de transmissão do GPS deve ser 9600 , o que é o caso

    
por Shan-Desai 27.04.2018 / 18:44

1 resposta

1

Você pode tentar usar o UART1 ou o UART2 no quadro Mira. De acordo com o manual, eles usam sinais de nível TTL. O módulo GPS envia 3 V, mas tolera 5 V na entrada. O +3 V deve ser suficiente para ser interpretado como um "1" em uma entrada TTL. Os sinais RS-232 não são adequados sem um buffer, porque o RS-232 especifica +3 .. + 12 V para o estado de espaço e -3 ..- 15 V (isso é menos 15 V) para o estado da marca.

    
por 27.04.2018 / 19:31

Tags