Configurando o driver serial sc16is7xx

2

Pergunta inicial

Eu trabalho com o chip NXP SC16IS740 como um periférico para um sistema Linux embutido (kernel principal v4.8). O usecase é bastante simples, uma linha de transmissão contínua (9600 8n1) deve ser lida através do driver do chip.

Até agora, incluí o módulo do driver sc16is7xx na compilação do kernel e consigo ver o dispositivo como /dev/ttySC0 .

No entanto, não consigo ler o uart por enquanto e suspeito que esteja faltando a configuração correta. Eu tentei tanto com simplesmente

cat /dev/ttySC0

e

minicom -D /dev/ttySC0 -b 9600 -8

Como existem apenas arquivos somente para leitura no diretório do dispositivo (/ sys / class / tty / ttySC0 /) e não encontro nenhuma documentação sobre como usar o driver, estou ficando sem ideias. / p>

Qual é a maneira correta de configurar esse driver?

Editar: Config, logs & medições

Config

Eu incluí o módulo na configuração de receitas do kernel da seguinte forma:

CONFIG_SERIAL_SC16IS7XX_CORE=m
CONFIG_SERIAL_SC16IS7XX=m
CONFIG_SERIAL_SC16IS7XX_I2C=y

Para carregar / descarregar o módulo (o que resulta em carregar / descarregar o dispositivo /dev/ttySC0 ) eu uso:

modprobe [-r] sc16is7xx

Registros

Grepping dmesg para sc16is7 resulta neste tipo de mensagens:

[ 5592.212905] [<c0379a14>] (uart_get_baud_rate) from [<bf07cf84>] (sc16is7xx_set_termios+0x1c4/0x374 [sc16is7xx])
[ 5592.213045] [<bf07cdc0>] (sc16is7xx_set_termios [sc16is7xx]) from [<c0379f04>] (uart_change_speed+0x5c/0x124)

Exatamente essas duas mensagens são registradas sempre que eu:

  • abra ou feche a conexão com /dev/ttySC0 com minicom ou cat
  • altere a taxa de transmissão ou outras configurações da porta serial em minicom

Medidas

Medindo com um escopo (incluindo análise lógica básica) eu posso ver a comunicação com o chip na linha I2C quando eu:

  • abra ou feche a conexão com /dev/ttySC0 com minicom
  • altere a taxa de transmissão ou outras configurações da porta serial em minicom

Caso contrário, não há comunicação alguma na linha. No momento, estou tentando analisar os bytes enviados e verificá-los com a folha de dados, ou seja, depurando o driver de uma forma.

    
por bunto1 09.08.2017 / 14:45

0 respostas