こんにちは、
私は S32K358 を使っており、GPIO を使用したスリープおよびウェイクアップ機能 を実証する S32K3XX 低パワーマネージメント の例を参照しました。しかし、期待通りに動作させることはできませんでした。
設定または実装に問題があるのではないかと考えています。私の設定とソース ファイルを確認して、正しいかどうか、または変更が必要かどうかをお知らせいただければ幸いです。
何度か試してみましたが、まだ希望通りの結果が得られませんでした、SOご指導をお願いしたいです。
ご検討のために、設定ファイルとソース ファイルを添付しましたのでご確認ください。
IDE: S32DS 3.5.14
ソフトウェアバージョン: 4.0
ハードウェア: S32K358
よろしくお願いします、
カルメガン C
こんにちは@karmegancjkさん、
ウェイクアップが検出され、S32K358 がリセット シーケンスに入ると、RAM の内容は揮発性ですか、それとも不揮発性ですか?
32KB の SRAM コンテンツは不揮発性です。つまり、スタンバイ時にも 32KB の SRAM に電力が供給されます。
RAM の内容を不揮発性にする必要がある場合、スタンバイ RAM メモリを作成し、RAM データをスタンバイ RAM メモリにコピーするにはどうすればよいでしょうか?
スタンバイ RAM を使用するには、リンカー ファイルを変更し、個別の 32 KB を割り当て、スタンバイ セクションを配置し、リンカー アドレス シンボルを調整する必要があります。前回のリセットが POR だった場合は、スタンバイ RAM の ECC も初期化する必要があります。
スタンバイ RAM の使用方法と、一般的な低電力化に関するプレゼンテーションをプライベート メッセージで送信しました。
S32K358 Cortex-M7 のスタンバイ モードは、スリープ モードやディープ スリープ モードに似ていますか?
はい、スタンバイ モードはディープ スリープに似ています。
よろしくお願いします、
ジュリアン
こんにちは、ジュリアン
GPIO 経由の S32K358 スリープおよびウェイクアップ機能が動作しています。立ち上がりエッジが検出されると、コントローラは、前述のとおり、リセット シーケンスを使用してリセットします。さて、いくつか疑問があります。
ウェイクアップが検出され、S32K358 がリセット シーケンスに入ると、RAM の内容は揮発性ですか、それとも不揮発性ですか?
RAM の内容を不揮発性にする必要がある場合、スタンバイ RAM メモリを作成し、RAM データをスタンバイ RAM メモリにコピーするにはどうすればよいでしょうか?
S32K358 Cortex-M7 のスタンバイ モードは、スリープ モードやディープ スリープ モードに似ていますか?
こんにちは@karmegancjkさん、
STANDBY モードに入るときは、ウェイクアップ チャネル 46 (PTC24) を使用しています。私の理解では、このピンで立ち上がりエッジが検出されると、ウェイクアップ割り込みがトリガーされるはずです。
外部ウェイクアップ信号は、上昇検出と下降検出の両方をサポートします。
プログラム カウンターはアドレス 0x00402000 から実行を再開しますか?
または、実行を再開するには完全な MCU リセットが必要ですか?
以前のデバイス (S32K1) では、WFI 命令の後にコード実行が再開され、 Wakeup ISR → WFI 後のコードを意味していましたが、 S32K3 ではウェイクアップ後に常にリセット シーケンスを実行します。これは、設定されたスタンバイ モードによって異なります。
たとえば、通常のスタンバイ終了ではリセット シーケンスが実行され、次に sBAF と HSE FW (インストールされている場合) が初期化され、次に reset_handler で実行が再開されます。
ただし、高速スタンバイ終了では、sBAF と HSE の初期化をスキップし、ユーザー定義のブート アドレスに直接ジャンプできます。このユーザー定義のブート アドレスの後、デバイスを完全に初期化するために完全なリセットを実行することをお勧めします (または、アプリケーションのニーズに応じて、再びスタンバイ状態に戻ることもできます)。
プロジェクトの構成に関しては、すべて問題ないようです。
よろしくお願いします、
ジュリアン
こんにちは、
スタンバイ モード (スリープ モードまたはディープ スリープ モード) に入るときの MCU の動作に関して疑問があります。このモード中、プログラム カウンターはフリーズし、ウェイクアップ後にベクター アドレス 0x00402000 から再開されますか、それとも中断したところから実行を再開しますか?
電源とウェイクアップドライバの設定(.cfgファイル内)を確認してください。ファイル)は正しいですか?参考までに、私のプロジェクトの設定ファイルを添付しました。
こんにちは@karmegancjkさん、
S32K3X8EVB を使用していますか、それともカスタム ハードウェアですか?
S32K358 には、PMIC ハンドシェイクによるスタンバイ終了のための追加ステップがあることに留意してください。ハンドシェイクを使用しない場合は、DCMRWF1 の PMIC_PGOOD_HNDSHK_BYP ビットを設定します:解決済み: S32K3: ウェイクアップおよびリセット動作に関するサポートの要求 - NXP コミュニティ。
また、どの GPIO を設定していますか?S32K3 リファレンス マニュアルに添付されている S32K358_IOMUX.xlsx ファイルで WKPU 信号が正しいかどうかを確認してください。
よろしくお願いします、
ジュリアン