Armadilloフォーラム

RS232C通信について

tahara

2023年5月12日 16時45分

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

TTY デバイスファイルは
https://armadillo.atmark-techno.com/files/downloads/armadillo-iot-g3/do…
「/dev/ttymxc0」を使用していますが、通信先から応答がありません。シリアル通信プログラムは、javascriptを利用しています。

ちなみに、他社製品であるMA-E350/Lを使用した際は、TTY デバイスファイルのみの変更で応答が確認できています。

どこから切り分けをして解決していけばよろしいでしょうか。

コメント

at_koseki

2023年5月15日 16時01分

古関です。

問題切り分けのため、以下確認お願いできますでしょうか。

よろしくお願いいたします。

#######################
(1) アドオンモジュールを正しく認識できているか

以下のコマンドを実行し結果をいただけますか。
root@armadillo:~# dmesg |grep addon

CON1 アドオンインターフェース 1に
RS232Cアドオンモジュールを接続している場合、次のように表示されます。
[ 0.411828] armadillo_iotg_addon addon: probe
[ 1.696333] armadillo_iotg_addon addon: Atmark Techno RS232C board detected at Add-On Module I/F 1(Rev 2, SerialNumber=2718).
[ 1.702499] armadillo_iotg_addon addon: No add-on expansion board detected at Add-On Module I/F 2.

(2) 問題のデバイスとプログラムを使わずに通信確認
もし、市販のUSBシリアルコンバーター等お持ちでしたら、
PCとRS232CアドオンをRS232Cケーブルで接続し
ターミナルソフト等でキーボードから文字入力してArmadillo-PC間で双方向通信できるでしょうか。

■ Armadillo側
root@armadillo:~# cu -l /dev/ttymxc0 -s 115200

■ PC側
Teraterm等で、以下設定で通信。
ボーレート: 115200
データ: 8 bit
パリティ: none
ストップビット: 1bit
フロー制御: none

Armadilloから文字入力して、PC側に表示されるか
PCから文字入力してArmadillo側で表示されるか

(3) 設定確認

termiosの細かい設定が何か問題になっているのかもしれません。
もし、差し支えなければ使っている対向機の型番と
プログラムをバックグランド実行をして
以下コマンドの結果をいただけますか。

root@armadillo:~# stty -F /dev/ttymxc0

tahara

2023年5月16日 13時33分

(1) アドオンモジュールを正しく認識できているか
[ 0.412225] armadillo_iotg_addon addon: probe
[ 1.696377] armadillo_iotg_addon addon: Atmark Techno RS232C board detected at Add-On Module I/F 1(Rev 2, SerialNumber=7151).
[ 2.975836] armadillo_iotg_addon addon: Atmark Techno DI/DO/AD board detected at Add-On Module I/F 2(Rev 1, SerialNumber=0).

(2)
環境の都合上実施しておりません

(3)
speed 9600 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -iexten -echo -echoe -echok -echoctl -echoke

こちらがコマンドを実行した際の結果となります。
以上、よろしくお願いいたします。

at_koseki

2023年5月16日 14時01分

古関です。

ご確認ありがとうございます。

> (1) アドオンモジュールを正しく認識できているか
> [ 0.412225] armadillo_iotg_addon addon: probe
> [ 1.696377] armadillo_iotg_addon addon: Atmark Techno RS232C board detected at Add-On Module I/F 1(Rev 2, SerialNumber=7151).
問題なく認識できていますね。

> (3)
> speed 9600 baud; line = 0;
> min = 1; time = 0;
> -brkint -icrnl -imaxbel
> -opost -onlcr
> -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
対向機として何かセンサーや制御装置を接続していると考えておりますが、
型番などの情報提供は難しいでしょうか?

Armadilloと対向機でシリアル通信設定が一致しているか確認がしたかったのですが、
これは、Armadilloの設定の表示結果でして、
対向機の仕様と合わせて確認する必要があります。

tahara

2023年5月16日 15時49分

対向機としましては、光波式 積雪深計『SDM-322』を使用しております。

以上、よろしくお願いいたします。

at_mizo

2023年5月17日 14時59分

溝渕です。

古関の言う通りシリアル通信設定も確認して欲しいのですが、結線についても確認してみてください。

RS232CアドオンモジュールのD-Sub9ピンコネクタは、2ピンがRXD(Armadilloから見て受信)、3ピンがTXD(Armadilloから見て送信)となります。

https://manual.atmark-techno.com/armadillo-iot-g3/armadillo-iotg-g3_pro…

tahara

2023年5月17日 17時32分

添付資料がセンサ側のシリアル通信設定となります。

結線は、MA-E350/Lで通信確認できた際の接続と同様にしてあります。
armadillo-iot ゲートウェイg3 m1にはシリアル通信をする際の専用ケーブルはありますでしょうか。

ファイル ファイルの説明
SDM-322.pdf

at_mizo

2023年5月18日 7時39分

溝渕です。

> 添付資料がセンサ側のシリアル通信設定となります。

以前実行してもらったsttyコマンドの結果より、通信できそうですね。

ちなみにですが、シリアルを使用するアプリケーションを実行しない状態で、次のコマンドを入力してもデータ受信ができませんか?

root@armadillo:~# cat /dev/ttymxc0

また、データ受信ができない場合は、上記catコマンドをCtrl-cで終了させた直後に実行した以下のコマンドログをください。

root@armadillo:~# stty -F /dev/ttymxc0 -a

> 結線は、MA-E350/Lで通信確認できた際の接続と同様にしてあります。

各種資料を探してみましたが、MA-E350/LのRS232Cのピン配列が見当りませんでしたが、恐らくArmadilloと同様かと思われます。

> armadillo-iot ゲートウェイg3 m1にはシリアル通信をする際の専用ケーブルはありますでしょうか。

いえ。ありません。

互いのTx-Rxが接続されるケーブルであれば通信可能かと思います。

現在利用しているケーブルの結線はわかりますか(クロス/インタリンク/ストレート等)?

tahara

2023年5月18日 17時36分

stty -F /dev/ttymxc0 -aを実行した際の結果は以下となります。

speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; swtch = ; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O;
min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

また、使用しているケーブルはクロスとなります。

at_mizo

2023年5月19日 8時04分

溝渕です。

> シリアルを使用するアプリケーションを実行しない状態で、次のコマンドを入力してもデータ受信ができませんか?
>
>

> root@armadillo:~# cat /dev/ttymxc0
> 

上記を事項することは不可能ですか?

tahara

2023年5月19日 9時28分

処理が進まず何も表示されないので、
stty -F /dev/ttymxc0 -a
を実行した際の結果を記載しておりました。

at_mizo

2023年5月19日 9時44分

溝渕です。

> 処理が進まず何も表示されないので、

了解です。この際、SDM-322はシリアルにデータを出力している状態ですか?

at_mizo

2023年5月19日 9時48分

溝渕です。

また、MA-E350/Lでもsttyコマンドを使って、シリアルの設定を確認する事は可能ですか?

可能であれば、ログを貼り付けてください。

tahara

2023年5月22日 10時36分

SDM-322の計測ボタンを手動で押した場合はデータを受信することができました。
しかし、armadiloから遠隔で計測する処理はうまく伝わっていないようです。

現時点では、sdm-322からarmadiloにデータ送信はできているが逆はできていないという状態なのでしょうか。
またその解決法をご教授いただきたいです。

at_mizo

2023年5月22日 11時36分

溝渕です。

> 現時点では、sdm-322からarmadiloにデータ送信はできているが逆はできていないという状態なのでしょうか。
> またその解決法をご教授いただきたいです。

オシロスコープまたはプロトコルアナライザ等を接続すると、通信状況が把握できると思います。

> しかし、armadiloから遠隔で計測する処理はうまく伝わっていないようです。

Armadilloからのコマンド(特定データ)受信時に、SDM-322から応答が帰ってくるような仕様でしょうか?

root@armadillo:~# cat /dev/ttymxc0 &
root@armadillo:~# echo [特定データ] > /dev/ttymxc0

上記のように、バックグラウンドでcatした状態で、特定データをechoするとどうなりますか?