编程指南
22 Nov 2024
Read time: 1 minute(s)
初始化流程
每次系统上电复位后,SID 自动读取所有 eFuse Cell 值到 eFuse Buffer,软件只需读取 eFuse Buffer 对应地址值即可。
注: 第一次烧写后,在不断电的情况下,eFuse Buffer
值不会自动更新,需通过软件读操作将对应地址的值读到寄存器。
eFuse 烧写流程
-
检查 eFuse 控制寄存器 0x000 EFUSE_CTL 状态位,若为非空闲则等待,若都为空闲则继续第 2 步。状态位包括:
- EFUSE_WRITE_START
- EFUSE_READ_START
- EFUSE_AUTO_STATUS
-
配置要烧写的 eFuse 地址到 eFuse 地址寄存器 0x004 EFUSE_ADDR。
-
配置要烧写的 eFuse 数据到 eFuse 写数据寄存器 0x008 EFUSE_WDATA。
-
在 eFuse 控制寄存器 0x000 EFUSE_CTL 中,配置 EFUSE_WRITE_START 为 1 且在 EFUSE_OP_CODE 位写入 0xA1C,启动烧写流程。
-
等待 EFUSE_WRITE_START 自动清零,硬件自动关闭 LDO。
为达到双备份目的,要求针对备份地址,即偏移 2Kbit 地址,重复步骤 1~步骤 5 完成烧写。
eFuse 读取流程
-
检查 eFuse 控制寄存器 0x000 EFUSE_CTL 状态位,若为非空闲则等待,若都为空闲则继续第 2 步。状态位包括:
- EFUSE_WRITE_START
- EFUSE_READ_START
- EFUSE_AUTO_STATUS
-
配置要读取的 eFuse_cell 地址到 eFuse 地址寄存器 0x004 EFUSE_ADDR 。
-
在 eFuse 控制寄存器 0x000 EFUSE_CTL 中,配置 EFUSE_READ_START 为 1 且在 EFUSE_OP_CODE 位写入 0xA1C,启动读取流程。
-
等待 EFUSE_READ_START 自动清零,即可读取 eFuse 读数据寄存器 (0x00C EFUSE_RDATA) 并获得 eFuse 的值。