OTP¶
1 功能概述¶
本例程演示 OTP(One-Time Programmable)主流滚码读取。
例程主要完成以下内容:
初始化系统时钟与外设。
初始化 OTP 模块(
OTP_Init())配置 UART0(
P1.1/P1.2)串口打印(115200波特率)每秒读取 OTP MAIN区数据
0x3FF0地址起的 7 字节滚码,并打印到串口(根据烧录时设置的地址和Size大小读取数据)
2 环境准备¶
硬件设备与线材:
PAN271x EVB 核心板与底板
JLink 仿真器(用于烧录程序)
USB-TypeC线(供电+串口打印)
串口转TTL线(用于串口调试助手)
硬件接线:
EVB核心板插到底板上;
USB-TypeC线连接PC与底板USB-UART口;
JLink:SWD_CLK->P0.0、SWD_DAT->P0.1、GND->GND;
UART0 TX/RX:
P1.1配置为UART0_TXP1.2配置为UART0_RX(需使能数字路径)
PC 软件:
串口调试助手(如 UartAssist),波特率 115200,8N1。
3 编译和烧录¶
例程位置:<PAN271x-DK>\01_SDK\samples\drivers\otp
双击 Keil 工程文件 samples\drivers\otp\keil\otp.uvprojx 打开,编译并烧录到目标芯片。
4 例程演示说明¶
4.1 代码流程(main.c)¶
main() 循环:
延时 1 秒(
systick_delay_ms(1000))调用
OTP_ReadMainStream(0x3FF0, 7, rolling_code_arr)读取滚码输出到串口:
rolling_code_arr: xx xx ...
4.2 核心 API 说明¶
OTP_Init():初始化 OTP 控制器,使能读操作。OTP_ReadMainStream(addr, len, buf):从 OTP 主流地址读取len字节数据到buf。GPIO_EnableDigitalPath(port, pin):使能数字路径(P1.2 RX 需使能)。UART_Init(UART0, 115200):初始化串口通信。
4.3 串口输出示例¶
CPU @ 48000000Hz
rolling_code_arr: 4f 2a 7c ...
rolling_code_arr: 4f 2a 7c ...
...
4.4 注意事项¶
OTP 是一次烧录,仅在烧录后可读取,示例中读取地址
0x3FF0的内容需与项目 OTP 烧录数据保持一致。