中科蓝讯 SDK 开发——TWS 左右声道分配
大家在使用耳机的时候应该都有注意到,需要双耳佩戴的耳机,通常都有用 L\R 字母,来区分左右耳,同时也对应了左右声道。同样的在开发 TWS 耳机的时候也需要注意对耳机的左右声道进行分配。下面以 BT8922D2 芯片为例,介绍使用中科蓝讯芯片开发 TWS 时左右声道分配的方法。
1、SDK setting 配置左右声道
首先在 Downloader 中打开 setting,在 TWS 配置页面可以看到声道分配方式的选择,这里大致分为四种方式。
第一种“不分配”,即不对耳机声道进行指定,均可以输出双声道,这种方式在 TWS 耳机中通常不会采用,可以用做蓝牙音箱的开发;
第二种“自动分配”,这种方式也没有对耳机的声道进行直接的指定,根据选择“主右声道副左声道”或“主左声道副右声道”,通过 TWS 之间主副耳机来确定声道,但是使用这种方式没法保证稳定的主从关系就会导致左右耳机之间声道混乱,也不适合 TWS 耳机的使用;
第三种“硬件选择”,这种方式在硬件设计时,通过左右耳机的硬件上的连接来做左右声道的分配,其中又可以通过两种配置来确定,一个是在左耳的 PWRKEY 引脚接 820K 欧姆的电阻到地,另一种是使用较多的方式,即选择一个 IO 脚位接地,来配置为左,对应的 IO 没有接地的一侧则为右,IO 口的配置同样可以在 setting 中选择,硬件上设计上可以在该 IO 口预留一个 0 欧姆电阻接地,左边耳机焊接,右边耳机 NC。
第四种“固定配置”,除了硬件上做选择,还有软件上做选择,在声道分配中,选择“配置选择为左声道”或“配置选择为右声道”,软件烧录后会固定该耳机的声道分配,这种方式需要分两个配置文件,即两版烧录软件,对应左右耳机,但不需要在硬件上做更改,上一种方式通过硬件来做区分则是可以左右耳机烧录同一版软件,但在设计上会占用一个 IO 资源,在 IO 口有空余时可以使用。
2、根据蓝牙地址配置左右声道
以上四种方式在 SDK 中可以找到对应的检测的位置,在 xcfg.h 中可以看到配置的变量,在工程代码中追这个变量就可以找到配置生效的地方;
可以看到在软件中不过是读取了 setting 中配置的内容,从而进行相应的硬件 IO 检测或软件设置;
那么同样的在这里也可以增加一种新的左右声道分配方式,使用蓝牙地址去配置,使用过蓝讯芯片的小伙伴应该知道,芯片的蓝牙地址是可以在 setting 中配置,烧录后生效。
蓝牙地址的配置方式也有几种,这里不做赘述,主要可以看蓝牙地址的单次递增方式,或区间循环方式,这样在烧录配置蓝牙地址的时候,耳机蓝牙地址会根据配置形成一定的奇偶关系;
xcfg.h 中,同样可以找到对应配置里的蓝牙地址项;
在 tws_lr_xcfg_sel() 中可以去掉 SDK 中原有的配置,添加通过耳机蓝牙地址的奇偶性质来对左右声道进行分配,如下;
以上就是本文分享的全部内容,如果有错误或者遗漏欢迎大家提出和补充,对于配置 TWS 左右声道的方式有新的想法,也欢迎大家提出一起讨论。
延伸阅读
中科蓝讯 SDK中科蓝讯 SDK 开发环境安装及 Downloader 配置
中科蓝讯 SDK 开发——工程浅析
中科蓝讯 SDK 开发——耳机充电配置
中科蓝讯 SDK TWS 组队和蓝牙配对过程分析
中科蓝讯 SDK 开发——TWS 左右声道分配
中科蓝讯AB5607E蓝牙5.4 低成本蓝牙接近开关定时开关方案
AB137A中科蓝讯SOP16封装带插卡带U盘音箱语音识别IC MP3方案开发
中科蓝讯AB5607E蓝牙5.4 低成本带插卡带U盘音箱方案
中科蓝讯SDK 开发环境搭建安装及 Downloader 配置