Armadilloフォーラム

USB_HUB3について

kamedatomonobu

2021年10月5日 18時31分

お世話になります。

Armadillo-X1のCOM8でUSB_HUB3に通信デバイスを接続しています。
通常に動作する際は起動時に
 armadillo kernel: hub 2-1:1.0: USB hub found
 armadillo kernel: hub 2-1:1.0: 3 ports detected
がsyslogの残るのですが、
同様に起動してもUSB_HUB3が認識できない場合があります。
その場合は「device descriptor read/all, error -71」が発生しています。
起動するたびに認識できたり、できなかったりと状況が変わります。
(正常時とエラー発生時のsyslog抜粋を添付します)

起動時にUSB_HUB3が認識できない原因が不明なのですが、
考えられる原因と対処方法ご教授頂きたいです。

以上、宜しくお願いします。

ファイル ファイルの説明
正常.txt
エラー時.txt
コメント

at_akihito.irie

2021年10月7日 11時12分

入江です。

> 起動時にUSB_HUB3が認識できない原因が不明なのですが、
> 考えられる原因と対処方法ご教授頂きたいです。

原因としましては、おそらくUSBの信号品質が悪いためだと考えられます。

ハードウェア的な要因で起きることですので、お使いのハードウェア構成がわ
からなければアドバイスできることは少ないのですが、考えられることとして、
- USBの配線長が等長でない
- バラック配線をしていて、その距離が長い
- 電源が不安定
などが挙げられます。

そのため、配線長などハードウェア構成を見直してみることをおすすめします。

入江様
コメントありがとうございました。

BtoBコネクタで接続されていますので、USB信号品質は悪いかもしれません。
現状、発生率が20%弱なので、ハード以外で改善できることがないか
アドバイス頂けないでしょうか?
起動後にUSB_HUB3を再認識する方法などありませんでしょうか?

以上、宜しくお願い致します。

入江です。

> 起動後にUSB_HUB3を再認識する方法などありませんでしょうか?

HUBをリセットして再認識するためのスクリプトを作成してみましたので添付
いたします。

[armadillo]# chmod +x ./hub_reset.sh
[armadillo]# ./hub_reset.sh
usb3503 3-0008: switched to STANDBY mode
usb3503 3-0008: switched to HUB mode

ただし、仮にハードウェア起因の問題である場合にはHUBをリセットしても認
識しない場合もあり、接続できてもその後の通信中に切断される場合も考えら
れますので、ご留意ください。

ファイル ファイルの説明
hub_reset.sh

入江様

> HUBをリセットして再認識するためのスクリプトを作成してみましたので添付
> いたします。
スクリプト作成ありがとうございました。
再認識できるようになりました。

> ただし、仮にハードウェア起因の問題である場合にはHUBをリセットしても認
> 識しない場合もあり、接続できてもその後の通信中に切断される場合も考えら
> れますので、ご留意ください。
電源投入時に認識できなかった時にHUBをリセットする様にしたところ
なぜか、100%認識できるようになりました。