Armadilloフォーラム

ArmadilloG3LのRS485通信ポートで通信ライブラリ(Pyserial)が正常に動作しなくなる。

g-shinya

2022年5月9日 13時27分

<Armadillo-G3Lの状態>
imx.cを添付いたします。
uname:Linux armadillo 4.9.133-at16 #2 (担当営業者様より、at22での検証もいたしましたが、同じ結果となりました。)
SMP PREEMPT Fri May 21 18:01:52 JST 2021 armv7l GNU/Linux

dpkg -l | grep "atmark":
ii atmark-x1-base 2.5.2-1 armhf Atmark Techno X1 platform base software
ii libmm-glib0:armhf 1.6.4-1atmark8 armhf D-Bus service for managing modems - shared libraries
ii modemmanager 1.6.4-1atmark8 armhf D-Bus service for managing modems

・DMA無効
・RXTL_UART=1

参考フォーラム
https://armadillo.atmark-techno.com/forum/armadillo/8523

<症状>
 ArmadilloG3LのRS485通信ポートで使用している
 通信ライブラリ(Pyserial)が正常に動作しなくなる。

<詳細>
 in_waiting()の受信数分をread()で取り出してもin_waiting()の
 受信数が「0:受信データなし」にならない。
 受信数がゼロにならず、返信データが途切れない状態が続くため
 受信が終了しない(できない)。
 フローチャート参照お願いいたします。

<症状再現方法>
 RS485の信号線を短い間隔で短絡/開放させる。
 (RS485通信線にノイズを入れる)

<質問>
 上記動作になる原因と回避方法、また復旧方法を教えてください。

ファイル ファイルの説明
imx.c
フローチャート.png
コメント

at_mizo

2022年5月18日 13時36分

溝渕です。

すみません。いくつか質問させてください。

> <症状再現方法>
>  RS485の信号線を短い間隔で短絡/開放させる。
>  (RS485通信線にノイズを入れる)

ノイズを入れない場合は、受信数が「0:受信データなし」になり、受信が終了しますか?

>  受信数がゼロにならず、返信データが途切れない状態が続くため
>  受信が終了しない(できない)。

このとき、何が読めますか?

また、この(受信が終了しない)状態に陥った際に、対向機器から文字を送信した場合、その文字を受信することはできますか?

g-shinya

2022年5月20日 9時07分

>> <症状再現方法>
>>  RS485の信号線を短い間隔で短絡/開放させる。
>>  (RS485通信線にノイズを入れる)
>ノイズを入れない場合は、受信数が「0:受信データなし」になり、受信が終了しますか?
(1)正常に動作している状態
 受信データを通信ライブラリから取得すると受信数はゼロになります。
 →受信が正常終了。
(2)ノイズによって受信数がゼロにならない状態
 ノイズを停止しても受信数はゼロになりません。
 →受信が終了しません。

>>  受信数がゼロにならず、返信データが途切れない状態が続くため
>>  受信が終了しない(できない)。
>このとき、何が読めますか?
読みだしたデータは全て0xffでした。
受信数は時間が経過すると変化(増加)していました。

> また、この(受信が終了しない)状態に陥った際に、対向機器から文字を送信した場合、その文字を受信することはできますか?
こちらについては再度確認し連絡いたします。