Biu~笔记:高通蓝牙ADK(23)--修改蓝牙属性

       Biu~观众老爷们,大家在做开发时有没有觉得心闷、心慌、心率不正,常常头晕脑痛,失眠多梦。Emmm~在下患有此症,询医多次,未得根治。一日,神游码海之中,忽有灵光一现,晃然大悟。今码地三分,作物频换,尚未习熟,便又换之,变幻莫测,琐事繁多,既不可故技重施,又不得照虎画猫,属实扰人心智。现已知患因,心中巨石便可高高抛出,你丫的,天天更新,更新完了用法还不一样,不一样就算了,说明文档也不搞一个。


       开个玩笑,这篇文章是对MIB key使用的说明,这里拿个修改蓝牙特性(feature)为例子做讲解。蓝牙feature就是蓝牙LMP协议层中的特性,这部分设置有很多,包括数据包封包类型、包属性的设置、角色模式的选择等等一系列的设置,感兴趣的可以看看蓝牙协议规范文档,这里主要是讲一下怎么在新的ADK中修改。

       小编想修改这个,主要是想把3 Mb/s这个传输速率的特性关了。而在ADK6.x的版本里面,有一个MIB Key  PSKEY_LOCAL_SUPPORTED_FEATURES可以修改,他对应的格式是这样的

而在新的ADK中,这个MIB key改了名字,而且格式也换了。也就是说这个key不能直接用到新的ADK上了。

但是新的ADK对这个key的说明仅有位的说明,没有给出任何例子,这个supported_features_mask_t类型也没有找到定义的地方,所以说编译是否成功取决于你格式蒙不蒙得对。这个MIB key你可以在这个路径下找到说明文档

qcc514x-qcc304x-src-1-0_qtil_standard_oem_earbud/adk/docs/mib_keys/qcc514x_qcc304x/bt_qcc514x_qcc304x.html

同时官方有个QCC514x_QCC304x Supported Features Mask Application Note 80-19383-1 的文档对这个key的说明“详细”复制了一遍,ε=(´ο`*)))唉。

       所以想要知道这个key的格式(不仅限于这个key,还有好多这样的坑),你都可以用一个工具去破解。在最新的Bluesuite中有一个config app,这个工具是用来配置MIB key的。怎么使用,可以参考https://www.wpgdadatong.com/blog/detail?BID=B2197这篇博文。在这个工具中,找到Supported Features Mask,点击“add”就能看到他的设置界面了。在默认情况下数据都是为0的,这时需要手动根据自己需要,或者找到上面提到的近似于无用的文档(80-19383-1),里面有介绍每个byte默认的值是多少。其中3Mb/s的设置也改了名,这里的设置是byte3 中的第3位(EDR ACL 8 DPSK mode),将这一位设置为0就代表关闭该功能

设置完之后烧录进芯片就可以了。但我们不可能每次都通过这个去设置,太费劲了。我们需要通过这个软件导出一个htf文件,打开这个文件,我们就可以看到这个MIB key的格式是怎么样的了,将这个key 值添加到工程中对应文件,后续再去修改就变得简单了。

##############################

file=bt5

 

# SUPPORTED_FEATURES_MASK

SUPPORTED_FEATURES_MASK =  \

{ \

    \

  { \

     0x01 /* 3-slot packets */ , \

     0x01 /* 5-Slot packets */ , \

     0x01 /* Encryption */ , \

     0x01 /* Slot Offset */ , \

     0x01 /* Timing Accuracy */ , \

     0x01 /* Switch */ , \

     0x01 /* Hold Mode */ , \

     0x01 /* Sniff Mode */  \

  },  \

  { \

     0x00 /* Park Mode */ , \

     0x01 /* RSSI */ , \

     0x01 /* CQDDR */ , \

     0x01 /* SCO Link */ , \

     0x01 /* HV2 Packets */ , \

     0x01 /* HV3 Packets */ , \

     0x01 /* u-Law log */ , \

     0x01 /* A-Law log */  \

  },  \

  { \

     0x01 /* CVSD synchronous data */ , \

     0x01 /* Paging parameter negotiation */ , \

     0x01 /* Power Control */ , \

     0x01 /* Transperant SCO Data */ , \


     0x00 /* Flow Control Lag */ , \

     0x01 /* Broadcast Encryption */  \

  },  \

  { \

     0x00 /* Reserved */ , \

     0x01 /* EDR ACL DQPSK mode */ , \

     0x00 /* EDR ACL 8 DPSK mode */ , \

     0x01 /* Enhanced inquiry scan */ , \

     0x01 /* Interlaced inquiry scan */ , \

     0x01 /* Interlaced page scan */ , \

     0x01 /* RSSI with inquiry results */ , \

     0x01 /* ESCO EV3 packets */  \

  },  \

  { \

     0x00 /* EV4 packets */ , \

     0x00 /* EV5 packets */ , \

     0x00 /* Reserved */ , \

     0x01 /* AFH capable slave */ , \

     0x01 /* AFH classification slave */ , \

     0x00 /* BREDR Not Supported */ , \

     0x01 /* LE Supported */ , \

     0x01 /* EDR ACL 3 slot */  \

  },  \

  { \

     0x01 /* EDR ACL 5 slot */ , \

     0x01 /* Sniff Subrating */ , \

     0x01 /* Pause Encryption */ , \

     0x01 /* AFH capable master */ , \

     0x01 /* AFH classification master */ , \

     0x01 /* EDR eSCO DQPSM mode */ , \

     0x00 /* EDR eSCO 8 DPSK mode */ , \

     0x00 /* EDR eSCO 3 slot */  \

  },  \

  { \

     0x01 /* Extended Inquiry Response */ , \

     0x01 /* Simultaneous LE and BREDR */ , \

     0x00 /* Reserved0 */ , \

     0x01 /* Simple Pairing */ , \

     0x01 /* Encapsulated PDU */ , \

     0x00 /* Erroneous Data */ , \

     0x01 /* QOS PBF */ , \

     0x00 /* Reserved1 */  \

  },  \

  { \

     0x01 /* Link Supervision Timeout Changed Event */ , \

     0x01 /* Inquiry Tx Power Level */ , \

     0x01 /* Enhanced Power Control */ , \

     0x00 /* Bluetooth_Supported_Features_Mask_Reserved_3 */ , \

     0x00 /* Bluetooth_Supported_Features_Mask_Reserved_4 */ , \

     0x00 /* Bluetooth_Supported_Features_Mask_Reserved_5 */ , \

     0x00 /* Bluetooth_Supported_Features_Mask_Reserved_6 */ , \

     0x01 /* Extended features */  \

  } \

}

 

##############################

 

      以上是本期博文的全部内容,如有疑问就别在博文下方评论留言了,有什么疑问或想了解的当面和我说(如果你知道我是谁的话ヽ( ̄▽ ̄)و),我会尽量安排上(o´ω`o)و。谢谢大家浏览,我们下期再见。

 

 

多看文档,多上官网

多看文档,多上官网

多看文档,多上官网

 

      

 


 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

Biu~

Biu~

2022年12月16日
PSKEY_LOCAL_SUPPORTED_FEATURES = {65279, 64143, 65499, 34651}
Biu~

Biu~

2022年12月16日
PSKEY_LOCAL_SUPPORTED_FEATURES[ ] = { 65279, 64,143, 65499, 34651}
谢工

谢工

2022年2月23日
想请教一下,我用R00289 版本的ADK 做的固件,在产线测试(DUT MODE)测试RF时, RF 灵敏度统一低了6~8个dB.但是R00271版本的ADK没这个问题。请问这个是否跟Features有关??