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

cross mob

USBFS の サスペンド (Suspend) と レジューム (Resume) 機能 - KBA210675 - Community Translated (JA)

USBFS の サスペンド (Suspend) と レジューム (Resume) 機能 - KBA210675 - Community Translated (JA)

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

Community Translated by  MoTa_728816 Expert      Version: **

Translation - English: USBFS Suspend and Resume Functionality - KBA210675

質問: USBFS の サスペンド (Suspend) - レジューム (Resume) 機能はどのように実装したら良いでしょうか?

回答:

USB デバイスはバス上に 3 ms 以上動きが無い場合サスペンドに入ります。そしてさらに 7 ms 後には指定されたサスペンド電流以上の消費を抑えるためにシャットダウンします。これはバスの動きが停止してから 10 ms 以降、デバイスは規定されたサスペンド電流のみを消費するようにしなければならないということです。以下のコードは USBFS のサスペンド - レジューム機能の実装方法を示します。

            if(!USBFS_CheckActivity())

            {

                noActivityCount++;

                if(noActivityCount == USB_SUSPEND_TIME_TICKS)

                {

                    PSOC_APP_LED_Write(1);       // デバイスがサスペンドに入ったかを確認する。

                    USBFS_Suspend();    

                    CyPmSaveClocks();

                    CyPmSleep(PM_SLEEP_TIME_NONE, PM_SLEEP_SRC_PICU); /* PSoC 3/5LP はスリープモードに入る */

                    CyPmRestoreClocks();

                    USBFS_Resume();

                    init =1;                                // エンドポイントの再度初期化 - 注意 1

                    noActivityCount = 0;

                    PSOC_APP_LED_Write(0);      // LED で状態を確認する。

                }

            }

            else

            {

                noActivityCount = 0;

            }

注意 1: ウェイクアップ後、エンドポイントを再度有効にする必要があります;もし Mode 3/2 に入ってた場合、DMAの再設定も必要となります。

注意 2:  コードスニペットでは USBFS コンポーネントは “USBFS” という名称であることを仮定しています。

以下はアルゴリズム:

ファームウェアは USB の動作の状態をチェックします;もし 3 ms 間動作が無かったら、サスペンドが発生したことが分かります。ファームウェアが最低 3 ms の間待つように、USB_SUSPEND_TIME_TICKS の値を適切に保ちます。その後、ファームウェアは省電力スリープモードに入ります。レジュームが発生すると、ポートインタラプトコントロールユニット (PICU) の割込みによりウェイクアップして、USBFS コンポーネントの再設定とエンドポイントの再度初期化を行います (init 変数の状態を確認してファームウェアの中で行われます)。

0 件の賞賛
2533 件の閲覧回数
コメント
MiNe_85951
Level 7
Level 7
Distributor - TED (Japan)
50 likes received 500 replies posted 50 solutions authored

1.
質問: USBFS の サスペンド (Suspend) - レジューム (Resume) 機能はどのように実装したら良いでしょうか?

[Review]

質問: USBFS の サスペンド - レジューム 機能をどのように実装したら良いでしょうか?

2.

ファームウェアは USB の動作の状態をチェックします;もし 3 ms 間動作が無かったら、サスペンドが...

[Review]

ファームウェアは USB の動作の状態をチェックします;3 ms 間の非アクティブが判明した場合、サスペンドが...

寄稿者