公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

设置蓝牙设备地址 – KBA211407 (ZH)

设置蓝牙设备地址 – KBA211407 (ZH)

ChaitanyaV_61
Employee
Employee
50 questions asked 25 likes received 25 sign-ins

Version: **

问题
如何基于芯片产生或者
SFLASH来设置地址?

 

答案

蓝牙设备的公共设备地址(48位)包含两部分:

 

 

  • 公司识别码部分:

它是IEEE分配的24位组织唯一识别码地址(OUI)。出于测试目的,您可以使用赛普拉斯的OUI0x00A050)。出于量产目的,您可以获取自己公司的OUI。获得应用成员或者联盟成员身份后,您可以从蓝牙联盟官方网站获取自己公司唯一识别码(请参考 https://www.bluetooth.org/en-us/specification/assigned-numbers/company-identifiers )。或者您也可以使用IEEE指定的OUI(请参考https://standards.ieee.org/develop/regauth/oui/)。

 

  • 公司指定部分:

蓝牙地址的低24位是公司指定部分。

针对这一部分,您可以使用芯片产生的地址作为公司指定地址,或者您也可以直接在闪存中写入一个地址。

如果要根据芯片产生的值设置这部分地址,请打开PSoC® Creator™顶层设计文件中BLE组件的配置框,勾选设备地址由芯片产生“公司指定地址”的部分(如图1所示)。

 

 

1. BLE组件配置公共设备地址

pastedImage_25.png

 

使能该选项之后,将会使用晶圆上的晶片ID和晶片位置的X-Y坐标生成公司指定地址。PSoC Creator使用晶片横坐标的6位,纵坐标的6位以及晶圆的5位和晶圆批次的7位寄存器,这样可以得到2^24个不同的设备地址。

 

这里配置的是静态地址,仅用于开发目的。地址通过SWD接口烧录到设备中。通常情况下,这个地址只用在量产时烧录一次,之后将不再改变。而用户闪存可以进行多次烧写。

 

在原型开发(固件设计)时,这个地址可以使用MiniProg3进行烧录。这样做,需要用到PSoC Programmer安装目录中的Sflash更新工具。这个工具针对PSoC6PSoC4有不同的版本。

 

  1. PSoC6对应的工具PSoC6-BLE2-SFLASH-Update.exe位于下面的文件夹C:\Program Files (x86)\Cypress\Programmer\ Examples\Misc\PSoC6-BLE2-SFLASH-Update\Executable。在第0行中输入cy_stc_ble_gap_bd_addr_t类型的结构体对应的设备地址以将其存储在Sflash当中。参见图2. 

    2. PSoC6 BLE Sflash更新工具
    pastedImage_33.png

  2. PSoC4对应的工具PSoC4-BLE-SFLASH-Update.exe位于下面的目录当中C:\Program Files (x86) \Cypress\Programmer\ Examples\Misc\PSoC4-BLE-SFLASH-Update\Executable。参见图3。在这个工具中,在第0行输入CYBLE_GAP_BD_ADDR_T类型的结构对应的设备地址以将其存储到Sflash当中。   

    3. PSoC4 BLE Sflash更新工具 
    pastedImage_39.png

 

对于128KB闪存的设备,第0行的地址是0x0FFF F200。对于256KB闪存的设备,第0行的地址是0x0FFF F400

 

BLE组件并不会使用第1,2,3行,这些行可用于存储用户信息。请注意行地址和长度(128位,256位,512位)取决于所选设备的闪存大小。这部分应用提供了源代码,可以作为批量烧录时的参考例程。

0 点赞
480 次查看