Falha ao ativar UARTs no Beaglebone Black

1

Pergunta geral e curta

Estou usando o Debian 9 (Stretch) em um Beaglebone Black com o kernel 4.9. Tentei seguir as instruções que encontrei on-line, mas até agora aparentemente não consegui configurar seus dispositivos UART. Como configuro meu dispositivo? Como faço para depurar / solucionar problemas da minha configuração? Como posso verificar se minha configuração está correta?

Pergunta longa e detalhada

Sou muito novo no Linux embarcado em geral e no Beaglebone em particular. Eu segui as instruções dadas aqui:

Eu fiz o download da imagem mais recente do "Stretch IoT (sem área de trabalho gráfica) para BeagleBone e PocketBeagle via cartão microSD" (especificamente osso-debian-9.3-iot-armhf-2018-03-05-4gb.img ) do última página de imagens e exibiu o Beagleboard de um cartão SD. Após a instalação, consegui acessar o Beaglebone da minha área de trabalho do Linux por meio de um cabo serial para USB - de maneira semelhante ao descrito no artigo a seguir:

Consegui usar o seguinte comando screen com êxito:

screen /dev/ttyUSB0 115200

Também consegui um cabo Micro-USB para USB para conexão via SSH:

ssh [email protected]

Uma vez conectado ao Beaglebone, verifiquei que a versão do meu kernel era Linux beaglebone 4.9.82-ti-r102 . Depois, li vários artigos sobre a configuração UART do Beaglebone, incluindo os seguintes:

Meu exemplo foi que (de um modo geral) existem vários arquivos de configuração diferentes para verificar, dependendo do sistema operacional e da versão do kernel. Estes incluíram o seguinte:

  • /boot/uEnv.txt
  • /boot/uboot/uEnv.txt
  • /etc/default/capemgr
  • /media/BEAGLEBONE/uEnv.txt

Também foram mencionados vários arquivos de dispositivos, como:

  • / sys / devices / bone_capemgr. * / slots

Eu tentei adicionar cada uma das seguintes linhas a cada um dos vários arquivos uEnv.txt :

  • cape_enable=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART4,BB-UART5

  • optargs=capemgr.enable_partno=BB-UART1,BB-UART2,BB-UART3,BB-UART5

Eu também tentei adicionar a seguinte linha a /etc/default/capemgr :

CAPE=BB-SPI-01,BB-UART1,BB-UART2,BB-UART4

Após a reinicialização, usei o seguinte comando para verificar se os dispositivos UART tinham aparecido:

ls -l /dev/ttyO*

Infelizmente recebi o seguinte (resultados inesperados):

debian@beaglebone:~$ ls -l /dev/ttyO*
lrwxrwxrwx 1 root root 5 Jan  1 00:00 /dev/ttyO0 -> ttyS0

NOTA: Não estou preocupado com ttyO0 , mas sim com ttyO1, ..., ttyO5 .

Eu também tentei algumas outras coisas, mas (no interesse de economizar tempo e espaço) não vou descrever cada tentativa, a menos que seja solicitado.

O que estou fazendo de errado aqui? Qual é a maneira correta de ativar os dispositivos UART?

    
por igal 17.05.2018 / 04:05

1 resposta

1

Eu tive esse problema, e resolvi-o simplesmente usando o Debian 9 e usando esta imagem Debian 8.6 , na categoria" Imagens mais antigas do Debian "em esta página .

Ao inicializar você verá os arquivos / dev / ttyO1, O2, O4, mas eles não funcionarão até que você configure os pinos para o pinmux correto (eu fui arremessado por um loop por isso, já que tudo costumava ser tratado por sobreposições de árvores de dispositivos):

#ttyO1:
config-pin P9_24 uart
config-pin P9_26 uart
#ttyO2:
config-pin P9_21 uart
config-pin P9_22 uart
#ttyO4:
config-pin P9_11 uart
config-pin P9_13 uart

Você tem que fazer esse passo em cada reinicialização. Pertence a algum tipo de script de inicialização.

Você pode confirmar se os UARTs estão trabalhando com um teste de loopback simples, por exemplo para UART4:

  1. Coloque um fio entre P9_11 e P9_13

  2. tela / dev / ttyO4

  3. O texto digitado na janela deve aparecer, desconecte o fio e a digitação adicional não será exibida. O UART funciona.

Isso não corrige seu problema se você precisar usar o Kernel / Debian mais recente, mas se você só precisa do UART para funcionar (como eu), então você deve estar pronto.

    
por 13.07.2018 / 18:48