Original KBA: FX3: USB transfers do not occur even after data is committed to USB socket – KBA231898
Translated by: Kenshow
タイトル: FX3:データがUSBソケットにコミットされた後でもUSB転送は発生しません– KBA231898
バージョン: **
FX3 SDK 1.3.4では、CyU3PConnectState() APIを使用してUSB接続を設定する前にUSBソケットに関連付けられたDMAチャネルを作成すると、USBソケットへのデータのコミットに成功してもUSB転送が発生しない場合があります(CyU3PDmaChannelCommitBuffer()またはCyU3PDmaMultiChannelCommitBuffer() APIはCY_U3P_SUCCESSを返します)。シナリオ例を図1と図2に示します。
図1. USBソケットにコミットされたDMAバッファを示すUARTデバッグプリント
図2. USBコントロールセンタからのUSBIN転送が失敗する
ノート:
この問題は、FX3 SDKリリースノートに記載されている既知の問題が原因で発生する可能性があり、USB デバイスモードでの接続開始時に USB ソケットに関連付けられた DMA チャンネルの設定が無効になる可能性があることに言及しています。
この問題を回避するには、CyU3PDmaChannelReset()またはCyU3PDma-MultiChannelReset()APIを使用してDMAチャネルをリセットし、各エニュメレートサイクルの後に再度有効にする必要があります。これは、CY_U3P_USB_EVENT_SETCONFイベントが発生したときに実行でき、USBデバイスが正常にエニュメレートされたことを示します。CY_U3P_USB_EVENT_SETCONFイベントの前に、USBソケットに関連付けられたDMAチャネルを使用しないでください。