|
前言 这篇应用笔记描述了怎么使用AT32系列MCU的OTP(one time programmable)。OTP分为DATA和LOCK两部分,一个LOCK数据对应着多个DATA数据,两部分的数据都不可擦除,LOCK区写入0x00后其对应的DATA区数据被锁定不可再写入。 参考资料: n RM文档的FLASH章节 注:本应用笔记对应的代码是基于雅特力提供的V2.x.x 板级支持包(BSP)而开发,对于其他版本BSP,需要注意使用上的区别。 支持型号列表:支持OTP功能的系列
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参数到软件配置页面,包括DATA和LOCK参数,文件类型后缀.attp | | Save OTP Config | 保存设置好的OTP参数到电脑端,包括DATA和LOCK参数,文件类型后缀.attp | 2.2.2 离线操作
AT-Link离线配置项目文件时,可以配置OTP,跟程序代码一块烧录,勾选Write OTP data,然后加载电脑端的后缀名.attp的OTP参数文件即可
|