yamakawa
2020年3月6日 16時38分
やまかわと申します。
Armadillo-X1の各USBポートを使用して、テストパターンを出力したいと考えています。
各USBポートは、Armadillo-X1のマニュアルにあるブロック図より、
・USB_OTG1 - CON2
・USB_OTG2 - CON8より拡張
・USB_HUB3 - CON8より拡張
となっており、各Host Modeとしております。
Linux-4.9を使用しており、
/sys/kernel/debug/ci_hdrc.#/prot_test
の使用により、
・USB_OTG1 - ci_hdrc.0
・USB_OTG2 - ci_hdrc.2
からはテストパターンの出力が確認できました。
このとき、
・USB_HUB3
はどのように指定すればよいでしょうか?
手順等、ご教示頂けると幸甚です。
以上、よろしくお願い致します。
コメント
at_mizo
yamakawa
やまかわです。
返信、ありがとうございます。
> USB_OTGは直接テストパターンを出力できるのに対し、USB Hubからテストパター
> ンを出力する為にはUSB Hubをテストモードに移行させる必要があります。
>
> 添付のパッチのように、ソースコードを変更して、テストモードに移行させてください。
>
> U-Bootの保守モードで次のようにパラメータを指定すると、HUB3からテストパ
> ターンが出力されると思います。
>
>
> => setenv optargs usbcore.hubtestport=3 > => boot >
>
> テストモードを変更する場合は、パッチ内の以下の部分を適宜変更してください。
>
>
> + __u16 test = TEST_PACKET; >
>
上記の手順にて、USB Hubをテストモードにしてみました。
起動時に、
set_port_feature - portID = 3, hubintestmode = 4
Setting HUB to send Test_Packet
Placing port in test mode passed
となっていることを確認しました。
ここで、USB_HUB3から何らかの波形(信号)が出力されていることを確認できましたが、
USB_OTG1やUSB_OTG2での波形とは異なるものでした。
> # こちらでは動作確認していませんが、パッチで示す通り該当ctrl_msgを送信
> # するとテストモードに移行すると思います。
とありますが、どのように指定(送信)すればよいか、例でも示して頂けると幸甚です。
以上、よろしくお願い致します。
at_mizo
溝渕です。
> 上記の手順にて、USB Hubをテストモードにしてみました。
> 起動時に、
> set_port_feature - portID = 3, hubintestmode = 4
> Setting HUB to send Test_Packet
> Placing port in test mode passed
> となっていることを確認しました。
> ここで、USB_HUB3から何らかの波形(信号)が出力されていることを確認できましたが、
> USB_OTG1やUSB_OTG2での波形とは異なるものでした。
どのように異なっていましたか?
test mode(Test_J, Test_Kなど)を合わせた上で異なりますか?
> > # こちらでは動作確認していませんが、パッチで示す通り該当ctrl_msgを送信
> > # するとテストモードに移行すると思います。
> とありますが、どのように指定(送信)すればよいか、例でも示して頂けると幸甚です。
パッチ内の、以下の箇所が該当します。
+ return usb_control_msg(hdev, usb_sndctrlpipe(hdev, 0), + USB_REQ_SET_FEATURE, USB_RT_PORT, USB_PORT_FEAT_TEST, ((test << 8) | hubtestport), + NULL, 0, 1000);
yamakawa
山川です。
> > ここで、USB_HUB3から何らかの波形(信号)が出力されていることを確認できましたが、
> > USB_OTG1やUSB_OTG2での波形とは異なるものでした。
>
> どのように異なっていましたか?
>
> test mode(Test_J, Test_Kなど)を合わせた上で異なりますか?
>
簡単ではありますが、波形を取得してみましたので、添付致します。
ご確認頂けると幸甚です。
ファイル | ファイルの説明 |
---|---|
Test_Waveform_20200309.pdf |
at_mizo
yamakawa
at_mizo
yamakawa
やまかわです。
> こちらでもArmadillo-X1でUSB_HUB3のテスト波形を確認してみましたが、綺麗
> に出力されていました。
ご確認、ありがとうございます。
お手数ですが、測定波形をご教示頂けないでしょうか?
> Armadillo-X1のCON8の該当ピンに直接プローブを接続しました。対向デバイス
> も何も接続されていない状態で波形を確認しています。
>
> 山川様のお手元でも同様の測定環境でしょうか。
>
こちらでも、対向デバイスに何も接続しない状態で、CON8のピンを測定しております。
(USB_OTG2と同じ条件で測定しております。)
at_mizo
溝渕です。
> お手数ですが、測定波形をご教示頂けないでしょうか?
差動プローブで測定した波形を添付します。
2つの波形は共にTEST_PACKETで、測定レンジのみ異なります。
ファイル | ファイルの説明 |
---|---|
USB波形.png | |
USB波形2.png |
yamakawa
溝渕 様
山川です。
> 差動プローブで測定した波形を添付します。
波形のご提示、ありがとうございます。
確かに、正しそうな波形が出力されているようです。
こちらでは、TEST_J, TEST_Kでは正しく動作していそうなのに、
TEST_PACKETが正しくないことに苦慮しております。
確認させて頂きたいのですが、
・hub.c (パッチで変更されていると思われます。)
・カーネルコンフィグ (.config)
のご提示は可能でしょうか?
同じ条件を作り出したいと考えております。
その他、指定・変更すべき事項はありますか?
ご回答頂けると幸甚です。
yamakawa
at_mizo
yamakawa
やまかわです。
> ファイルの添付をお願いいたします。
失礼しました、添付致します。
ファイル | ファイルの説明 |
---|---|
Test_Waveform_20200310.pdf |
at_mizo
yamakawa
at_mizo
溝渕です。
弊社で再度波形を測定してみました。
結果、Test_Waveform_20200310.pdf内の(USB_OTG2/USB_HUB3共に)一番下の波
形が正しい(コンプライアンス試験が通る状態)です。
USB_OTG2の場合、テストモードに移行させてから1秒程度待つと、下から2番目
の(矩形波が綺麗に出ているような)波形となりました。この状態ではコンプラ
イアンス試験が通りません。
山川様に示していただいた波形は、振幅が小さいのが気になります。これは恐
らくオシロスコープの周波数帯域不足によるものかと思います。
High Speedの測定をする場合は、オシロスコープの周波数帯域は2GHz以上が必
要です。また、コンプライアンス試験を行う場合は、専用のフィクスチャーボー
ドを接続する必要がありますのでご確認ください。
at_mizo
溝渕です。
> 確認させて頂きたいのですが、
> ・hub.c (パッチで変更されていると思われます。)
> ・カーネルコンフィグ (.config)
> のご提示は可能でしょうか?
hub.cは、Linuxカーネル v4.9-at12に、本スレッドに添付の
"linux-4.9.x-at_usbhub-testmode.patch"を適用したものを利用しました。
カーネルコンフィグは、デフォルトコンフィギュレーション(x1_defconfig)です。
> その他、指定・変更すべき事項はありますか?
オシロスコープとGNDはしっかり接続されていますか?
at_mizo
2020年3月6日 17時07分
溝渕です。
> Armadillo-X1の各USBポートを使用して、テストパターンを出力したいと考えています。
:省略
> ・USB_HUB3
> はどのように指定すればよいでしょうか?
USB_OTGは直接テストパターンを出力できるのに対し、USB Hubからテストパター
ンを出力する為にはUSB Hubをテストモードに移行させる必要があります。
添付のパッチのように、ソースコードを変更して、テストモードに移行させてください。
# こちらでは動作確認していませんが、パッチで示す通り該当ctrl_msgを送信
# するとテストモードに移行すると思います。
U-Bootの保守モードで次のようにパラメータを指定すると、HUB3からテストパ
ターンが出力されると思います。
テストモードを変更する場合は、パッチ内の以下の部分を適宜変更してください。