こんにちは、NXPサポートの皆さん、
S32K312 MCUを使用しており、割り込みコールバック付きのWKPU(ウェイクアップユニット)チャネルを設定しています。
注:Wkpu[n]に+4のオフセットを加算します -> n+4
ECUが低電力モードに入った際のWKPUの動作について明確にしたいと思います。
私たちの質問は次のとおりです。
MCUがスリープ/スタンバイモードの場合、WKPUは設定済みの外部ウェイクアップピンを引き続き監視しますか?
設定済みの外部エッジがスリープ/スタンバイモードで検出された場合、WKPUはMCUを起動させますか?
MCUが起動した後、設定されたWKPU割り込みコールバックは自動的に実行されるのか、それとも追加のソフトウェア処理が必要になるのか?
スリープ/スタンバイモードからの覚醒を保証するために、特定のWKPU、NVIC、または電源管理の設定が必要ですか?
S32K312でサポートされている低電力モード(スリープ、ストップ、スタンバイなど)間で、WKPUのウェイクアップ動作に違いはありますか?
私たちはこのS32K312にNXP RTDドライバを使用しています。
再開まで今しばらくお待ちください。
こんにちは、NXP チームの皆様、
迅速なご対応ありがとうございます。
私はNXP S32K312 MCUを使っています。PTB2(WKPUチャネル8)に外部割り込みソース(WKPU)を設定しました。割り込みは、センサーINT2ピンがアサートした際にMCUをスリープ/スタンバイモードから起動させることを目的としています。
私の質問は次のとおりです。
外部WKPU割り込みを受信した場合、ウェイクアップ後に設定されたコールバック関数を自動的に呼び出すべきでしょうか?
それとも、WKPUは外部ソースがWKPUピンの入力として設定されているときだけウェイクアップイベントを発生させ、PTB2をEIRQピンとして設定し、WKPU**ドライバ**を**ペリフェラル**として使う必要があるのでしょうか?
コールバックが想定される場合、追加の設定(NVIC、割り込みルーティング、WKPU設定、モード依存の制限など)が必要ですか?
私の現在の実装では、外部割り込みは実行モードでEIRQ/ECUとして設定するとMCUを正常に起動させますが、スタンバイモードでは動作せず(Wkpuがピンとペリフェラルの両方に設定されている場合)、設定されたコールバックは実行されません。
WKPUの期待される挙動とコールバック実行に必要な設定について、説明していただけますか?
よろしくお願いします。
こんにちは、 @Dia さん。
S32K3の低電力管理ANやデモのパワーマネージメントドキュメントを調べてみることをおすすめします。
最新の例も参照できます:[RTD600 MCAL & IP] S32K3 低パワーマネージメントANやデモ。
よろしくお願いします、
ジュリアン
こんにちは、 @Dia さん。
外部WKPU割り込みを受信した場合、ウェイクアップ後に設定されたコールバック関数を自動的に呼び出すべきでしょうか?
割り込み初期化を呼び出すと、WKPU_EXT_IRQ_SINGLE_ISR()が入力されます。コールバックを使う場合は、割り込み初期化を呼び出す前に以下の行を追加できます:
Wkpu_Ip_u32ChState[0].chInit = TRUE;
Wkpu_Ip_u32ChState[0].notificationEnable = TRUE;
Wkpu_Ip_u32ChState[0].WkpuChannelNotification = Wkpu_Callback;
IntCtrl_Ip_Init(&IntCtrlConfig_0);
ISRの処理が完了すると、WKPUコールバックが開始されます。
それとも、WKPUは外部ソースがWKPUピンの入力として設定されているときだけウェイクアップイベントを発生させ、PTB2をEIRQピンとして設定し、WKPU**ドライバ**を**ペリフェラル**として使う必要があるのでしょうか?
これも妥当な意見です。コールバック設定を使って、WKPUリクエストがスタンバイ前に呼び出されたかどうかを確認できます。
コールバックが想定される場合、追加の設定(NVIC、割り込みルーティング、WKPU設定、モード依存の制限など)が必要ですか?
最初の回答を参照してください。
スタンバイ出口(ウェイクアップ)直後にMCUを止めて、MCUがジャンプしているかどうかを確認するためにWKPU_EXT_IRQ_SINGLE_ISRの中にブレークポイントを入れることはできますか?
よろしくお願いします、
ジュリアン