OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 412|回复: 0

AT32 FLASH OTP应用笔记分享

[复制链接]

55

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
223
金钱
223
注册时间
2024-12-9
在线时间
12 小时
发表于 2026-8-7 11:07:58 | 显示全部楼层 |阅读模式
前言
这篇应用笔记描述了怎么使用AT32系列MCU的OTP(one time programmable)。OTP分为DATA和LOCK两部分,一个LOCK数据对应着多个DATA数据,两部分的数据都不可擦除,LOCK区写入0x00后其对应的DATA区数据被锁定不可再写入。
参考资料:
n  RM文档的FLASH章节
注:本应用笔记对应的代码是基于雅特力提供的V2.x.x 板级支持包(BSP)而开发,对于其他版本BSP,需要注意使用上的区别。
支持型号列表:支持OTP功能的系列

说明:本文档仅供有需求的小伙伴参考,如需更多资料,可访问雅特力官网获取:https://www.arterytek.com/cn/support/index.jsp?index=1

1                 OTP功能介绍



AT32各个型号的OTP功能以及操作方式基本相同,下面以AT32M412为例,介绍OTP功能以及操作方式。
l  OTP的DATA与LOCK区都不可擦除,其操作方法,包括读取、解锁、编程都跟主存储器相同。
l  每32字节DATA对应1字节LOCK,当LOCK字节被写为0x00时,该32字节DATA无法再写入。

l  OTP与LOCK同样有访问保护,请参照RM中的表闪存访问权限。

表1. AT32M412 DATA与LOCK对应关系

OTPLOCK 地址范围 OTPDATA地址范围
LOCK0:  0x1FFF F500 0x1FFFF000 – 0x1FFF F01F
LOCK1:  0x1FFF F501 0x1FFFF020 – 0x1FFF F03F
LOCK2:  0x1FFF F502
........................
....................
0x1FFFF040 – 0x1FFF F05F
LOCK31:  0x1FFF F51F
0x1FFFF3E0 – 0x1FFF F3FF




2     应用实例
下面介绍了OTP的应用实例,分别演示如何通过代码以及ISP、ICP及ATLink等工具操作写指定的OTP DATA区域,并且锁定该区域。代码实例的工程代码可以在BSP软件包的AT32M412_416_Firmware_Library_V2.x.x\project\at_start_m412\examples\flash中获取到。
注:所有project都是基于keil5而建立,若用户需要在其他编译环境上使用,请参考AT32xxx_Firmware_Library_V2.x.x\project\at_start_xxx\templates中各种编译环境(例如IAR6/7,keil 4/5)进行简单修改即可。

2.1           代码操作OTP2.1.1       功能简介
程序中调用flash_otp_data_program()函数写OTPDATA数据,然后调用flash_otp_lock_enable()函数对该区域的OTP DATA数据进行锁定。
注意:因为OTP区域无法擦除后重复操作,所以该程序只能执行运行一次!

2.1.2       资源准备
1)硬件环境:
AT-START-M412BOARD
2)软件环境
AT32M412_416_Firmware_Library_V2.x.x\project\at_start_m412\examples\flash\otp_write_and_lock

2.1.3       软件设计
1)     配置流程
n 解锁flash
n 写OTP DATA数据
n 写OTP LOCK,锁定OTP DATA

2.1.4       实验效果
从指定地址OTP DATA区域读取的数据跟写入的数据对比,如果相同,并且操作对应OTP LOCK锁定该DATA区域成功,则点亮3个LED灯。

2.2           工具操作OTP
使用雅特力提供的ISP、ICP烧录工具可以操作OTP,AT-Link还支持跟工程文件一起离线操作OTP。

2.2.1       在线操作
ISP、ICP(仅支持AT-Link)可以通过界面在线操作OTP,Flash info界面加载连接芯片的OTP信息,DATA及LOCK状态都能直接显示。

File Untitle界面用于配置、保存、加载参数文件,以及在线操作OTP,

各个按键功能描述如下表:

表2. OTP配置页面按钮说明
按钮 描述说明
Reset OTP data 重新加载空白OTP信息参数页至页面
Apply to device 将当前页面的OTP信息参数应用到芯片
Only Load Data 加载电脑端的OTP DATA到软件配置页面,只加载DATA数据,不加载LOCK参数,文件类型后缀.bin
Only Save Data 保存设置好的OTP DATA到电脑端,只保存DATA数据,不保存LOCK参数,文件类型后缀.bin
Load OTP Config 加载电脑端的OTP参数到软件配置页面,包括DATALOCK参数,文件类型后缀.attp
Save OTP Config 保存设置好的OTP参数到电脑端,包括DATALOCK参数,文件类型后缀.attp
2.2.2        离线操作
AT-Link离线配置项目文件时,可以配置OTP,跟程序代码一块烧录,勾选Write OTP data,然后加载电脑端的后缀名.attp的OTP参数文件即可





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-8-23 02:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表