0

BeagleBone Rev5 で Arduino のようなシリアル出力を有効にしようとしています。

私が理解していることから、UART マッピングは次のようになります: UART0 <=> /dev/ttyO0

最新の Angstrom ディストリビューションを実行しています: http://downloads.angstrom-distribution.org/demo/beaglebone/Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.04.13.img.xz

このファイルを変更して、/dev/ttyO0 の Angstrom デフォルト getty を無効にしました。

/etc/systemd/system/getty.target.wants/serial-gett@ttyO0.service

(この質問から収集: Angstrom Linux での自動ログイン)

私は getty がそのポートで起動するのを止めるべきだと思うすべてをコメントアウトしました。完了したら、ボードを再起動しましたが、シリアル コンソール経由で接続できなくなったため、動作しているように見えました。

しかし、データを送信できるようにその UART を構成する方法に関する信頼できる情報を見つけることができません。私は広範囲に調べましたが、すべてのドキュメントは、最新のリリースを反映していないように見える Angstrom の古いバージョンを参照しています。

たとえば、彼らは皆、次のようなコマンドを実行すると言います:

root@beaglebone:~# cat /sys/kernel/debug/omap_mux/uart1_rxd

( http://www.gigamegablog.com/2012/01/22/beaglebone-coding-101-using-the-serial-and-analog-pins/ )

しかし、私がそれを試してみると、そこには何もありません:

root@beaglebone:/sys/kernel/debug# ls
asoc          gpio      musb-hdrc.0.auto  regulator       usb
atmel_mxt_ts  hid       musb-hdrc.1.auto  sched_features  wakeup_sources
bdi           iio       pinctrl           suspend_stats
bluetooth     kprobes   pm_debug          tracing
dri           memblock  pwm               ubi
f2fs          mmc0      regmap            ubifs
root@beaglebone:/sys/kernel/debug#

Angstrom の最新リリースは 2013 年 4 月のもののようで、これに関して私が見たほとんどのブログ投稿よりもずっと新しいものです。Angstrom の新しいバージョンは、古いバージョンとは異なる動作をするようです。新しいバージョンの Angstrom/BeagleBone でさまざまなハードウェアを実際に使用する方法を知っている人はいますか?

root@beaglebone:/sys/kernel/debug# uname -a
Linux beaglebone 3.8.6 #1 SMP Sat Apr 13 09:10:52 CEST 2013 armv7l GNU/Linux
root@beaglebone:/sys/kernel/debug#

具体的な回答が欲しいのですが、新しいバージョンの Angstrom での動作に関する情報が得られれば満足です。

編集: 努力が足りなかったことがわかりました。BeagleBone をネットワークに接続して、

opkg update
opkg install python-pyserial

それが完了すると、組み込みのシリアル/USB ポート (/dev/ttyO0) を介して任意のデータ レートでダンプする小さなプログラムを作成することができました。

シリアルの getty を無効にすると、問題なく好きなだけ書き込むことができます。getty をオンに戻すと、何かが遅い速度で、その遅い速度で発生していることを検出すると、接続が中断されます。

すべての助けをありがとう。他のプロジェクトで BeagleBone を使用しようとすると、この問題に直面することになるので、re:device ツリーで何も解明されていないことについての情報に特に感謝しています。

4

2 に答える 2

1

あなたが示したコマンドはボーレートとは関係がなく、ピンの多重化を制御します。多くのマイクロコントローラは、I/O ピンよりも多くの周辺機能を備えているため、I/O ピンを周辺機器にマッピングする必要があり、すべての接続が可能なわけではありません。あなたの場合、特定のピンを UART 送受信として指定する必要があります。

私は自分でそれを行ったことはありませんが、sysctl を介したピン多重化の制御と proc ファイルシステムが最近 Device-Tree に基づく新しいシステムに置き換えられたことを説明するかなりの量のドキュメントを見つけました。その結果、事実上すべての既存の例が壊れています。さらに悪いことに、一部のコマンドに相当するデバイス ツリー ベースの機能さえない場合もあります。

ボーレートの設定に関しては、Unix 仕様 で説明されているように、通常はcfsetispeed()cfsetospeed()fromを使用します。termios.h

于 2013-05-20T23:00:20.107 に答える