皆様
FS26 の「REG_CORRUPT」フラグを解消しようとしています。添付の 2 枚のスクリーンショットは、関連するすべてのレジスタの読み取り結果を示しています。
最初の「AE」読み込みコマンドの直前に、ウォッチドッグのファーストキックを成功させてFSの状態をINIT_FSから外し、フェイルセーフレジスタの状態の正しさを評価しました。0x28回答から、REG_CORRUPTビットが設定されたデバッグモードに入っていることがわかります。
ウォッチドッグのキックが成功したことは間違いありません。キック直後にFS_DIAG_SAFETY1を読み取ったところ、戻り値は0x0103で、エラーフラグはなく、ABIST1_OKとLBIST_STATUS = OKでした。
0xAE コマンドの後、0xAF コマンドを発行してレジスタに 0x1800 を書き込んで OTP_CORRUPT ビットと REG_CORRUPT ビットをクリアし、その後レジスタ 0x41 から順に 12 個の FS レジスタすべてを読み取ります (シフトするとコマンドは 0x82 になります)。
これらのレジスタから返された値を確認しましたが、返された値に一貫性の問題は見当たりません(もちろん、書き込みしてはいけないビットや保持・保留・0/1のビットを考慮して)。
最後に読んだ『FS_STATES』を見ると、まだREG_CORRUPTが設定されていることがわかります。
こんな直接的な質問をして申し訳ないのですが、何か見落としている点があるのでしょうか?
よろしくお願いいたします。
Andrew
こんにちは!
REG_CORRPUT ビットについては、以下のようにアサートされます。これは、FS レジスタが構成される場合、NOT レジスタを XOR ルールとともに構成する必要があることを意味します。
このビットがアサートされる原因となっている、規則に従っていないレジスタ設定がないか確認してください。
エリカ様、
ご回答ありがとうございます。すでに何度も確認済みですので、最初の投稿でレジスタの状態を画像として掲載しました。これらの設定方法に問題があると思われる場合は、お知らせください。
私の知る限り、レジスタは正しい(データシートで書き込み可能なビットのみを考慮して)正しいようです。チップ自体が読み取り専用ビットが有効な状態であることを管理しているものと想定し、また「0」または「予約済み」と指定されているビットは書き込み不可であると想定します。
それらのビットのいずれかに書き込みをすると、REG_CORRUPTビットがアサートされたままになる可能性はありますか?
よろしくお願いいたします。
Andrew