eFuse 使用指南
本文档主要描述了WS53V100的客户预留EFUSE位域的使用方法。
概述
EFUSE是一种可编程的存储单元,由于其只可编程一次的特征,多用于芯片保存Chip ID、密钥或其他一次性存储数据。WS53提供了两种使用方式:通过软件驱动接口直接读写用户预留的128bit EFUSE空间;通过烧写工具操作整个2048bit空间。
软件编程接口使用指导
eFuse模块提供的接口及功能如下:
头文件路径: include\driver\efuse_user.h
- uapi_efuse_user_read_bit:从用户预留的eFuse空间中读取一位。
- uapi_efuse_user_read_buffer:从用户预留的eFuse空间中读取多个字节,进入提供的缓冲区。
- uapi_efuse_user_write_bit:向用户预留eFuse空间中的对应bit写1。
- uapi_efuse_user_write_buffer:从提供的缓冲区向用户预留的eFuse空间写入多个字节。
示例:
-
按照buffer写eFuse值。
-
按照buffer读取efuse值。
-
按照bit读取efuse值。
-
按照bit写入efuse值。
Burntool烧写efuse_cfg.bin说明
生成efuse_cfg.bin
-
数据准备

字段说明:
burn:
- 0:当前位域不烧写,
- 1:当前位域烧写
name:当前efuse位域名字
start_bit:位域起始bit位
bit_width:当前位域bit长度
values:烧写值
lock:锁定位
示例:
0,CHIP_ID,0,8,0x00000000,PG0:chip_id 从bit0开始,长度是8bit,不烧写。
1,SEC_BOOT,226,8,0x00000042,PG39:SEC_BOOT从bit226开始,长度为8bit,烧写值为0x42。
-
烧写文件生成
-
编译loaderboot,会生成efuse_cfg.bin。
- 编译对应的app.bin,编译成功后,会将efuse_cfg.bin自动打包到app.bin中。
烧录流程
准备烧写工具“BurnTool”通过BurnTool工具烧写镜像。具体步骤如下:
-
在BurnTool界面中,单击“Option”按钮,选择“Change chip”,从“Chip List”下拉菜单中选择“WS53”,并单击“OK”即可,如图1所示。

-
在BurnTool界面中,单击“COM”按钮选择PC机串口(串口选择,请参考开发板使用指南);单击“Select file”按钮,选择各产品编译生成的固件包,并单击“OK”,如图2所示。efuse_cfg.bin为待烧录数据,烧录类型为3。

-
勾选“Auto burn”以及“Auto disconnect”选项;
选择“Setting”→“Settings”,配置串口参数,默认配置如图3所示,baud配置为2000000,package size配置为8192。
说明: Force Read Time:定时读取的时间,以毫秒为单位。勾选时为定时读取串口,不勾选时为事件触发读取串口。适用于不勾选该选项无法正常烧录的场景。

选择目标串口号并单击“Connect”按钮(单击后“Connect”变为“Disconnect”),复位单板。自动烧录效果如图4所示。

等待传输完成后结束烧写,烧写完成会出现“All images burn successfully”。烧写完成效果如图5所示。

说明: 在速率不理想的外部状态下,若多次出现烧写镜像失败的情况,请拷贝至本地烧写