Armadilloフォーラム

マイコン2台間HOST機能USB通信について

hirakawa_yf

2022年1月5日 16時30分

armadillo610のHOST機能USBを介してマイコン間のUSB通信を確認しています
確認環境、方法を下記のとおりです。

マイコンAとマイコンBをそれぞれarmadillo610のTYPEA USBの上下段に接続
マイコンAからマイコンBに対しPollコマンドを送信:マイコンAの送信割込みは正常に完了
                        マイコンBの受信割込みは未検出
上記の状況より、armadilloからマイコンBに対し、マイコンAからのPollコマンドを
送信していないように思われます
armadilloがマイコンA,Bへの通信を行うためのalmadilloに対しての設定項目、確認内容等
ご教示いただきたく存じます
armadilloとPCをUSB接続し、下記コマンドへの応答を確認しましたので添付いたします
コマンド1:ls /dev/ttyACM*
コマンド2:sudo LANG=C systemctl status system_init_test.service

お忙しいところ恐れ入りますが宜しくお願い申し上げます

ファイル ファイルの説明
armadillo.bin PC USBシリアル通信LOG
armadillo_USB_log.txt PC USBシリアル通信コマンドレスポンス抜粋
コメント

アットマークテクノの古賀です。

hirakawa_yf さん:
>armadillo610のHOST機能USBを介してマイコン間のUSB通信を確認しています

この構成について質問ですが、二つのマイコンが、それぞれ USB デバイスとして振舞い、USB ホストの Armadillo を介して相互通信できるようにしたい、という理解で合っているでしょうか?

おそらく、以下の「コマンド2」に出現している system_init_test.service が、二つのマイコン(二つの USB デバイス)の仲介役となるプログラムであり、「コマンド1」の 'ls /dev/ttyACM*' の結果出力されている
 /dev/ttyACM0 /dev/ttyACM1
が、二つのマイコンに対応しているのだろうと思います(添付して頂いた armadillo.bin を拝見しました)。もし違っていましたら、教えて下さい。

上記の認識で合っている場合、二つのマイコンは、どちらも USB CDC ACM デバイスとして振舞い、system_init_test.service が、一方の CDC ACM デバイスから受信したデータをもう一方の CDC ACM デバイスに送信する、という仕組みなのだと思います。

>確認環境、方法を下記のとおりです。
>
>マイコンAとマイコンBをそれぞれarmadillo610のTYPEA USBの上下段に接続
>マイコンAからマイコンBに対しPollコマンドを送信:マイコンAの送信割込みは正常に完了
>                        マイコンBの受信割込みは未検出
>上記の状況より、armadilloからマイコンBに対し、マイコンAからのPollコマンドを
>送信していないように思われます
>armadilloがマイコンA,Bへの通信を行うためのalmadilloに対しての設定項目、確認内容等
>ご教示いただきたく存じます
>armadilloとPCをUSB接続し、下記コマンドへの応答を確認しましたので添付いたします
>コマンド1:ls /dev/ttyACM*
>コマンド2:sudo LANG=C systemctl status system_init_test.service

system_init_test.service の動作の詳細が分からないので、コメントするのが難しいですが、要因切り分けのため、Armadillo で minicom を起動して、「マイコンA」に割当たっている方の /dev/ttyACMx (ACM0 or ACM1) からデータを受信できるかどうか確認してみる、というのは、いかがでしょうか?