Angstrom Linux를 사용하여 Beaglebone Black에 tty 포트 설정

Angstrom Linux를 사용하여 Beaglebone Black에 tty 포트 설정

저는 Beaglebone Black을 사용하고 있으며 사전 로드된 Angstrom v2012.12 버전을 실행하고 있습니다. GPIO 헤더의 UART 연결을 통해 다른 장치를 직렬 포트에 연결할 수 있기를 원합니다. 문제는 /dev/tty이것이 어떤 장치에 매핑되어 있는지 알 수 없다는 것입니다 . /dev/ttyS?장치에 액세스하려고 하면 (예: od 사용 /dev/ttyS2) "읽기 오류: 입력/출력 오류"가 표시됩니다.

UARTS가 기본적으로 tty 장치에 매핑되어 있는지 알려줄 수 있는 사람이 있나요? 그렇다면 어떤 장치인지, 그렇지 않은 경우 올바른 장치를 만드는 방법은 무엇입니까?

답변1

확인하실 수 있습니다. 그것은 간단해야합니다. http://hipster Circuits.com/enable-serialuarttty-on-beaglebone-black/

어떤 사람들은 새로운 커널로 직렬 포트를 활성화하려면 Ångström을 다시 빌드해야 한다고 말합니다. 그럴 필요는 없습니다. DTC(Device Tree Compiler)가 내 BBB에 설치되어 있어 컴파일이 꽤 쉬웠습니다(스코프가 올바른 BeagleBone에 연결되어 있다는 것을 알아낸 후에는..). BBB_SRM의 UART4는 장치 트리 시스템의 UART5이고 ttyO4는 뼈. TXD(장치에서 전송) 핀은 P9_13이고, RXD(장치에서 수신) 핀은 P9_11입니다. 그런 다음 위와 같이 대화하게 하거나 하나의 BeagleBone을 사용하여 시작 시 다른 BeagleBone의 디버그 메시지를 볼 수 있습니다. 디버깅에 좋습니다..

비글본에서 다음을 시작하세요 nano.

nano enable-uart5.dts

다음을 복사하여 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";
            };
        };
    };
};

파일 저장(Ctrl-o)

nano 종료(Ctrl-x)

BeagleBone Black이 있는 경우 Squat를 설치하지 않고도 장치 트리 오버레이용 펌웨어를 컴파일할 수 있습니다.

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

이제 활성화-uart5-00A0.dtbo라는 파일이 있어야 합니다.

이 파일을 펌웨어 디렉터리에 복사합니다.

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

그런 다음 재정의를 활성화합니다.

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

이제 /dev에 ttyO4라는 파일이 있을 것입니다. 고양이를 통해 들어볼 수 있습니다:

cat /dev/ttyO4

아니면 뭔가를 보낼 수도 있습니다:

echo test > /dev/ttyO4

파일이 없으면 /dev/ttyO4커널 로그를 확인하십시오.

dmesg

핀이 올바르게 멀티플렉싱되었는지 확인하려면 핀 그룹의 목록을 확인하세요.

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

uart5에 대한 핀 세트가 표시됩니다.

관련 정보