尊敬的各位,
我正在尝试消除 FS26 上的 REG_CORRUPT 标志 - 附件中的两张截图显示了对所有相关寄存器的读取。
在第一个“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
亲爱的艾丽卡,
感谢您的回复——我已经检查过很多次了,所以我才在最初的帖子图片中发布了完整的寄存器状态。如果您认为这些配置存在问题,请告诉我。
据我所知,寄存器是正确的(仅考虑数据手册中可写入的位)。我假设芯片本身会确保只读位处于有效状态,并且我假设指定为“0”或“保留”的位是不可写的。
写入这些位中的某一位是否有可能导致 REG_CORRUPT 位保持钳位?
此致,
Andrew
您好!
对于 REG_CORRPUT 位,它将被置位,如下所示,这意味着当配置 FS 寄存器时,必须配置一个 NOT 寄存器以及异或规则。
请检查是否存在某些寄存器配置不符合规则,导致此位置位?