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