BES2600播放音乐卡顿调试 (一)

最近在做BES2600耳机的项目的时候, 播放音乐总是偶尔会有一些播放卡顿的情况, 本篇文章简单列举了BES2600SDK中几种常见的播放卡顿情况, 以及软硬件优化排查的方向

选择竞品

这一步骤尤为重要, 俗话说好的开始是成功的一半. 这里需要注意的是, 竞品的选择并不是越多越好, 也不是对方越强越厉害越好, 而是要选择合适的竞品, 才能精准提取有价值的信息. 比如可以尽量选择产品形态上接近的竞品, 天线形态接近的竞品, 电池干扰方向接近的竞品等, 并且产品的价格等级和性能与竞品的接近, 这里耳机产品可以选择音质与延时参数相当的耳机作为竞品, 这样竞品对比才比较有意义

cache underflow卡顿

这是比较典型的一种播放卡顿情况, 主要可能原因是蓝牙受到干扰, 接收不到数据导致的卡顿. SDK中大致的播放过程是耳机持续接收手机的蓝牙数据包, 接收到的包会存到一个缓存中也就是cache中, 缓存中的数据够了之后解码并播放. 播放过程会持续消耗缓存中的数据来播放, 接收到的数据包持续放到缓存中. 当蓝牙收到干扰接收不到数据时, 缓存中的音乐包就会持续消耗, 消耗完了就会提示cache underflow的错误, 数据不够了导致解码失败播放卡顿
cache underflow卡顿情况
针对这种卡顿情况, 可以从以下几个方面对比排查以提高抗干扰能力

RF方向排查

建议在开始软件调整之前应排查硬件RF各种性能指标是否满足要求, 比如测试天线的匹配性能数据, 板卡的RF各项性能数据(输出功率, 灵敏度, DEVM等), 各项性能达标的情况下再来调试软件
软件部分RF可以调整的部分在驱动文件中, BT驱动文件一般在platform\drivers\bt\besxxxx目录下(如遇到RF性能比较差的情况, 有部分情况可以通过BT驱动文件修改. 因为大部分看不懂, 所以不建议自行修改, 最好咨询芯片代理商或原厂进行修改)
简单尝试过修改芯片RF发射功率, 有一小点效果, 以BES2600YP的SDK为例, 修改RF输出功率可以bt_drv_rfconfig.c中bt_drv_tx_pwr_init()函数中修改, 可以修改6个挡位输出功率值
RF发射功率修改
不同SDK这里bt_drv_tx_pwr_init()的修改略有区别, 旧的SDK一般只有4个挡位, 直接修改这几个寄存器的值, 值越小输出功率越大
RF发射功率修改2
说回BES2600SDK, SDK中留了个接口给用户自行设定发射功率, 自定义发射功率, 在bt_drv_tx_pwr_init() RF TX初始化之前, 将用户自定义的发射功率配置通过bt_drv_rf_set_customer_config()接口写入即可
用户自定义发射功率1
以下为举例的填入一个自定义的RF发射功率参数
用户自定义发射功率2
RF参数修改完成之后, 粗略的方法可以借助BES官方APP中的CHIP TOOLS, 查看手机连接实时RSSI的值的大小来判断RF的好坏. 这里使用安卓手机安装了BES的Bestechnic APP(应用宝上可以下载), 耳机软件上修改打开TOTA开关, 不同SDK这个宏开关名字可能不一样, 这里直接在target.mk中打开APP_RSSI的宏来使用
打开APP_RSSI
BES官方推荐RSSI测试方法如下
RSSI测试测试方法
推荐调试到耳机整机通过APP读取耳机与手机之间RSSI值大于-50dbm(TIS<-85dbm TRP>4dbm), 并且TWS之间RSSI值大于-50dbm, 此时能达到比较好的抗干扰效果
连接上手机看RSSI效果如下.
APP查看RSSI值

音频参数修改

这里说的音频参数主要是修改音频数据包码率, 由下图码率与音乐包间隔关系可知, AAC播放格式的间隔会比同级别SBC的音乐包间隔大; AAC和SBC码率越高时间间隔会越小, SBC随着bitpool从53降低, 音乐包间隔会逐步加大. 所以设置的音乐码率越低, 音乐包间隔会越大, 允许重传的次数就更多, 实际测试抗干扰和拉距的效果会更好
码率与时间间隔关系
以下为代码中AAC和SBC码率的设置, 可以在tgt_hardware.h中设置
码率设置

延时参数修改

延时参数也是影响播放抗干扰的一个重要参数之一. 如果延迟大, 意味着设备有更多的音频缓冲数据,可以抵抗更强的干扰, 由于缓存的大小直接决定抗干扰的能力, 因此在内存资源足够的情况下, 缓存越多越好. 但是由于客户对时延是有要求的, 因此时延要求低的情况下, 缓存就需要比较低. 这里可以修改A2DP_PLAYER_PLAYBACK_DELAY_AAC_MTU和A2DP_PLAYER_PLAYBACK_DELAY_SBC_MTU这两个宏参数, 适当提高MTU数来使缓存中的数据包增大, 从而加大播放音频缓存数据, 来获得更好的抗干扰性能
延时参数修改

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小的代码里面挖呀挖呀挖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值