当前页面为 开发中 版本,查看特定版本的文档,请在页面左下角的下拉菜单中进行选择。

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_TX

      • P1.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 烧录数据保持一致。