KW41Zで動作するアプリケーションが低電力モードで動作しない場合、デバイスは32kHz発振器なしで動作する可能性があります。ただし、正しく動作させるには、クロック設定を変更する必要があります。
図 1.KW41Zクロック分配
デフォルトでは、KW41Z上で動作するソフトウェアスタックは、32kHz発振器を必要とするクロックソースを選択します。ただし、32kHz発振器が使用できない場合は、クロック構成を変更する必要があります。幸いなことに、それを変更するオプションはすでに実装されており、クロック構成を目的のものに変更するだけで済みます。これを行うには、 app_preinclude.h にある CLOCK_INIT_CONFIG マクロの値を変更しますファイル。
/* Define Clock Configuration */
#define CLOCK_INIT_CONFIG CLOCK_RUN_32この例で選択したモード CLOCK_RUN_32、選択したクロック モードは BLPE (Bypassed Low Power External) です。このモードでは、FLL は完全にバイパスされ、クロックは外部 RF 発振器 (この場合は 32MHz の外部クロック) から導出されます。
これらのマクロは、クロック設定を変更するためのデフォルトのオプションであり、 ボードにあります。ファイル。最適な構成を選択するのは、アプリケーションと開発者に任されています。
#define CLOCK_VLPR 1U
#define CLOCK_RUN_16 2U
#define CLOCK_RUN_32 3U
#define CLOCK_RUN_13 4U
#define CLOCK_RUN_26 5U
#define CLOCK_RUN_48_24 6U
#define CLOCK_RUN_48_16 7U
#define CLOCK_RUN_20_FLL 8U各クロック モードとそのクロック ソースの詳細については、KW41Z リファレンス マニュアルの 「Chapter 5: Clock Distribution」の「Section 5.4 Clock definitions」、および 「Chapter 24: Multipurpose Clock Generator」を参照してください。
有益な投稿をありがとう。いくつか問題/質問があります。
1.)両方の私のボード.hとapp_preinclude.hfiles には、CLOCK_INIT_CONFIG用の #define が含まれています。この変更は、app_preinclude.h の値を更新すると反映されます。上記のようにファイル。
2.)上記のようにCLOCK_INIT_CONFIGをCLOCK_RUN_32に更新すると、OSA_TaskCreate()を実行しようとするとTMR_Init()モジュールがクラッシュします。何か提案はありますか?