1.9. 蓝牙地址及名字自增功能
Important
烧录器烧录的蓝牙地址,是 EDR 地址(不是 BLE 地址,见 注意事项)
1.9.1. 应用场景
同一批芯片蓝牙产品,实现每颗芯片对应的蓝牙地址都在规定的地址范围内,且每颗芯片的蓝牙地址都是唯一的。
要实现这个功能可在更新fw烧写程序时,在PC端的烧写配置项中配置好对应的蓝牙地址范围,烧写目标芯片程序过程中同时将蓝牙地址按照递增的形式烧写到每颗芯片指定位置,既可以实现在SDK开发中对烧写到芯片内蓝牙地址的利用。
与此同时,在SDK开发中可将蓝牙地址按照指定的格式添加到蓝牙名上,可实现蓝牙名的唯一性。
1.9.2. 蓝牙地址自增配置
在更新fw文件烧写程序的界面,打开并选择要烧写的目标芯片fw文件程序后,如蓝牙地址自增配置所示
【1】点击配置;
【2】勾选蓝牙地址(不勾选,SDK使用的是随机分配的蓝牙地址);
【3】勾选自增(如勾选随机是随机生成一个蓝牙地址);
【4】输入蓝牙地址自增的范围;
【5】点击确认后,再点击更新,更新fw文件和配置信息到烧写器;
1.9.3. 蓝牙地址烧写到目标芯片
蓝牙地址烧写是按照烧写配置项中配置的地址范围,从最低地址开始递增的形式进行烧写,在烧写芯片程序的同时,烧写器会把蓝牙地址也烧写到目标芯。
如设定蓝牙地址范围为:00: 00 : 00 :00 : 00 : 01- 00: 00 : 00 : FF: FF : FF,第1颗芯片烧录成功后的蓝牙地址是00: 00 : 00 :00 : 00 :01,第2颗芯片烧录成功后的蓝牙地址是00: 00 : 00 :00 : 00 :02,依次类推。烧录完所设置的范围内的地址后,烧写器会报地址溢出,不能再进行程序烧录。蓝牙地址具有唯一性,烧到每个芯片的蓝牙地址都不同。
1.9.4. 蓝牙名字自增实现说明
实现原理说明
芯片烧录时配置有蓝牙地址自增烧写功能,每颗芯片都烧写有一个指定范围内的蓝牙地址。在SDK开发中,可通过对应的函数接口读取蓝牙地址,可将蓝牙地址按照指定的格式添加到蓝牙名上,可实现蓝牙名根据蓝牙地址进行自增,实现蓝牙名的唯一性(如不懂SDK代码实现请咨询杰理技术支持)。
蓝牙名字自增实现示例
如更新烧写程序时配置的蓝牙地址自增范围为:00: 00 : 00 :00 : 00 :01 - 00: 00 : 00 : FF : FF :FF,第1颗芯片烧录成功后的蓝牙地址是00: 00 : 00 :00 : 00 :01,第2颗芯片烧录成功后的蓝牙地址是00: 00 : 00 :00 : 00 :02,依次类推;
比如SDK设定的蓝牙名字前缀为AC897N_Main,蓝牙名字设定格式为:蓝牙名字前缀 +地址后 8 位;通过SDK代码实现后蓝牙地址为00: 00 : 00 :00 : 00 :01的蓝牙名为:AC897N_Main_00000001,蓝牙地址为00: 00 : 00 :00 :00 :02的蓝牙名为:AC897N_Main_00000002,依次类推。可自定义其他蓝牙名字格式通过SDK代码实现根据蓝牙地址进行蓝牙名字自增。
1.9.4.1. 关于选项勾选说明
更新蓝牙地址 |
覆盖蓝牙地址 |
被烧录芯片中蓝牙地址 |
烧录器行为 |
---|---|---|---|
未勾选 |
- |
- |
原有芯片中的地址被擦除,SDK随机生成蓝牙地址 |
勾选 |
未勾选 |
已经有,且在地址范围内 |
保留芯片中已有的地址不变 |
勾选 |
未勾选 |
未有地址,或不在地址范围内 |
芯片蓝牙地址,更新为地址范围内的地址 |
勾选 |
勾选 |
- |
芯片蓝牙地址,更新为地址范围内的地址 |
Note
空片、地址被擦除的芯片、或者未烧录地址的芯片,SDK会默认生成一个随机地址
1.9.4.1.1. 常见问题
如果重烧芯片,芯片中已经有了地址,如何保留原来的地址:
勾选【更新蓝牙地址】,取消勾选【覆盖蓝牙地址】,并将地址范围设置为原来的芯片范围
重新烧录这些有了地址的芯片
注意这时候,不要混入未有地址的芯片,否则将会有样机出现地址重复
1.9.5. 注意事项
PC端烧写配置项中所设定的蓝牙地址范围,在未使用完的情况下更新其他的目标芯片程序,所剩余的蓝牙地址将作废。请务必合理使用,避免不必要的的浪费。
烧录器烧录的蓝牙地址,是 EDR 地址。在一些 SDK 中,BLE 地址是依据 EDR 地址计算而得到的(具体计算方式,请咨询提供 SDK 的人),并不是通过烧录器烧录的(通常情况下,BLE 和 EDR 地址不一样)。