Armadilloフォーラム

[X1] CON8のUSBでUSBガジェット(シリアル通信-マスストレージ)を使う

bashi18

2022年2月18日 21時32分

お世話になっております。
以下の記事
https://armadillo.atmark-techno.com/blog/615/7523
を参考にX1でシリアル通信-マスストレージにトライしております。

拡張ボードを使用していませんので、
・CON8の47~50ピンにUSBコネクタ(TypeB)を取り付け
・dts は armadillo_x1-extboard-eva01-usbotg2-device.dtsi から

&usbotg2 {
	dr_mode = "peripheral";
	status = "okay";
};

 の部分を移植
・カーネル/dtbファイルはUSBガジェットのコンフィグと上記を適用した自分の環境のファイルを使用
・ブートローダーは標準のまま
が相違点と考えています。

この状態で起動し、WindowsPCと接続すると
Armadillo側:

g_acm_ms gadget: high-speed config #1: Composite Gadget (ACM + MS)

 というメッセージが大量に表示されます。

PC側:
 ポンポロリンというUSBを刺したときのSEが何回も鳴りますが、認識されません。
 デバイスマネージャの「USBコントローラー」欄に
 「不明なUSBデバイス(デバイス記述要求の失敗)」と表示されている

お助けいただけないでしょうか。
よろしくお願いいたします。

コメント

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

bashi18さん:
>以下の記事
>https://armadillo.atmark-techno.com/blog/615/7523
>を参考にX1でシリアル通信-マスストレージにトライしております。
>
>拡張ボードを使用していませんので、
>・CON8の47~50ピンにUSBコネクタ(TypeB)を取り付け
>・dts は armadillo_x1-extboard-eva01-usbotg2-device.dtsi から
>

>&usbotg2 {
>	dr_mode = "peripheral";
>	status = "okay";
>};
>

> の部分を移植
>・カーネル/dtbファイルはUSBガジェットのコンフィグと上記を適用した自分の環境のファイルを使用
>・ブートローダーは標準のまま
>が相違点と考えています。
>
>この状態で起動し、WindowsPCと接続すると
>Armadillo側:
>

>g_acm_ms gadget: high-speed config #1: Composite Gadget (ACM + MS)
>

> というメッセージが大量に表示されます。
>
>PC側:
> ポンポロリンというUSBを刺したときのSEが何回も鳴りますが、認識されません。
> デバイスマネージャの「USBコントローラー」欄に
> 「不明なUSBデバイス(デバイス記述要求の失敗)」と表示されている
>
>お助けいただけないでしょうか。

PC 側から見ると、対向 USB デバイスの接続を検出したものの、USB 通信で対向デバイスからディスクリプタ(記述子)を読み出そうとして失敗する状況のようですね。
Armadillo 側のログ(メッセージ)出力状況を見ると、USB ホストから接続されたことを検出して、ガジェットドライバをロードして動作開始しようとするところで失敗しているのではないかと思います。もしかすると、CON8 と USB コネクタの接続に問題があるのかも知れません。

確認ですが、CON8 と USB コネクタの接続は、拡張ボードの回路図を参考にしていらっしゃるでしょうか?
 https://armadillo.atmark-techno.com/armadillo-x1/resources/documents

> PC 側から見ると、対向 USB デバイスの接続を検出したものの、USB 通信で対向デバイスからディスクリプタ(記述子)を読み出そうとして失敗する状況のようですね。
> 確認ですが、CON8 と USB コネクタの接続は、拡張ボードの回路図を参考にしていらっしゃるでしょうか?
>  https://armadillo.atmark-techno.com/armadillo-x1/resources/documents

古賀様ありがとうございます。
CON8に100 ピンコネクタ ピッチ変換基板を接続し、BタイプのUSBコネクタ(メス)と直で配線しています。
 CON8 47(USB_OTG2_DP) <-> USBコネクタ3番
 CON8 48(USB_OTG2_DN) <-> USBコネクタ2番
 CON8 49(GND) <-> USBコネクタ4番(およびケース)
 CON8 50(USB_OTG2_VBUS) <-> USBコネクタ1番

教えていただいた拡張基板の回路図を見ると色々着いているのですね。
Deviceとして動かすだけであればほとんどいらないと思うのですが
どれが必須でしょうか?
回路の知識が乏しくレベルの低い質問ですみません。

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

bashi18さん:
>>確認ですが、CON8 と USB コネクタの接続は、拡張ボードの回路図を参考にしていらっしゃるでしょうか?
>> https://armadillo.atmark-techno.com/armadillo-x1/resources/documents
>
>古賀様ありがとうございます。
>CON8に100 ピンコネクタ ピッチ変換基板を接続し、BタイプのUSBコネクタ(メス)と直で配線しています。
> CON8 47(USB_OTG2_DP) <->USBコネクタ3番
> CON8 48(USB_OTG2_DN) <->USBコネクタ2番
> CON8 49(GND) <->USBコネクタ4番(およびケース)
> CON8 50(USB_OTG2_VBUS) <->USBコネクタ1番
>
>教えていただいた拡張基板の回路図を見ると色々着いているのですね。
>Deviceとして動かすだけであればほとんどいらないと思うのですが
>どれが必須でしょうか?
>回路の知識が乏しくレベルの低い質問ですみません。

USB 通信の信号線は DP と DN ですから、この二本に関するところは、参考にする方が良いのではないかと思います。
 https://www.murata.com/-/media/webrenewal/products/emc/emifil/cmcc/pdf/…

USB コネクタとの接続回路を変更するのに時間がかかる場合、試しにですが、dts で maximum-speed に "full-speed" を指定すると、どうなるでしょうか?
 https://github.com/atmark-techno/linux-4.9-at/blob/master/Documentation…

古賀様
情報ありがとうございました。
100pin変換基板からジャンパ線でUSBコネクタに繋げていたのですが、
弊社の回路系の人間に聞いたところ、そんなつなぎ方でUSBが動くわけねーだろwと笑われてしまいました。
ちゃんとした環境を整えてから再度トライしたいと思います。