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

Version 2

    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组件配置公共设备地址

     

    使能该选项之后,将会使用晶圆上的晶片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更新工具


    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更新工具 

     

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

     

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