2013-05-20 58 views
0

我試圖爲BeagleBone Rev5啓用類似Arduino的串行輸出。更改BeagleBone UART0運行Angstrom Linux的波特率

從我瞭解的UART映射是這樣的: UART0 < =>的/ dev/ttyO0

我運行的是最新的埃發行: http://downloads.angstrom-distribution.org/demo/beaglebone/Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.04.13.img.xz

我已經禁用的埃默認蓋蒂的/ dev/ttyO0通過修改本文件:

/etc/systemd/system/getty.target.wants/[email protected] 

(從這個問題收集:Automatic login on Angstrom Linux

我評論了一切,我認爲應該停止在該端口上啓動getty。完成後,我重新啓動了電路板,不再能夠通過串行控制檯進行連接,因此似乎可以工作。

但是我現在找不到任何有關如何配置UART的可靠信息,所以我可以傳輸數據。我已經廣泛地看過,但所有文檔都提到了舊版的Angstrom,它們似乎並不反映最新的版本。

例如他們都說給exec這樣的命令:

[email protected]:~# cat /sys/kernel/debug/omap_mux/uart1_rxd 

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

但是,當我嘗試,有什麼都沒有:

[email protected]:/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 
[email protected]:/sys/kernel/debug# 

最新版本的Angstrom似乎從2013年4月份開始,這比我見過的大多數博客文章都要新。看來,新版本的Angstrom的做法與舊版本不同。有沒有人有任何想法如何實際使用新版本的Angstrom/BeagleBone上的各種硬件?

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

我喜歡一個明確的答案,但會是非常滿意的任何信息,我可以得到有關的東西在埃的新版本是如何工作的。編輯: 原來我只是沒有努力去努力。我插入的BeagleBone到網絡並沒有

opkg update 
opkg install python-pyserial 

這項工作完成,我能夠寫一個小程序,它會在任何數據轉儲通過內置串行/ USB端口(的/ dev/ttyO0)我想要的速度。

隨着串行禁用getty我可以盡我所能編寫沒有問題。如果getty重新開啓,只要它檢測到速度較慢,速度較慢,就會中斷我的連接。

感謝您的幫助。我特別欣賞關於如何解決問題的信息:設備樹,因爲在我嘗試爲其他項目使用BeagleBone時,這是一個我將要面對的問題。

+0

您可以使用'stty'爲可能走出端口信息配置和類似於腳本上下文中的'echo'。大多數成熟的編程語言都有訪問posix串行API的手段。 –

回答

1

您顯示的命令與波特率無關,它控制引腳複用。許多微控制器比I/O引腳具有更多的外設功能,所以I/O引腳需要映射到外設,而不是所有的連接都是可能的。對於您的情況,您需要將特定引腳指定爲UART發送和接收。

我自己並沒有這樣做,但是我發現了大量文檔描述了通過sysctl控制引腳複用,並且proc文件系統最近被基於Device-Tree的新系統取代。結果幾乎所有現有的例子都被打破了。更糟糕的是,有些命令可能甚至沒有可用的基於設備樹的等價物。

至於設置波特率,您通常會使用cfsetispeed()cfsetospeed()termios.h,如in the Unix specification所述。