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

cross mob

X3:データがUSBソケットにコミットされた後でもUSB転送は発生しません– KBA231898 - Community Translated (JA)

X3:データがUSBソケットにコミットされた後でもUSB転送は発生しません– KBA231898 - Community Translated (JA)

JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Original KBAFX3: USB transfers do not occur even after data is committed to USB socket – KBA231898

Translated byKenshow

バージョン:  **

FX3 SDK 1.3.4では、CyU3PConnectState() APIを使用してUSB接続を設定する前にUSBソケットに関連付けられたDMAチャネルを作成すると、USBソケットへのデータのコミットに成功してもUSB転送が発生しない場合があります(CyU3PDmaChannelCommitBuffer()またはCyU3PDmaMultiChannelCommitBuffer() APIはCY_U3P_SUCCESSを返します)。シナリオ例を図1と図2に示します。

 

1. USBソケットにコミットされたDMAバッファを示すUARTデバッグプリント

JennaJo_0-1614315718012.png

 

2. USBコントロールセンタからのUSBIN転送が失敗する

JennaJo_1-1614315717516.png

 

ノート:

  1. エラーコード997は、FX3にUSBホストに転送するデータがない場合に発生するタイムアウトエラーです。
  2. FX3 DMAチャネル、DMAバッファ、およびソケットの詳細については、EZ-USBFX3テクニカルリファレンスマニュアルを参照してください。
  3. USBコントロールセンタを使用したFX3へのデータ転送のプログラミングと実行については、AN75705EZ-USBFX3入門を参照してください。

この問題は、FX3 SDKリリースノートに記載されている既知の問題が原因で発生する可能性があり、USB デバイスモードでの接続開始時に USB ソケットに関連付けられた DMA チャンネルの設定が無効になる可能性があることに言及しています。

この問題を回避するには、CyU3PDmaChannelReset()またはCyU3PDma-MultiChannelReset()APIを使用してDMAチャネルをリセットし、各エニュメレートサイクルの後に再度有効にする必要があります。これは、CY_U3P_USB_EVENT_SETCONFイベントが発生したときに実行でき、USBデバイスが正常にエニュメレートされたことを示します。CY_U3P_USB_EVENT_SETCONFイベントの前に、USBソケットに関連付けられたDMAチャネルを使用しないでください。

0 件の賞賛
246 件の閲覧回数