2393018_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2393018_ja-JP

2393018_ja-JP

S32K3: スリープモード中のWKPUウェイクアップ割り込み動作

こんにちは、NXPサポートの皆さん、

S32K312 MCUを使用しており、割り込みコールバック付きのWKPU(ウェイクアップユニット)チャネルを設定しています。
注:Wkpu[n]に+4のオフセットを加算します -> n+4

ECUが低電力モードに入った際のWKPUの動作について明確にしたいと思います。

私たちの質問は次のとおりです。

  1. MCUがスリープ/スタンバイモードの場合、WKPUは設定済みの外部ウェイクアップピンを引き続き監視しますか?

  2. 設定済みの外部エッジがスリープ/スタンバイモードで検出された場合、WKPUはMCUを起動させますか?

  3. MCUが起動した後、設定されたWKPU割り込みコールバックは自動的に実行されるのか、それとも追加のソフトウェア処理が必要になるのか?

  4. スリープ/スタンバイモードからの覚醒を保証するために、特定のWKPU、NVIC、または電源管理の設定が必要ですか?

  5. S32K312でサポートされている低電力モード(スリープ、ストップ、スタンバイなど)間で、WKPUのウェイクアップ動作に違いはありますか?

私たちはこのS32K312にNXP RTDドライバを使用しています。

再開まで今しばらくお待ちください。

Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode

こんにちは、NXP チームの皆様、

迅速なご対応ありがとうございます。

私はNXP S32K312 MCUを使っています。PTB2(WKPUチャネル8)に外部割り込みソース(WKPU)を設定しました。割り込みは、センサーINT2ピンがアサートした際にMCUをスリープ/スタンバイモードから起動させることを目的としています。

私の質問は次のとおりです。

  • 外部WKPU割り込みを受信した場合、ウェイクアップ後に設定されたコールバック関数を自動的に呼び出すべきでしょうか?

  • それとも、WKPUは外部ソースがWKPUピンの入力として設定されているときだけウェイクアップイベントを発生させ、PTB2をEIRQピンとして設定し、WKPU**ドライバ**を**ペリフェラル**として使う必要があるのでしょうか?

  • コールバックが想定される場合、追加の設定(NVIC、割り込みルーティング、WKPU設定、モード依存の制限など)が必要ですか?

私の現在の実装では、外部割り込みは実行モードでEIRQ/ECUとして設定するとMCUを正常に起動させますが、スタンバイモードでは動作せず(Wkpuがピンとペリフェラルの両方に設定されている場合)、設定されたコールバックは実行されません。

WKPUの期待される挙動とコールバック実行に必要な設定について、説明していただけますか?

よろしくお願いします。

Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode

こんにちは、 @Dia さん

  1. はい、WKPUエンジンは複数の設定可能な非同期ウェイクアップイベントからチップをウェイクアップする機能を持っています。

  2. はい。こちらがWKPUの起床イベント後の待機出口シーケンスです:

    スタンバイモード終了後、以下のイベントが発生します。
    1. 目覚めのイベントが訪れる
    2. FIRCは(スタンバイモードで無効になっている場合)電源がオンになります。
    3. PMCはFPMへの移行プロセスを開始します(例えば、ラストマイルレギュレータを有効にし、チップにV1_RUN電源を供給します)。
    4. MC_PCUは実行ドメインとスタンバイドメインの分離を解消します
    5. ドメインリセット解除(スタンバイエントリ時にアサートされる)を実行すると、チップはこのドメインの機能リセット終了シーケンスを実行します。
    6. チップは動作実行モードに入ります

  3. 追加の設定が必要です。ウェイクアップフラグレジスタはウェイクアップ後も保持されるため、ウェイクアップユニットのNVIC→ISERがコードで有効化されるとウェイクアップISRを入力できます。したがって、ウェイクアップ後、実行モードでプラットフォーム関数を呼び出してウェイクアップ用の割り込みを有効にする(WKPU_IRQnにISERを設定しNVIC_)すると、プログラムはウェイクアップ割り込み機能にジャンプします。

  4. S32K3は2つのモードのみをサポートしています:ランとスタンバイ。

    Julin_AragnM_7-1783635768438.png
    しかし、ウェイクアップの挙動には違いがあり、S32K3は通常のスタンバイ出口または高速スタンバイ出口を選択できます。

    Julin_AragnM_8-1783635776576.png
    リセットと通常のスタンバイ終了はHSE sBAFの初期化コードとHSE_FW検証の両方を実行し、高速スタンバイ終了は時間を節約するためにバイパスし、ユーザー定義のアドレスで起動します。詳細については、S32K3XXのリファレンスマニュアルにある 図176 (電源起動シーケンス)を参照してください。

S32K3の低電力管理ANやデモのパワーマネージメントドキュメントを調べてみることをおすすめします。

最新の例も参照できます:[RTD600 MCAL & IP] S32K3 低パワーマネージメントANやデモ。

よろしくお願いします、
ジュリアン

Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode

こんにちは、 @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の中にブレークポイントを入れることはできますか?

よろしくお願いします、
ジュリアン

タグ(1)
評価なし
バージョン履歴
最終更新日:
3 週間前
更新者: