NXPのエキスパートの皆様、こんにちは。
私は S32K388 上で開発しており 、 STCU/BIST機能を実装するために SPD(セーフティ Peripheral ドライバ) v1.0.6 を基準にしています。
main.c では 、BIST テストを有効にしてから、 MC_RGM からリセット理由を読み取ります。返されたリセット理由は MCU_ST_DONE_RESET であることがわかりました 。
私には以下の質問があります。
STCU_WDG レジスタ に書き込まれた値は、 BIST実行中の オンラインウォッチドッグタイムアウト 期間に影響しますか?言い換えれば、 BIST実行時間が STCU_WDG 値を超えた場合、 WDTOSW フラグが直接トリガーされますか ?
MCU_ST_DONE_RESET 報告 されたとき 、 LBISTもMBISTも正常に修了し合格 したと結論づけ ていい でしょうか?それとも、このリセット理由はタイムアウトが起きたかどうかに関わらず、STCUシーケンスが完了したことを示すだけでしょうか?
私の場合、ERR_STATレジスタはWDTOSW = 1、RFSF=1を示しています(添付のスクリーンショット参照)。これは、BISTの実行がタイムアウトし、早期に終了・中止されたため、メモリテストが完了する前に強制的に停止されたということでしょうか?それともWDTOSWが設定されてMCU_ST_DONE_RESETでも生成は可能でしょうか?
また、SPDドライバーの Bist_IntegrityTest() フロー(添付コードのスクリーンショット参照)も確認しましたが、完成後にLBIST/MBISTの終了フラグ( LBESW0 / MBESW0)が1に設定され ていると期待されています。しかし、実際のデバッグ中に LBISTとMBISTのエンドフラグビットの両方が0であって1ではない ことがわかり ました。なぜMCU_ST_DONE_RESETが生成されているのに終了フラグが0になるのでしょうか ?
補足情報:
STCU_WDG、WDTOSW、MCU_ST_DONE_RESET、そしてLBESW0/MBESW0のエンドフラグの関係を明確にしていただけますか?
事前に感謝いたします。
よろしくお願いします、
こんにちは、
main.c では 、BIST テストを有効にしてから、 MC_RGM からリセット理由を読み取ります。返されたリセット理由は MCU_ST_DONE_RESET であることがわかりました 。
それは正しい行動です。
1. STCU_WDG レジスタ に書き込まれた値は、 BIST実行中の オンラインウォッチドッグタイムアウト 期間に影響しますか?言い換えれば、 BIST実行時間が STCU_WDG 値を超えた場合、 WDTOSW フラグは直接トリガーされますか ?
いいえ。STCU_WDGはBIST実行の監視役です。そもそもSWTとは関係ありません。SWTモジュールもBISTでテストされるため、BIST中はSWTモジュールが機能しません。したがって、STCU_WDGを使用して実行時間を保護します。
MCU_ST_DONE_RESET 報告 されたとき 、 LBISTもMBISTも正常に修了し合格 したと結論づけ ていい でしょうか?それとも、このリセット理由はタイムアウトが起きたかどうかに関わらず、STCUシーケンスが完了したことを示すだけでしょうか?
テスト手順は終わったとしか結論づけられない。結果は、STCU2オンラインLBISTステータス(LBSSW0)などのさまざまなレジスタに保存され、合格/不合格の条件を示します。
私の場合、ERR_STATレジスタはWDTOSW = 1、RFSF=1を示しています(添付のスクリーンショット参照)。これは、BISTの実行がタイムアウトし、早期に終了・中止されたため、メモリテストが完了する前に強制的に停止されたということでしょうか?それともWDTOSWが設定されてMCU_ST_DONE_RESETでも生成は可能でしょうか?
MCU_ST_DONE_RESETはテスト後に必ず生成されます。結果に関係なく。テスト中は、レジスタとRAMがパターンを用いてテストされます。レジスタはデフォルト値に設定する必要があります。これらの値はリセット時にロードされます。そうしないと、すべてのレジスタがテストパターンでいっぱいになり、MCUはそのようなランダムな値で動作しません。
RAMはソフトウェアによって初期化される必要がある。なぜなら、BISTがRAM上でテストパターンを実行した後、ECCシンドロームがデータと一致しなくなるからである。
私の場合、ERR_STATレジスタはWDTOSW = 1、RFSF=1を示しています
これはテストが失敗したことを意味します。
また、SPDドライバーの Bist_IntegrityTest() フロー(添付コードのスクリーンショット参照)も確認しましたが、完成後にLBIST/MBISTの終了フラグ( LBESW0 / MBESW0)が1に設定され ていると期待されています。しかし、実際のデバッグ中に LBISTとMBISTのエンドフラグビットの両方が0であって1ではない ことがわかり ました。なぜMCU_ST_DONE_RESETが生成されているのに終了フラグが0になるのでしょうか ?
上記で説明したとおりです。
BISTはSTCU_WDGタイムアウト時間内に実行されませんでした。
よろしくお願いいたします。
ピーター
こんにちは、
回答を要約して、後ほど投稿します。
よろしくお願いいたします。
ピーター