こんにちはチーム
BIST デバッグガイダンスについてお聞きしてもよろしいでしょうか?
お客様は RTD (MCAL) 付きの S32K324 を使用しています。
BIST_RUN API の実行後、MCU はリセットされたように見えます。(もちろん、UM に続く BIST では PLL による正しいクロックが使用されます。)
ただし、MC_RGM には「STCU_URF」と表示されています。
STCUに確認しましたが、重大な理由はわかりませんでした。
これらは「まだ進行中で、MBIST 実行に失敗しました」のように表示されますが、これらもデフォルト値です。
このCASEに関して、より詳しい情報を入手できるのはどちらでしょうか?
よろしくお願いします。
こんにちは@Luke_Chun 、
MBSPLLEN / LBSWPLLEN が「0」であれば正しく、これは検証済みの構成 STCU2 セットアップの一部です。
設定の場合、関数のパラメータが何であるかを意味します。例:
Bist_Run ( BIST_SAFETYBOOT_CFG );
構成から、お客様が LBIST および MBIST 回復不能障害対応を設定したことがわかります。これが、表示されるリセットの原因です。
これらのタブに何も設定されていないことを確認してください。
この設定後、BIST は終了し、リセット後に結果を調べることができます。
おそらく、MBIST または LBIST で何らかの障害が発生し、これが前提条件が間違っている (おそらく一部のクロックが実行されていない) という手がかりになります。
よろしくお願いいたします
ラドスラフ
こんにちは@RadoslavB
ご返信ありがとうございます。
BIST に関するフィードバックは次のとおりです。
以下の行ではブレークポイントが使用されました。
以下はSTCUレジスタです。
1つの質問は、RUNSW: MBSPLLEN/LBSWPLLENが「0」であることです。
「PLLなし」を意味します。正しい構成ですか?
また、以下の STCU に異常な構成はありましたか?
よろしくお願いします。
こんにちは@Luke_Chun 、
破壊的リセット STCU2 レジスタがデフォルトに設定されると、レジスタから根本原因に関する詳細情報を見つけることはできません。
どの BIST 構成を実行しているかを把握し、BIST を開始する関数Bist_SelfTestTrigger()の命令の直前に STCU2 レジスタを確認すると便利です。
SAFETYBASE_REG_WRITE32 ( BIST_STCU_RUNSW_REG 、 BIST_STCU_RUNSW_RUN_BIT );
LBUFM と MBUFM が設定されていない場合、それにもかかわらず STCU_URF が設定される可能性があるのはなぜなのか、HW チームに質問することになります。
理想的には、クロックの初期化直後に BIST を実行し (クロックを起動して実行するだけ、他には何も行わない)、他のペリフェラルは初期化せず、Core_1 をリセット状態に保ち、FCCU を有効にせず、MPU と XRDC を無効のままにし、すべてのウォッチドッグを無効のままにして、PMIC をデバッグ モードのままにして、LBIST_CLK が 40 MHz であることを確認します。
比較のために、K344 の SAF デモ例で、MCU モジュール (クロックと McuModeSettingConf) がどのように構成されているかを確認できます。
敬具、
ラドスラフ
こんにちは@RadoslavB
ご対応ありがとうございます。
あなたの言及によって私はもう一歩前進することができます。
以下を使用すると、STCU_URF は発生しません。
しかし、別の結果が表示されています。
RMG が更新されませんでした (以下によりリセットが発生していないと思います)。
また、ERR_STAT には WDTOSW が表示されており、RFSF が発生しています。
両方のエラーが発生する可能性についてお尋ねしてもよろしいでしょうか?
(WDTOSW はクロック構成に関連しているのではないかと推測しています...もう一度確認してみます...)
しかし、RFSF についての情報はありませんでした...)
ありがとう。
こんにちは@Luke_Chun
SAF リリースバージョンとは何ですか?
BIST 実行前にブレークポイントが表示され、同じポイントで STCU2 レジスタのスクリーンショットが取得されていますか?BIST 実行前であっても ERR_STAT が設定される理由がわかりません。
RFSR - eMcem 構成でこの FCCU 障害が無効になっていることを確認してください
BIST は eMcem_Init の前に実行する必要があるため、理想的には、すべての NCF チャネルに対して FCCU を完全に無効にする必要があります。SAF デモの例をご覧ください。
WDTOSW - はい、BIST がタイムアウト内に実行されなかったようです。そのため、いくつかの低速クロックが設定されている、またはいくつかの必須クロックが無効になっています - SAF デモからの MCU クロック セットを参照してください。
敬具、
ラドスラフ
こんにちは@Luke_Chun 、
1)
クロック (このCASEは分周器) を有効にすることは最低限必要ですが、BIST では最大可能周波数 (最大周波数のクロック ソース PLL) で構成する必要があります。デフォルトの FIRC ではなく、すべての MUX 除数または乗数は、最大出力クロック周波数を提供するように設定されます。など) => これにより、BIST タイムアウトが超過しないようにすることができます。
正確に確認するには、RTD MCU プラグインを使用することをお勧めします。レジスタを探索するのではなく、周波数を出力します。
2)
FCCU が無効になっていることがわかります (リセット後のデフォルト状態)。NCF5 に NCF_S0 が設定されているのは、NXP が FCCU をこのように設計しているためです。チャネルを有効にする必要はありませんが、FCCU チャネルを有効にしているにもかかわらず、ステータス フラグは常に設定されます。
NCF5 には DCMROD レジスタによって記述される他の多くの障害があり、これによって NCF5 の正確な障害原因がわかりますが、この場合は STCU2 RF (これは DCMROD5 に報告されます) であると仮定します。
NCF5 が表示されるということは、BIST エラーがまだあることを意味します。
- お客様が eMcem を使用しない場合、FCCU をどのように構成しますか?無効になっているようですが、BIST を実行する意味は何でしょうか?
BIST は、ほとんどの場合 FCCU に報告される HW セーフティメカニズムの潜在的な障害をチェックするだけです。したがって、FCCU を無効にして BIST を実行すると、お客様アプリケーションは QM レベルに降格され、セーフティ ASIL アプリケーションを実行できなくなります。
BIST 後には ST_DONE 機能リセットが必要です。BIST リセット後、お客様はBist_GetFailLists() を呼び出して BIST 結果を評価する必要がありますが、結果はどうなりますか?
BIST ドライバーの使用方法については、SAF デモの例を参照してください。
Bist_Run() は NCF5 ステータス フラグをクリアできません。実際、これがフラグが設定されている理由です。
敬具、
ラドスラフ
こんにちは@RadoslavB
ご対応ありがとうございます。
皆様のサポートにより、BIST は機能しています。
しかし、いくつか質問があります。
1. 最後の理由はクロックの設定に関連しています。
MUX7、8、9、10 はクロックの有効化を行いませんでした。
有効にした後は正常に動作します。
これは近づいていますか?
2. FCCU については、おっしゃるとおり FCCU に確認いたしました。
ご覧のとおり、NCF_s0_5 が設定されています...
ただし、お客様は eMECM を使用していません (emecm_init を呼び出していません)。
上記はMCUリセット後の状態です。
ただし、BIST_RUN API 中はクリアされます...
これは機能していますか?
ありがとう。
こんにちは@RadoslavB
フィードバックはこちらです。
1. お客様はSPD1.0.5を使用します。SAF が使用されます。
FCCU は実装されますが、この段階では BIST が最初の項目です。
2. はい、Clock は以下のように使用されます。
3. BIST後、STCUおよびFCCUに障害情報は発生しませんでした。
4. 異常の 1 つは、リセット理由がなく、BIST_BUSY であることです。
BIST_BUSY の場合の確認方法を教えてください。
ありがとう。
こんにちは@Luke_Chun 、
Bist_GetExecStatus が BIST_BUSY を返す場合、このビットが設定されている(BIST 操作がまだ完了していない)ことを意味します。
しかし、スクリーンショットを見るとこのビットは 0 なので、なぜ BIST_BUSY が返されるのか分かりません。
Bist_Specific_GetExecStatus() をデバッグしてみると、次のようになります:
uint32 ReadRunSw = SAFETYBASE_REG_READ32 ( BIST_STCU_RUNSW_REG );
MBIST11 も実行されていることがわかります。これは、顧客アプリケーションでは使用すべきではない BIST_DIAGNOSTIC_CFG を実行していることを意味します。BIST_SAFETYBOOT_CFG を実行させてください。
クロック設定の一部しかカバーしていないスニペットから**bleep**設定を検証できません。お客様はクロックのMCUプラグイン設定を比較する必要がありますが、私の能力ではここではサポートできません。繰り返しますが、すべてのクロックを最大周波数で有効にするだけで済みます。
敬具、
ラドスラフ