1、背景介绍
BlueNRG 系列芯片是意法半导体推出的一系列超低功耗的可编程 Bluetooth®低功耗无线 SoC 解决方案。芯片内嵌了意法半导体先进的 2.4 GHz RF 射频 IP,结合了无与伦比的性能和超长电池寿命。支持点对点连接和 Bluetooth™ Mesh 网络,允许以可靠的方式建立大规模设备网络。BlueNRG 系列芯片还适用于 2.4 GHz 专有无线通信,支持超低延迟应用。
从 BlueNRG LP 开始到后续的 BlueNRG LPS 及目前最新 STM32WB09(之前称为BlueNRG-LPF),芯片内置一个 1K 字节的 OTP 区域。地址空间从 0x10001800 ~0x10001BFF。
如用户的产品设计中会用到 Secure bootloader 功能(关于 Secure Bootloader 功能请参见相关 LAT 文档或 ST 提供的关于芯片 UART bootloader 的官方应用笔记),则Secure bootloader 功能会使用到 OTP 区域。如用户的产品设计中不会用到 Securebootloader 功能则 OTP 区域可以用来存储客制的固定数据。这一点也恰恰是很多用户在评估 BlueNRG LP/LPS 系列方案时提出的问题,本文档的目的就是为说明目前 ST 提供的如何操作(读写)OTP 区域的方式方法,解答此类问题。
2、相关资源介绍
RF-Flasher Utility 工具
要对 BlueNRG LP/LPS 中的 OTP 区域进行读写,首先需要安装 ST 提供的上位机软件RF-Flasher Utility 工具。该工具主要用于代码烧录,目前从 ST 官网上可下载的最新版本为 4.3.5。
3、OTP 操作命令解析
调用 RF-Flasher Launcher 工具
打开 Windows 命令行工具窗口,进入到 RF-Flasher Utility 按照目录下的Application 子目录后运行命令“RF-Flasher_Launcher.exe -h”,可以看到版本 4.3.5 已经支持了“read_OTP”和 “Write_OTP”命令。注意这两个命令只支持 SWD 模式的读写操作。
4、实操举例
本实操举例中只使用一块 BlueNRG-LP 的评估板作为目标板来实现对 OTP 区域的读写操作。该评估板 OTP 区域初始内容为全“0xFF”,我们尝试对 OTP 起始地址0x10001800 开始的第一个字进行读写操作。由于 BlueNRG-LP 评估板上板载有 CMSISDAP 调试工具,所以连接方式选用的是 SWD 口方式。
5、小结
当用户需要在其产品设计中使用到 BlueNRG LP/LPS 等系列芯片内置的 OTP 来存储其客制数据的时候,可以采用本文档所述方法实现。用户在访问 OTP 时,必须保证芯片处于 UART bootloader 模式。