プリロードされたAngstromv2012.12ビルドを実行しているBeagleboneBlackを使用しています。 GPIOヘッダーのUART接続を介して別のデバイスをシリアルポートに接続できるようにしたい。問題は、これらがどの/dev/tty
デバイスにマップされているかわからないことです。 /dev/ttyS?
デバイスにアクセスしようとすると(たとえば、od /dev/ttyS2
を使用))、「読み取りエラー:入力/出力エラー」が発生します。
UARTがデフォルトでttyデバイスにマップされているかどうか、マップされている場合はどのデバイスにマップされているか、そうでない場合はどのように適切なデバイスを作成できるかを誰かに教えてもらえますか?
これを確認できます。シンプルなはずです。 http://hipstercircuits.com/enable-serialuarttty-on-beaglebone-black/
新しいカーネルでシリアルポートを有効にするためにÅngströmを再構築する必要があるという話がありました。それは必要ありません。デバイスツリーコンパイラ(DTC)が私のBBBにインストールされたので、コンパイルはかなり苦痛がありませんでした(オシロスコープが正しいBeagleBoneに接続されていることがわかったら..)BBB_SRMのUART4はデバイスツリーシステムのUART5であり、ttyO4は骨。 TXD(デバイスから見て送信)ピンはP9_13で、RXD(デバイスから見て受信)ピンはP9_11です。次に、上の画像のように会話させるか、一方の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を使用している場合は、スクワットをインストールせずにデバイスツリーオーバーレイのファームウェアをコンパイルできます。
dtc -O dtb -o enable-uart5-00A0.dtbo -b 0 -@ enable-uart5.dts
これで、enable-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のピングループが表示されます。