10 posts / 0 new
Last post
huayu
Offline
Last seen:1 year 11 months ago
加入:2015-04-22 02:34
DA14580的蓝牙MAC地址如何处理?
Device:
Jelphi
Offline
Last seen:5 months 3 weeks ago
工作人员
加入:2015-09-10 12:07
DA14580出厂时,没有预先烧入mac 地址:

DA14580出厂时,没有预先烧入mac 地址:

对于蓝牙设备,有“Random Devices Address” 和”public device address", public adress(公开地址)需要向IEEE组织注册申请,而"“Random Devices Address”(随机地址)则不需要注册和申请,它又可以分为:Static Address(静态地址)和private adress(私有地址),静态地址是每次设备上电随机产生,使用期间不变,除非下次重新上电,而私有地址,有可分为:non-revosable 和resolvalble 两种,区别在于随机数产生的方法不同

fxishui
Offline
Last seen:3 years 10 months ago
加入:2016-04-12 13:27
静态地址是每次设备上电随机产生 这个怎么配置,在哪里配置

静态地址是每次设备上电随机产生 这个怎么配置,在哪里配置,有参考文档吗? 谢谢!

Gongyu_Dialog
Offline
Last seen:1 day 13 hours ago
加入:2016-04-27 07:07
设备上电地址随机产生,芯片并不能给出结果

设备上电地址随机产生,芯片并不能给出结果;需要你外部PC算好后,写入OTP对应位置里面

sprhawk
Offline
Last seen:3 years 1 month ago
加入:2016-03-03 17:25
按照蓝牙的规范,静态随机地址的话

按照蓝牙的规范,静态随机地址的话,每次设备上电应该重新生产蓝牙地址。这种情况应该代码里如何处理/

snowdream1
Offline
Last seen:7 months 2 weeks ago
工作人员
加入:2014-08-17 14:25
你只能去写寄存器0x40000024和0x40000028

你只能去写寄存器0x40000024和0x40000028了,前面是低四位,后面存高2位,小端排列

Linjuncheng
Offline
Last seen:1 year 11 months ago
加入:2018-05-15 02:30
sdk5.0.4 在广播前写这两个寄存器好像没什么用了

sdk5.0.4 在广播前写这两个寄存器好像没什么用了。不过强行修改nvds_data_storage.NVDS_TAG_BD_ADDRESS是可以的。

CYibin
Offline
Last seen:6 months 3 weeks ago
工作人员
加入:2017-12-14 02:48
蓝牙地址是 public addr 时

蓝牙地址是 public addr 时,修改此处可修改蓝牙地址

lindapeng
Offline
Last seen:1 year 3 days ago
加入:2018-10-25 04:36
你好,我想问一下

你好,我想问一下,0x40000024和0x40000028这两个寄存器功能是什么?怎么用?资料上没有这两个寄存器,谢谢
另外,nvds_data_storage.NVDS_TAG_BD_ADDRESS中的地址是public device address还是Random Devices Address?谢谢

CYibin
Offline
Last seen:6 months 3 weeks ago
工作人员
加入:2017-12-14 02:48
你好,

你好,

0x40000024,0x40000028 是蓝牙地址设置相关的寄存器,为底层所用;

NVDS_TAG_BD_ADDRESS 默认情况下,是作为 public 地址;

蓝牙地址相关、常用的操作如下:

修改地址类型,可通过宏:USER_CFG_ADDRESS_MODE

修改 public 地址,可通过宏:CFG_NVDS_TAG_BD_ADDRESS

设备上电后,会先读取 OTP Header 中的 蓝牙地址字段,如果为空,则会使用 CFG_NVDS_TAG_BD_ADDRESS 作为蓝牙地址;否则,以 OTP header 中的作为蓝牙地址

如果想要使用自己自定义的 蓝牙地址(比如上电时把 flash 的 id 作为蓝牙地址),可在函数 read_otp_header(void) 中,修改 dev_bdaddr
memcpy(&dev_bdaddr, (uint8_t *) OTP_HDR_BDADDR_ADDR, sizeof(dev_bdaddr));