0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【NCS随笔】nRF54L15使用UICR寄存器保存数据

TedLee 来源:jf_29076475 作者:jf_29076475 2025-11-27 17:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

nRF54L15使用UICR寄存器保存数据
本文章主要是讲解如何使用nRF54L15的UICR寄存器保存一些基础数据

一、UICR寄存器的说明

UICR(用户信息配置寄存器)**是非易失性存储器(NVM)寄存器,用于配置用户特定的设置

注意所有 UICR 寄存器都具有 RW1 保护,只能写入一次,需要再写的话必须要擦除Erase All

默认复位值为0xFFFFFFFF

这个是是寄存器的说明:nRF54的UICR寄存器说明

二、如何使用

我们可以在生产的时候使用J-LINK烧录工具搭配nrfutil来写入寄存器,再在软件上面读取该寄存器然后打印

举例如下,我使用UCIR寄存器保存MAC地址并且通过读取UICR寄存器设置MAC地址

2.1 读取UICR寄存器并且配置MAC地址

注意这个函数要在bt_enable前调用


#include < hal/nrf_uicr.h >
#include < sdc_hci_vs.h >
void read_uicr_and_set_mac_address(void)
{
int ret;

uint8_t mac_address[6];
// nRF54L15的UICR基地址为0x00FFD000
// OTP寄存器偏移为0x500
volatile uint32_t *uicr_otp_base = (volatile uint32_t *)(0x00FFD000 + 0x500);

// 读取前两个OTP寄存器(假设MAC地址存储在OTP[0]和OTP[1])
uint32_t otp0 = uicr_otp_base[0];  // OTP[0]
uint32_t otp1 = uicr_otp_base[1];  // OTP[1]


// 判断两个寄存器是否都被设置
	if (otp0 != 0xFFFFFFFF && otp1 != 0xFFFFFFFF) {
		
	    mac_address[0] = (otp0 > > 0) & 0xFF;
		mac_address[1] = (otp0 > > 8) & 0xFF;
		mac_address[2] = (otp0 > > 16) & 0xFF;
		mac_address[3] = (otp0 > > 24) & 0xFF;
		mac_address[4] = (otp1 > > 0) & 0xFF;
		mac_address[5] = (otp1 > > 8) & 0xFF;

		sdc_hci_cmd_vs_zephyr_write_bd_addr_t bd_addr_cmd = {
		.bd_addr = {mac_address[0],mac_address[1],mac_address[2],mac_address[3],mac_address[4],mac_address[5]},
		};

	ret = sdc_hci_cmd_vs_zephyr_write_bd_addr(&bd_addr_cmd);

	} else {
		printk("OTP registers not fully programmed, using default MACn");
		// 使用默认MAC地址或其他处理
	}

printk("MAC Address from UICR: %02X:%02X:%02X:%02X:%02X:%02Xn",
       mac_address[0], mac_address[1], mac_address[2],
       mac_address[3], mac_address[4], mac_address[5]);

}

#### 2.2通过nrfutil写入UICR寄存器

可以使用如下命令,如果有不知道如何安装nrfutil工具的,可以看我之前的博客[【NCS随笔】nRF54芯片怎么烧录程序&nrfutil的安装使用](https://tedlee.blog.csdn.net/article/details/147622349?spm=1001.2014.3001.5502)

```C

nrfutil device recover //擦除设备

nrfutil device program --firmware merged.hex //烧录固件

nrfutil device x-write --address 0x00FFD500 --value 0xddccbbaa //写入UICR寄存器0x00FFD500

nrfutil device x-write --address 0x00FFD504 --value 0x8877ffee //写入UICR寄存器0x00FFD504

nrfutil device reset //复位设备

nrfutil device protection-set All //设备读保护

#### 2.3测试

使用nRF54L15DK,和peripheral_uart例程

![在这里插入图片描述](https://file1.elecfans.com/web3/M00/3F/1D/wKgZPGkoFSmAVzLtAAAqH_nVV20713.png)

![在这里插入图片描述](https://file1.elecfans.com/web3/M00/3F/1D/wKgZPGkoFSmAZmPeAAQcQyFae9E358.png)

###### 你的点赞、收藏和评论是对我最大的支持,有问题多多指教,如果有需要Nordic开发板、Nordic的芯片以及Nordic技术支持的可以在个人资料获取我的联系方式,感谢读者支持!

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NC
    NC
    +关注

    关注

    0

    文章

    21

    浏览量

    14420
  • Nordic
    +关注

    关注

    9

    文章

    268

    浏览量

    49144
  • Zephyr
    +关注

    关注

    1

    文章

    61

    浏览量

    6632
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Nordic nRF54L15 GPIO深度解析

    APB总线用于低速且低功耗的外围设备,nRF54L15根据APB总线的标号,对外设进行命名且对GPIO口进行端口分配。AMBIX为AMBA总线互联通道。
    的头像 发表于 10-07 14:22 2624次阅读
    Nordic <b class='flag-5'>nRF54L15</b> GPIO深度解析

    nRF54L 系列SOC芯片NRF54L15 超低功耗蓝牙5.4 SOC

    nRF54L15 专为 PSA 认证 3 级而设计,这是 PSA 认证物联网安全标准的最高级别。它提供安全启动、安全固件更新和安全存储等安全服务。集成的篡改传感可检测攻击并采取适当措施,而加密加速则可加固以
    发表于 10-15 15:03

    nRF54L15—蓝牙低功耗双核系统级芯片(SoC)

    nRF54L15 专为 PSA 认证 3 级而设计,这是 PSA 认证物联网安全标准的最高级别。它提供安全启动、安全固件更新和安全存储等安全服务。集成的篡改传感可检测攻击并采取适当措施,而加密加速则可加固以
    发表于 03-05 18:17

    深入比较nRF52832和Nordic新的产品nRF54L15参数对比

    *2.2mm,而且外围元器件相比之前更少 目前nRF54L15是在Nordic的新的SDK:nRF Connect SDK(简称NCS),NCS基于zephyr操作系统做了一套自己的
    发表于 03-10 23:54

    NRF54L15蓝牙模组性能与场景应用

    PTR5415是基于Nordic最新nRF54L15芯片,专为物联网和工业场景设计。 1、核心参数与硬件优势 芯片与协议:搭载nRF54L15SoC,支持蓝牙6.0、LEAudio、Thread
    发表于 03-11 16:24

    深入比较nRF52832和Nordic新的产品nRF54L15参数对比

    的:nRF54L15是Nordic最新的BLE芯片,它由nRF52832升级而来用以下表格做一个参数的对比 型号 nRF52832 nRF54L15 内核 Contex -M4 Con
    发表于 03-26 22:28

    Nordic最新开发工具nRF54L15 DK

    2.4GHz和NFC天线 8MB外部闪存 SWF射频连接 通过虚拟串行端口的两个UART接口 SEGGER J-Link OB编程/调试 nRF54L15产品特征 128 MH
    发表于 04-14 09:20

    NRF54L15的NORDIC芯片,adc的内部参考电压

    NORDIC 芯片 NRF54L15 的 ADC(模数转换)内部参考电压确实是 0.9V(标识为 ADC_REF_INTERNAL)。这一参数在实际应用和技术文档中均有明确验证,具体可结合以下信息
    发表于 11-17 15:46

    NORDIC蓝牙芯片NRF54l15的dsp库支持分享

    , IIR)、数学函数等。 适用场景 :结合 nRF54L15 自身丰富的外设(如 14 位 ADC、PDM、I2S),你可以利用 DSP 库开发音频处理(如简单的降噪、频谱分析)、振动分析或传感数据
    发表于 12-17 16:03

    北欧半导体推出128 MHz nRF54L15 Cortex-M33多协议无线微控制

    Nordic Semiconductor最近推出了128 MHz nRF54L15 Cortex-M33多协议无线微控制,这是nRF54L系列的第一款,也是继去年春天推出更强大的 320 MHz
    的头像 发表于 10-17 11:56 4580次阅读

    nRF54L15—蓝牙低功耗双核系统级芯片(SoC)

    nRF54L15nRF54L 系列的首款系统级芯片 (SoC)。它是一款超低功耗蓝牙 5.4 SoC,具有同类最佳的新型多协议无线电和先进的安全功能。nRF54L 系列以更紧凑的封装将广受欢迎
    的头像 发表于 10-17 15:02 1938次阅读
    <b class='flag-5'>nRF54L15</b>—蓝牙低功耗双核系统级芯片(SoC)

    突破性能边界,重塑物联网未来——NRF54L15芯片全面解析

    Nordic Semiconductor全新推出的nRF54L15多协议系统级芯片(SoC),凭借其革命性多核架构、超低功耗及卓越性能,成为新一代智能物联网设备的理想选择。
    的头像 发表于 03-20 15:02 2770次阅读
    突破性能边界,重塑物联网未来——<b class='flag-5'>NRF54L15</b>芯片全面解析

    nRF54L15 # 超低功耗无线 SoC

    nRF54L15 概述 *附件:nRF54L15_nRF54L10_nRF54L05_Preliminary_Datasheet_v0.9.pdf 特征 128 MHz Arm Cortex-M33
    的头像 发表于 07-01 16:57 3616次阅读
    <b class='flag-5'>nRF54L15</b> # 超低功耗无线 SoC

    nRF54L15 如何自动管理电源状态

    1:nRF54L15 上的所有线程都处于空闲状态且外设都已关闭,则设备会在 蓝牙广播间隔结束后自动进入系统 ON-IDLE(睡眠)模式 nRF54L15 的电源和时钟管理单元可自动管理电源状态。当应
    的头像 发表于 11-29 23:49 591次阅读
    <b class='flag-5'>nRF54L15</b> 如何自动管理电源状态

    蓝牙 SoC 选型看这篇!nRF52832/nRF54L15 各适配什么场景?

    蓝牙SoC选型看过来nRF52832/nRF54L15各适配啥场景做低功耗蓝牙项目时,你是不是常陷入“选经典款还是新一代”的纠结?比如Nordic家族里,nRF52832是久经市场考验的“实力派老将
    的头像 发表于 12-10 17:48 1012次阅读
    蓝牙 SoC 选型看这篇!<b class='flag-5'>nRF</b>52832/<b class='flag-5'>nRF54L15</b> 各适配什么场景?