This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2642R:存储在 CC2642R 的 FCFG (出厂配置)区域中的 IEEE 地址和 BLE 地址寄存器的可变值

Guru**** 2331900 points
Other Parts Discussed in Thread: CC2642R, UNIFLASH
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1470506/cc2642r-variable-values-of-ieee-address-and-ble-address-registers-stored-in-fcfg-factory-configuration-region-of-cc2642r

器件型号:CC2642R
主题中讨论的其他器件: UNIFLASH

工具与软件:

嗨、

我将 CC2642R 用于我的蓝牙低耗能应用。 查看技术参考手册后、我发现在该区域中存储了2个唯一地址、即

FCFG 中比较有用的字段之一是:•mac_15_4_n 字段、这些字段给出了芯片组的预编程 IEEE 地址

                                  •mac_BLE_n 字段、这些字段给出了芯片组的蓝牙低功耗地址

(新技术参考手册的第843页)

但是每当我在一段特定时间后尝试读取此地址时、这2个寄存器中存储的值都会改变...  

这对于我的应用来说非常麻烦、因为我需要一个唯一的 ID 来区分两个不同的生产级控制器。

我使用的代码如下所示:

#include <inc/hw_fcfg1.h>
#include <inc/hw_types.h>
#include <inc/hw_memmap.h>

uint64_t macMasterID;

uint64_t macMasterIDLsb;
uint64_t macMasterIDMsb;




macMasterIDLsb = HWREG(FCFG1_O_MAC_15_4_0);
macMasterIDMsb = HWREG(FCFG1_O_MAC_15_4_1);
macMasterID = (uint64_t)(macMasterIDMsb << 32) + macMasterIDLsb;


有人能帮忙解决这个主题吗
谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Raj、

    感谢您的咨询。 FCFG 是不可修改的、每个器件为  MAC_15_4_n 和 MAC_BLE_n 都具有唯一的值、因此您应该能够实现所需的效果。 我认为您缺少了需要添加到 FCFG1_O_MAC_xxx 中的 FCFG1_base、因此缺少其他信息。

    请告诉我进展如何。

    BR、


    David。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    David、您好!

    ieeeIDLsb = *((uint64_t *)(FCFG1_BASE + FCFG1_O_MAC_BLE_0)) & 0xFFFFFFFFFFFF;
    ieeeIDMsb = *((uint64_t *)(FCFG1_BASE + FCFG1_O_MAC_BLE_1)) & 0xFFFFFFFFFFFF;
    ieeeID = (uint64_t)(ieeeIDMsb << 32) + ieeeIDLsb;

    感谢您的答复。 上述 代码是否正确或需要进行任何其他修改 ?
    目前此代码提供固定值。
    此致
    Raj

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Raj、

    这应该可以。

    如果您希望再次检查这些值是否正确。 您可以使用 UNIFLASH。 转至"Settings and Utilities"、然后搜索 Primary BLE Address 和 Primary IEEE Address、以便读取它们。

    BR、

    David。