Armadilloフォーラム

シリアル通信について

hanako

2018年9月18日 17時53分

Armadillo-IoT G3 M1モデルでRS232Cアドオンモジュールを使用し、
シリアル通信を行っております。

「/dev/ttymxc0」にてシリアル通信を実現しています。
シリアル通信プログラムは、pythonを利用しています。

以下の設定でシリアル通信を行っているのですが、
急に通信ができなくなるという現象が発生しました。
※通信できている状態から、ある時突然通信できなくなる。
※再起動すれば、復旧します。

・ボーレート:115200bps
・データビット:8bit
・ストップビット:1bit
・パリティ:偶数パリティ
・RTSCTS:TRUE

cat /proc/tty/driver/IMX-uartを実行しますと
通信できている状態と通信できていない状態とで以下のような差異が生じております。

[通信可]
tx:dddd rx:dddd RTS|CTS|DTR|DSR|CD

[通信不可]
tx:dddd rx:dddd oe:dddd RTS|DTR|DSR|CD

※ddddは、データサイズ

通信できない時、「oe」のサイズのみ増加しています。
これは、オーバーランエラーが発生しているという認識でよろしいでしょうか?
通信不可の時、CTSが無効?となるのは、なぜでしょうか?

ご教授の程、宜しくお願い致します。


コメント

hanako

2018年12月27日 23時07分

お世話になっております。

連続テストで問題ないことを確認できました。
ありがとうございます。
ちなみにですが、at2に今回の修正を適用できないでしょうか?

y.nakamura

2018年12月28日 0時03分

中村です。

> ちなみにですが、at2に今回の修正を適用できないでしょうか?

2018/12/18のDMAにならないようにするパッチのことですよね?
そのままat3にpatchコマンドでパッチがあてられると思います。
"#if 0 ... #endif"を2か所に追加するだけですから、
patchコマンドでなくてエディタで手作業でもできますよね。
それから、at2とat3のimx.cの違いをご自分で確認していますか?
この2つの違いは2452行目あたりの1か所だけです。
2018/12/18のパッチは、1085行目あたりと1452行目あたりです。

// 教えてもらうだけじゃなくて、自分で考えたり調べたりして
// やってみるようにしないと・・・

--
なかむら