eFuse 是芯片中一块特殊的存储空间,它内部由熔丝相互连接。当流经的电流达到一定程度时,熔丝会被烧断,该位的值会改变。
熔丝熔断是单向的、不可恢复的。因此 eFuse 的值只能被烧写一次,只能由 0 变到 1。在烧写 eFuse 的时候,一定要十分小心,也要注意避免静电、高温等情况,以防 eFuse 被打坏。
乐鑫的芯片类型主要分为以下两类:ESP8266 系列和 ESP32 系列。
ESP8266 系列包括:ESP8266、ESP8285;
ESP32 系列包括:ESP32-D0WDQ6、ESP32-D0WD、ESP32-D2WD、ESP32-D0WDXMM、ESP8689、ESP32-PICO-D2、ESP32-PICO-D4、ESP32-PICO-D4XM。
注:由于 ESP8266 系列的芯片只有 1 个 bit 标识版本区别,ESP32 系列的芯片也只有几个 bit 标识版本区别,接下来的讨论会以 ESP8266 和 ESP32 为例,来介绍这两种芯片的 eFuse。
1. ESP8266 EFUSE 结构
ESP8266 的 EFUSE 大小为 128 bits。主要有两种结构:
通用结构:最常用的 eFuse 结构;
用户定制结构:在通用结构的基础上,用户自行烧写自定义的MAC 地址。
1.1 通用结构
eFuse_bit 位
bit 数
字段
检察规则
[127:124][3:0]
[7:0]
digital_use
必须为 0
[123:122]
[1:0]
flash
不需检查
[121]
[0]
SIP
SIP 封装为 1,非 SIP 封装为 0
[120]
[0]
User_MAC
必须为 0
[119:96]
[23:0]
mac_h
MAC 地址高 24 bit,不检查
[95:88]
[7:0]
mac_h_crc
需等于 mac_h 字段的 crc8 值
[87:80]