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

cross mob

USBエニュメレート中のFX3 SDKからのCY_U3P_USB_EVENT_LMP_EXCH_FAILイベントの処理 - KBA225778 - Community Translated (JA)

lock attach
Attachments are accessible only for community members.

USBエニュメレート中のFX3 SDKからのCY_U3P_USB_EVENT_LMP_EXCH_FAILイベントの処理 - KBA225778 - Community Translated (JA)

GeethaP_31
Employee
Employee
50 questions asked 10 questions asked 5 questions asked

Community Translated by NoTa_4591161 Expert        Version: **

Translation - English: Handling CY_U3P_USB_EVENT_LMP_EXCH_FAIL Event from FX3 SDK during USB Enumeration - KBA225778

質問:

FX3 SDKからのUSBエニュメレート中にCY_U3P_USB_EVENT_LMP_EXCH_FAILイベントを処理する方法を教えて下さい。

回答:

FX3 SDK は、ホストからのポート機能要求またはポート設定要求のいずれかがタイムアウトになると、CY_U3P_USB_EVENT_LMP_EXCH_FAILイベントをユーザーアプリケーションに通知します。サイプレスは、このイベントを処理している間、ユーザーアプリケーションでUSBインターフェイスブロックの再起動を推奨しております。

次の手順は、サンプルアプリケーションプロジェクトのイベントを処理する方法を示しています。

1. USBイベントコールバックを構成して、CY_U3P_USB_EVENT_LMP_EXCH_FAIL イベントの受信時にカスタムフラグCY_FX_USB_RESTART_EVT_FLAG をメインアプリケーションイベントに設定します。

case CY_U3P_USB_EVENT_LMP_EXCH_FAIL:

  CyU3PEventSet (&glApplnEvent, CY_FX_USB_RESTART_EVT_FLAG, CYU3P_EVENT_OR);

     break;

2. CyU3PEventGet APIを使用して、アプリケーションスレッドエントリ関数でカスタムイベントフラグ(CY_FX_USB_RESTART_EVT_FLAG )を受け取ります。イベントマスク(evMask )は、CY_FX_USB_RESTART_EVT_FLAG を受信するように設定する必要があることに注意してください。CyFxAppUsbRestart()関数は、USBインターフェイスのブロックを再初期化します。CyFxAppUsbRestart()のソースコードは、添付のサンプルプロジェクトに含まれています。

/* USBブロックの再起動要求 */

#define CY_FX_USB_RESTART_EVT_FLAG(1 << 3)

.

.

.

/*イベントマスク構成 */

uint32_t evMask = CY_FX_SETCONF_EVENT_FLAG | CY_FX_RESET_EVENT_FLAG | CY_FX_USB_RESTART_EVT_FLAG;

  .

.

.

.

/*アプリケーションスレッドでのカスタムイベントの処理 */

for(;;)

{

  status = CyU3PEventGet(&glApplnEvent, evMask, CYU3P_EVENT_OR_CLEAR, &evStat, CYU3P_WAIT_FOREVER);

        if(status == CY_U3P_SUCCESS)

{

          If(evStat&CY_FX_USB_RESTART_EVT_FLAG)

{

CyFxAppUsbRestart();

}

.

.

.

注意:

これらの手順は、FX3FX3SCX3、およびSD3に適用されます。

添付ファイルUSBBulkLoopAuto.zipは、USBBulkLoopAuto FX3 SDKサンプルプロジェクトの修正バージョンです。関連する変更について、cyfxbulklpauto.cファイルでHANDLE_LMP_EXCH_FAIL_EVTを検索してください。

添付
0 件の賞賛
289 件の閲覧回数
寄稿者