Configurando as portas tty no Beaglebone Black com Angstrom linux

2

Estou usando um Beaglebone Black executando o build Angstrom v2012.12 que veio pré-carregado. Quero poder conectar outro dispositivo a uma porta serial por meio das conexões UART nos cabeçalhos GPIO. O problema é que não posso dizer a quais /dev/tty dispositivos esses mapeiam. Quando tento acessar os dispositivos /dev/ttyS? (por exemplo, usando od /dev/ttyS2 ), recebo um "erro de leitura: erro de entrada / saída".

Alguém pode me dizer se os UARTS estão mapeados para dispositivos tty por padrão? Em caso afirmativo, quais e se não como eu posso criar os dispositivos certos?

    
por DougC 31.05.2013 / 14:07

1 resposta

2

Você pode verificar isso. deve ser simples. link

Já se falou em ter que reconstruir Ångström para habilitar uma porta serial com o novo kernel. Isso não é necessário. O DTC (Device Tree Compiler) veio instalado no meu BBB, então a compilação foi bastante indolor (uma vez eu descobri que o osciloscópio estava conectado ao BeagleBone direito ...) UART4 no BBB_SRM é UART5 no sistema de árvore de dispositivos e ttyO4 em O osso. O pino TXD (transmitir como visto do dispositivo) é P9_13 e o pino RXD (receber como visto do dispositivo) é P9_11. Então você pode fazê-los falar, como na imagem acima ou você pode usar um BeagleBone para ver as mensagens de depuração do outro quando ele for inicializado. Muito bom para depurar ..

No seu beaglebone, inicie nano :

nano enable-uart5.dts

Copie e cole o seguinte em nano:

/*
 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */
/dts-v1/;
/plugin/;

/ {
    compatible = "ti,beaglebone", "ti,beaglebone-black";

    /* identification */
    part-number = "uart5";

    fragment@0 {
        target = <&am33xx_pinmux>;
        __overlay__ {
            pinctrl_uart5: pinctrl_uart5_pins {
                pinctrl-single,pins = <                                    
                        0x070 0x26  /* P9_11 = GPIO0_30 = GPMC_WAIT0 , MODE6 */
                        0x074 0x06  /* P9_13 = GPIO0_31 = GPMC_WPN, MODE6 */
                >;
            };
        };
    };

    fragment@1{
        target = <&uart5>;
        __overlay__ {
            status          = "okay";
        };
    };

    fragment@2 {
        target = <&ocp>;
        __overlay__ {
            test_helper: helper {
                compatible = "bone-pinmux-helper";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_uart5>;
                status = "okay";
            };
        };
    };
};

Salve o arquivo (Ctrl-o)

Saia do nano (Ctrl-x)

Se você tiver um BeagleBone Black, poderá compilar o firmware para sobreposições de árvores de dispositivos sem instalar o agachamento:

dtc -O dtb -o enable-uart5-00A0.dtbo -b 0 -@ enable-uart5.dts

Agora você deve ter um arquivo chamado enable-uart5-00A0.dtbo.

Copie esse arquivo para o diretório do firmware:

cp enable-uart5-00A0.dtbo /lib/firmware/

Em seguida, ative a sobreposição:

echo enable-uart5 > /sys/devices/bone_capemgr.*/slots

Agora você deve ter um arquivo em / dev chamado ttyO4. Você pode tentar escutá-lo:

cat /dev/ttyO4

Ou você pode enviar algo para ele:

echo test > /dev/ttyO4

Se você não tiver o arquivo /dev/ttyO4 , verifique o log do kernel:

dmesg

Para verificar e verificar se os pinos foram trocados corretamente, verifique as listagens nos grupos de pinos:

cat /sys/kernel/debug/pinctrl/44e10800.pinmux/pingroups

Você deve ver um grupo de pinos para o uart5.

    
por 12.05.2014 / 09:05