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.

CC2652R: CC2652R有芯片唯一ID吗,如何获取

Part Number: CC2652R
Other Parts Discussed in Thread: UNIFLASH, SYSCONFIG

如题,cc2652R芯片有唯一id吗,有的话如何获取

  • 有的,可以通过flash programmer2或Uniflash读取:

    也可以使用例程如simple_peripheral,在sysconfig中选择public address,串口会打印

  • 您的意思是地址模式选择public address,获取的MAC地址可以保证唯一id吗

  • 好的,非常感谢。通过查看cc2652的技术参考手册,CCFG中有 IEEE_MAC_0、 IEEE_MAC_1和 IEEE_BLE_0、 IEEE_BLE_1,如果它们的值不是0xFFFFFFFF,则该字段的值被应用,否则使用FCFG中的值(即MAC_15_4_0、MAC_15_4_1和 MAC_BLE_0、MAC_BLE_1)。

    问题1:BLE的MAC地址是IEEE_MAC_n还是IEEE_BLE_n?

    问题2: FCFG中的MAC_15_4_n和 MAC_BLE_n的偏移量分别是0x2E8和0x2F0,那么它们的基地址是多少?我想用UniFlash查看以下

  • 唯一MAC地址不是CCFG中的 IEEE_MAC_0、 IEEE_MAC_1和 IEEE_BLE_0、 IEEE_BLE_1

    唯一MAC地址的获取方式上面已经说明了

    后面的问题是另一个问题了,请重开一个新帖以便其他人查找

  • 我用的SDK版本是5.20,IDE是CCS,编译器是TIClang。simple_peripheral_oad_onchip工程中BLE的MAC地址选择的是public addressbim_onchip工程没有改动时,通过串口打印的BLE MAC地址0xF0F8F226778D。

    bim_onchip工程中,在ccfg_app.c文件中添加了SET_CCFG_IEEE_BLE_0(就是上面说的IEEE_BLE_0,偏移量0x1FD0)和SET_CCFG_IEEE_BLE_1(就是上面说的IEEE_BLE_1,偏移量0x1FD4的定义,如下面代码的第2行和第3行

    #define SET_CCFG_IMAGE_VALID_CONF_IMAGE_VALID 0x56000
    #define SET_CCFG_IEEE_BLE_0                             0xAAAAAAAA // Bits [31:0]
    #define SET_CCFG_IEEE_BLE_1                             0xAAAAAAAA // Bits [63:32]
    
    #include <ti/devices/DeviceFamily.h>
    #include DeviceFamily_constructPath(startup_files/ccfg.c)

    刷到flash后,通过串口打印的BLE MAC地址0xAAAAAAAAAAAA所以得出的结论是我上面描述是正确的:这个BLE的MAC地址是可以通过修改IEEE_BLE_0IEEE_BLE_1改变的。如果不定义SET_CCFG_IEEE_BLE_0SET_CCFG_IEEE_BLE_1则ccfg会使用DeviceFamily_constructPath(startup_files/ccfg.c)中的定义,如下

    //#####################################
    // Alternative BLE address
    //#####################################
    #ifndef SET_CCFG_IEEE_BLE_0
    #define SET_CCFG_IEEE_BLE_0     0xFFFFFFFF // Bits [31:0]
    #endif
    
    #ifndef SET_CCFG_IEEE_BLE_1
    #define SET_CCFG_IEEE_BLE_1     0xFFFFFFFF // Bits [63:32]
    #endif

    而根据cc2652技术参考手册中的描述,如果SET_CCFG_IEEE_BLE_0SET_CCFG_IEEE_BLE_10xFFFFFFFF,则BLE的MAC地址使用FCFG中的MAC_BLE_0MAC_BLE_1作为其BLE地址,即上面的0xF0F8F226778D。