ZHCSPR9 December 2023 AFE782H1 , AFE882H1
PRODUCTION DATA
AFEx82H1 具有寄存器内置自检 (RBIST) 功能。该功能按照表 7-14 列出的寄存器顺序通过计算 CRC 在表 7-14 列出的所有寄存器上运行。如果某个寄存器是保留寄存器,则在计算 RBIST 时会使用复位值。如果最终的 CRC 值为零,则表示寄存器的配置中不存在错误。如果计算结束时出现非零值,则表示存在配置错误。对于高达 2048 位的数据包,使用的多项式的汉明距离 (HD) 为 4。当 HD = 4 时,CRC 会在所存储的数据中检测 4 位错误的任意组合。应单独计算预期的 CRC 多项式,并将输出存储在地址 3Fh 的 RBIST_CRC 寄存器中。
CRC 的最终值在地址 3Eh 的 CRC_RD 寄存器中读取。在 RBIST 或影子加载运行时,会更新该值。RBIST 和 OTP 存储器两者使用相同的 CRC 计算引擎和多项式。CRC_RD 寄存器中的值保持不变,直到触发 TRIGGER 寄存器 (0Ah) 中的另一个 RBIST 或 SHADOWLOAD。
将 TRIGGER.RBIST 设置为 1 可以启动 RBIST。只要 RBIST 正在运行,TRIGGER.RBIST 位就会保持高电平,并在自检完成后清除。在 RBIST 运行时,无法对寄存器进行写入或读取。应发送 NOP 命令并监控 RBIST SDO 状态位来确定 RBIST 是否已完成。
在 UBM 下,RBIST 不会干扰寄存器通信。UBM 通信非常慢,让 RBIST 在任何后续读取或写入命令之前完成即可。对于 MBIST 和 RBIST,GEN_STATUS.BIST_DONE 和 GEN_STATUS.BIST_FAIL 位具有相同的功能。GEN_STATUS.BIST_MODE 用于在两个测试(1 = RBIST 和 0 = MBIST)之间进行选择。该位在读取 GEN_STATUS 寄存器之前一直保持不变。
FIFO_CFG.FIFO_H2U_FLUSH 和 FIFO_CFG.FIFO_U2H_FLUSH 位为写自清零 (WSC) 位,被 CRC 模块视为 0。
用于生成 RBIST 的 16 位 CRC 符合 openSAFETY (0x755B) 标准,采用以下多项式:
x16 + x14 + x13 + x12 + x10 + x8 + x6 + x4 + x3 + x1 + 1。
表 7-14 中列出了 RBIST 所涵盖的寄存器列表。并非所有寄存器都具有 RBIST。
ADDR(十六进制) | 寄存器 | 复位(十六进制) |
---|---|---|
01h | DAC_DATA | 0000h |
02h | CONFIG | 0036h |
03h | DAC_CFG | 0B00h |
04h | DAC_GAIN | 8000h |
05h | DAC_OFFSET | 0000h |
06h | DAC_CLR_CODE | 0000h |
08h | ADC_CFG | 8810h |
09h | ADC_INDEX_CFG | 0080h |
0Bh | SPECIAL_CFG | 0000h |
0Dh | RESERVED | 0100h |
0Eh | MODEM_CFG | 0040h |
0Fh | FIFO_CFG | 00F0h |
10h | ALARM_ACT | 8020h |
11h | WDT | 0018h |
12h | AIN0_THRESHOLD | FF00h |
13h | AIN1_THRESHOLD | FF00h |
14h | TEMP_THRESHOLD | FF00h |
1Bh | GPIO_CFG | 00FFh |
1Dh | ALARM_STATUS_MASK | EFDFh |
1Eh | GEN_STATUS_MASK | FFFFh |
1Fh | MODEM_STATUS_MASK | FFFFh |
3Fh | RBIST_CRC | 0000h |