CY7C68001(SX2)がIdle状態が3ms以上続いてもD+がプルアップされない

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
hiikc_3918076
Level 1
Level 1
First question asked First reply posted

現在SX2を使用してセルフパワーのデバイス製品を作っているのですが,

デバイスの電源を入れたままPCをシャットダウンして,その後PCを再起動

するとデバイスが認識されません(デバイスマネージャにも表示されない).

USBの信号(D+,D-)をオシロスコープで観測すると,Chirp終了後にPCが

SOFを出さないことが分かりました.ここまではPCに問題があります.

しかし,SX2もSOFが出ない状態が続く場合,すなわちIdleが3ms以上継続した場合,

USBの仕様上High Speedの終端をOffしてD+をプルアップしなければならないはずが,

ずっとSOFを待つ状態にいるようで,デバイスの電源を立ち上げ直すまで

PCとの接続ができません.

これに関してはおそらくSX2の実装に漏れ(バグ)があると思われます.

ちなみにSX2にデスクリプタを再度書き込むとSX2がD+をプルアップして,

PCと正常に接続されるようになります.

SX2にデスクリプタを再度書き込む以外に,SX2の実装漏れの回避方法など

あるでしょうか?

0 件の賞賛
1 解決策

返信遅くなり申し訳ございません。

SX2の場合、ハードウェアの変更による解決をする必要がありますが、弊社では今の所Bus-powerデバイスの場合での解決策しかありませんでした。

Bus-powerの場合は、VBUSの供給をRC回路で200ms程度遅延させてスタートアップを遅くすることですが、今回はSelf-powerなのでこれは機能しません。

そのため、お客様のハードウェアでどのような解決策があるか、回路図を見て検討させていただきたいと思います。

回路図をご提供いただくことは可能でしょうか。

大変お手数おかけしますが、よろしくお願い致します。

Hirotaka Takayama

元の投稿で解決策を見る

0 件の賞賛
6 返答(返信)
HirotakaT_91
Moderator
Moderator
Moderator
500 replies posted 250 replies posted 100 replies posted

Cypress Developer Communityをご利用いただきありがとうございます。

状況から見るに、SX2はSuspend stateに入るべきところで入れていないように思われます。

さらに状況を明確にしていくために、以下の情報をいただくことは可能でしょうか。

1. 問題発生時のUSBトレースの結果

2. VBUSの観測データ(オシロスコープのキャプチャなど)

3. PCは完全にシャットダウンをし、その後起動し直した、と理解しましたが合っていますでしょうか?またはシャットダウンではなく再起動を実行していますか?

よろしくお願い致します。

Hirotaka Takayama

0 件の賞賛

ご返信頂きましてありがとうございました.

以下ご回答いたします.

1. 問題発生時のUSBトレースの結果

USBトレースは下図になります.

PCを立ち上げた状態からPCの電源を切り(シャットダウン),再度PCを立ち上げた時のUSBトレースです.

PCからSOFが発行されていたのがシャットダウンでSOFが途切れ,再度PCが立ち上がってChirpが

行われた後なにもトレースは記録されていません.

USB認識しない.jpg

2. VBUSの観測データ(オシロスコープのキャプチャなど)

セルフパワーのデバイスなのでVBUSは使用しておらず,オシロで測定はおこなっていません.

D+,D-を観測したものは下図となります.

all.jpg

①の部分を拡大すると,デバイスChirpが始まっています.

1.jpg

②の部分を拡大すると,HUB Chirp終了後Host(PC)がSOFを出さずIdle状態になります.

根本的にはPCがSOFが出していないことが問題なのですが,

Idle状態が続けばSX2はD+をプルアップしてFullスピード状態に戻り,

Device detectを待つ状態になると思われますが,そうなっていません.

2.jpg

3. PCは完全にシャットダウンをし、その後起動し直した、と理解しましたが合っていますでしょうか?またはシャットダウンではなく再起動を実行していますか?

はい,そうです.完全にシャットダウンしてから起動し直しています.

ですが,今回の現象は電源を落とさずに再起動しても発生しています.

お手数をおかけいたしますが,ご確認の程どうぞ宜しくお願いいたします.

0 件の賞賛

詳細にご説明いただきありがとうございます。

調査を行ったところ、FX2 familyで共通の問題のようです。

適切な解決策をご提案するため、以下2点教えていただけますでしょうか?

1. ホストOSのバージョン(Windows XP SP1など)はなんですか?

2. お客様の作成されたボード上にSX2が実装されていますか?または弊社のDVKを使われていますか?(前者だと認識しています。)

よろしくお願い致します。

Hirotaka Takayama

0 件の賞賛

ご返信頂きましてありがとうございます.

以下ご回答いたします.

1.ホストのOSは,Windows10 Enterprise 2016 LTSB (x64)です.

2.弊社製基板上にSX2を実装しております.

どうぞ宜しくお願いいたします.

0 件の賞賛

ホストと基板のご連絡ありがとうございます。

FX2でしたら以下のように解決可能です。

ワークアラウンド:ファームウェアでステートマシンを遷移させることで問題を解決します。

ステートマシンがend_resetステートであることをFX2は検出できますので、この状態からSuspendモードへと遷移させます。

以下のコードをHigh-Speed ISRに追加することで上記動作が可能です。

if (EZUSB_HIGHSPEED())

{

     #define HS_INACTIVE_COUNT 272

     WORD CT4Count = HS_INACTIVE_COUNT;

     // Look for CT4.3 (JK activity) inactive for 500us

     // This loop was hand-counted to be 22/12 = 1.8us long,

     // so 272 iterations are 500us

     while(--CT4Count)

     {

          if (CT4 & 😎

               CT4Count = HS_INACTIVE_COUNT;

     }

     // If we timed out in state C (wait for SOF), bump the state machine to

     //state D.

     if (CT2 == 0xc)

     {

          CT1 = 2;

          WRITEDELAY();

          CT2 = 0xd;

          WRITEDELAY();

          CT1 = 0;

     }

     // Resume normal high-speed ISR

     pConfigDscr = pHighSpeedConfigDscr;

}

CT1, CT2, CT4の定義は以下の通りです。

CT1 - Chirp Test -- Override:

CT1.1 = override_fsm -> puts the chirp state machine in the hands of the 8051

CT2 -- Chirp Test-- FSM:

CT2.[4:0] = chirp_state[4:0]: chirp state machine state

CT2.[7:5] = reserved

CT4 -- Chirp Test-- Inputs:

CT4.3 = phs_pik_data_valid -> gives the state data_valid from the phase-picker

SX2について、解決方法を内部で協議しております、申し訳ございませんが少々お待ちください。

よろしくお願い致します。

Hirotaka Takayama

0 件の賞賛

返信遅くなり申し訳ございません。

SX2の場合、ハードウェアの変更による解決をする必要がありますが、弊社では今の所Bus-powerデバイスの場合での解決策しかありませんでした。

Bus-powerの場合は、VBUSの供給をRC回路で200ms程度遅延させてスタートアップを遅くすることですが、今回はSelf-powerなのでこれは機能しません。

そのため、お客様のハードウェアでどのような解決策があるか、回路図を見て検討させていただきたいと思います。

回路図をご提供いただくことは可能でしょうか。

大変お手数おかけしますが、よろしくお願い致します。

Hirotaka Takayama

0 件の賞賛