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 デバイスファイルのみの変更で応答が確認できています。
どこから切り分けをして解決していけばよろしいでしょうか。
コメント
tahara
(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
古関です。
ご確認ありがとうございます。
> (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
at_mizo
溝渕です。
古関の言う通りシリアル通信設定も確認して欲しいのですが、結線についても確認してみてください。
RS232CアドオンモジュールのD-Sub9ピンコネクタは、2ピンがRXD(Armadilloから見て受信)、3ピンがTXD(Armadilloから見て送信)となります。
https://manual.atmark-techno.com/armadillo-iot-g3/armadillo-iotg-g3_pro…
tahara
添付資料がセンサ側のシリアル通信設定となります。
結線は、MA-E350/Lで通信確認できた際の接続と同様にしてあります。
armadillo-iot ゲートウェイg3 m1にはシリアル通信をする際の専用ケーブルはありますでしょうか。
ファイル | ファイルの説明 |
---|---|
SDM-322.pdf |
at_mizo
溝渕です。
> 添付資料がセンサ側のシリアル通信設定となります。
以前実行してもらった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
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
tahara
at_mizo
at_mizo
tahara
at_mizo
溝渕です。
> 現時点では、sdm-322からarmadiloにデータ送信はできているが逆はできていないという状態なのでしょうか。
> またその解決法をご教授いただきたいです。
オシロスコープまたはプロトコルアナライザ等を接続すると、通信状況が把握できると思います。
> しかし、armadiloから遠隔で計測する処理はうまく伝わっていないようです。
Armadilloからのコマンド(特定データ)受信時に、SDM-322から応答が帰ってくるような仕様でしょうか?
root@armadillo:~# cat /dev/ttymxc0 & root@armadillo:~# echo [特定データ] > /dev/ttymxc0
上記のように、バックグラウンドでcatした状態で、特定データをechoするとどうなりますか?
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