저는 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에 대한 핀 세트가 표시됩니다.