PSoC® 3/PSoC 5LP ウェイクアップソースとしてのスリープタイマ (Sleep Timer) - KBA90926 - Community Translated (JA)

Version 1

    Community Translated by  Motoo Tanaka Expert         Version: **

     

    Translation - English: Sleep Timer as a Wake-Up Source in PSoC® 3 and PSoC 5LP – KBA90926

     

    質問:PSoC 3 や PSoC 5LP でスリープタイマ (Sleep Timer) をウェイクアップソースとして使用する場合に注意する事は何ですか?

     

    回答:

    PSoC 3 や PSoC 5LP ではスリープタイマ (Sleep Timer) はオルタネートアクティブモードやスリープモードからのウェイクアップソースとして使用することが可能です。それは 1-kHz の内蔵低周波発振器 (ILO) に基づく、セントラルタイマホイール (CTW) を使用します。下図が PSoC Creator™で使用できる Sleep Timer コンポーネントです:

    001-182942.png

     

    重要:

    Sleep Timer がウェイクアップソースとして使用される場合、Sleep Timer が割込みを発生する度に SleepTimer_GetStatus API をコールする必要があります。Sleep Timer による割込み時に SleepTimer_GetStatus() 関数が呼ばれないと割込みがクリアされません。割込みから抜けたとたんに再度割込みに入ってしまいます。この関数は Sleep Timer の ISR 内に記述することが可能です。

    SleepTimer_GetStatus() 関数は内部で CyPmReadStatus 関数を CY_PM_INT_SR_REG ステータスレジスタの2番目のビット CY_PM_CTW_INT を引数としてコールします。このステータスレジスタは FTW や OPPS 等他のイベントのステータスも含んでいますが、CTW イベントのマスクビットが渡されるために、CTW イベントに関係したビットのみがクリアされます。結果として CTW 割込みステータスがクリアされます。

    Sleep Timer コンポーネントを正しく動作させるために、毎回デバイスがウェイクアップした時と毎回 Sleep Timer 割込みが発生した時には SleepTimer_GetStatus() 関数をコールする必要があります。