FNMC、SDMC、SLPC はすべて 0 に設定されています。ただし、スリープ モードに入るコマンドを発行すると、すぐにスタンバイ モードにスイッチします。なぜこのようなことが起こるかご存知ですか?
私は以下の手順に従いました:
1. ウェイクピンの立ち上がりエッジを有効にする
2. CANウェイクアップを無効にする
3. CMCをオフラインに設定する
4. MCをスタンバイに設定する
5. MCをスリープに設定する
スリープ コマンドの後、メイン ステータスをチェックしたところ、0x14 (不正なスリープ モード コマンドを受信した) が見つかりました。
こんにちは、ブムジンさん
UJA1169(A) は、以下の条件がすべて満たされた場合にのみスリープ モードになります。
- スリープ モード コマンドが発行されました (SPI 経由の MC = 0b001)。
- ウェイクアップ イベントは保留中ではありません (すべてのイベント ステータス ビットがクリアされています)。
- 少なくとも 1 つの通常のウェイクアップ ソースが有効になっています (CAN ウェイクアップまたは WAKE ピン)。
- スリープ モードは永続的に無効になっていません (SLPC = 0)。
これらの条件のいずれかが満たされない場合、SBC はスリープ モードになりません。代わりに、リセットモードに移行し、次にスタンバイモードに移行し、リセットソースステータスビット(RSS)を設定して理由を示します(例:0b10100 = 不正なスリープ モード コマンドを受信しました。
したがって、スリープを発行する前にイベント情報レジスタがクリアされていることを確認し、WAKEピンの構成と有効化ビットを再確認してください。
お役に立てれば幸いです。
BRs、トーマス