Armadilloフォーラム

RS485

nishio

2024年12月2日 17時41分

==========
製品型番:AG6211
Debian/ABOSバージョン: Debian GNU/Linux 11 (bullseye) / Alpine Linux 3.19
カーネルバージョン:Kernel 5.10.218-0
3G/LTE モジュール情報 (Debianのみ):
その他:
==========

コメント

お世話になります。nishioと申します。
誤って保存を先に押してしまいました。すみません。

RS485の送受信の設定についてご教示いただきたく。
/dev/ttymxc4 を用いて送受信をする際に、送信受信切り替えは特別に処理が必要でしょうか。
・write前後でRTSの切り替えや、RS485 TransceiversのnRE、DEのGPIO制御など。

C言語開発でWriteコマンドは正常に動作したのですが、
Readコマンドではバッファにデータが入りませんでした。

Linuxに詳しくないもので初歩的なことかもしれませんが宜しくお願いいたします。

at_shota.shimoyama

2024年12月2日 19時36分

下山です。

> /dev/ttymxc4 を用いて送受信をする際に、送信受信切り替えは特別に処理が必要でしょうか。
> ・write前後でRTSの切り替えや、RS485 TransceiversのnRE、DEのGPIO制御など。
RS-485トランシーバのGPIO制御はLinuxカーネル側が自動で行っていますので、
RS-485の送信受信切り替えに特別な処理は必要ありません。

> C言語開発でWriteコマンドは正常に動作したのですが、
> Readコマンドではバッファにデータが入りませんでした。
差し支えなければ、Write・Read部分のC言語プログラムを添付いただけますでしょうか?

また、RS-485通信の相手方の機器の詳細(製品名など)も
教えていただけますでしょうか?

よろしくお願いします。

下山様
ご回答ありがとうございます。
>
> RS-485トランシーバのGPIO制御はLinuxカーネル側が自動で行っていますので、
> RS-485の送信受信切り替えに特別な処理は必要ありません。
おかげでデバッグ対象が絞れ、問題が解消しました。
要因としてはtermios オプションのCREADの不足でした。

ありがとうございました。