全志平台ap6476模组 bluetooth功能调试(2)调试记录&异常问题处理

free-jdx 2021-01-20 17:16:00 8339
1. 前言

这篇主要是解决&分析具体的调试遇到的一些问题

2. 蓝牙打开失败-32k时钟
问题:

蓝牙无法打开。

问题分析:

1、android4.2上蓝牙的调试要看android层的打印信息,内核打印很少,无法帮助定位问题。

2、由android层的打印信息看到在android向蓝牙发完HCI_RESET命令,由于得不到响应而失败返回,蓝牙无响应由之前的调试经验,有两种可能,一是蓝牙模组上电失败,二是uart的四根脚跟主控端不是交叉相连。

3、用万用表做测量,在打开蓝牙时模组是上电的,蓝牙的使能脚也被拉高到1.8V,由原理图确认模组的四根串口线跟主控端是交叉相连的。

4、原理图上看到蓝牙的32K时钟是由主控端的PM07提供,而不是由单独的晶振源提供,用示波器量模组的第24脚LPO是没有时钟波形,需要把的控PM07功能配好,把32K时钟提供出来。

问题解决:

编写代码把PM07配成clk功能并把clk的时钟通道打通,
需要注意的32k时钟还涉及到电压源的,
没电压源即使把PM07配成clk功能和把时钟通道打道也是没有clk输出。

3. 蓝牙打开失败-三极管
问题:

蓝牙无法打开。

问题分析:

1、在蓝牙32k时钟已提供的前提下,蓝牙打开仍然是失败,还是在android向蓝牙发完HCI_RESET命令就得不到响应,模组上电、蓝牙使能、串口连接和蓝牙时钟均ok的情况蓝牙端仍不响应android的reset命令,有些弄不明白了。

2、向ampak请教,了解到ap6476蓝牙有个特性,在蓝牙初始化时,BT_WAKE_HOST是高电平,但由于BT_WAKE_HOST与cpu间接有三极管,所以BT_WAKE_HOST会瞬间被拉低,蓝牙判断BT_WAKE_HOST为低电平就认为数据通道是SPI mode,所以无法响应reset。

问题解决:

按照ampak给出的建议,更换三极管与模组端的电阻,
原来是电阻是4.7K欧姆,改成47K欧姆的电阻即可。

4. 开关蓝牙setting会崩掉
问题:

打开和关闭蓝牙时setting会崩掉

D/BluetoothAdapterService(1089985376)( 9093): getState(): mAdapterProperties: com.android.bluetooth.btservice.AdapterProperties@40f7ed08
W/dalvikvm( 8952): threadid=1: thread exiting with uncaught exception (group=0x40ae6930)
D/BtSettings.ProfileConfig( 9093): getProfileSaveSetting: com.android.bluetooth.pan.PanService
D/BtSettings.ProfileConfig( 9093): getProfileSaveSetting: com.broadcom.bt.service.gatt.GattService
D/BluetoothBondStateMachine( 9093): make
E/AndroidRuntime( 8952): FATAL EXCEPTION: main
E/AndroidRuntime( 8952): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.bluetooth.adapter.action.STATE_CHANGED flg=0x8000010 (has extras) } in com.android.systemui.statusbar.policy.BluetoothController@40fec2c8
E/AndroidRuntime( 8952):        at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:768)
E/AndroidRuntime( 8952):        at android.os.Handler.handleCallback(Handler.java:725)
E/AndroidRuntime( 8952):        at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime( 8952):        at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 8952):        at android.app.ActivityThread.main(ActivityThread.java:5041)
E/AndroidRuntime( 8952):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 8952):        at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 8952):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)
E/AndroidRuntime( 8952):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)
E/AndroidRuntime( 8952):        at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 8952): Caused by: java.lang.NullPointerException
E/AndroidRuntime( 8952):        at com.android.systemui.statusbar.phone.QuickSettingsModel.onBluetoothStateChange(QuickSettingsModel.java:506)
E/AndroidRuntime( 8952):        at com.android.systemui.statusbar.phone.QuickSettingsModel.onBluetoothStateChange(QuickSettingsModel.java:485)
E/AndroidRuntime( 8952):        at com.android.systemui.statusbar.policy.BluetoothController.refreshViews(BluetoothController.java:140)
E/AndroidRuntime( 8952):        at com.android.systemui.statusbar.policy.BluetoothController.onReceive(BluetoothController.java:94)
E/AndroidRuntime( 8952):        at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:758)
E/AndroidRuntime( 8952):        ... 9 more
I/BluetoothBondStateMachine( 9093): StableState(): Entering Off State
D/HeadsetService( 9093): onStartCommand()
D/HeadsetService( 9093): Received start request. Starting profile...
D/HeadsetService( 9093): start()
问题分析:

由logcat看是quicksettingmode出问题了,a31st平台默认是不支持蓝牙功能,因而在该平台的overlay\frameworks\base\packages\SystemUI\res\values目录下添加config.xml文件,
把QuickSettings中的蓝牙显示给去掉,在这种情况下,若设置中有添加蓝牙开关项,在打开蓝牙时会向系统发送广播,
QuickSetting中收到广播但无法响应导致UI报错了,
QuickSettingModel.java是与config.xml配合使用的。

解决方法:

把config.xml中的quick_settings_show_bluetooth_setting值设成true或把整个config.xml文件删除掉即可。

5.蓝牙耳机听歌卡顿
问题:

打开wifi的情况下,使用蓝牙耳机听歌很容易出现卡顿。

07-16 20:33:24.610 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:24.630 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:24.640 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:24.790 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:24.810 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:24.830 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:24.850 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:24.860 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:24.890 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:24.900 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:26.280 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:26.350 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
07-16 20:33:26.370 W/bt-btif ( 3018): btif_media_aa_prep_2_send congestion buf count 24
问题分析:

卡顿时内核无异常打印,android会提示丢弃数据包,数据包被丢弃掉是由于数据还没及时通过天线发送出去的情况下,下一笔数据已需要发送了,因而数据会被丢掉,导致听歌存在卡顿现象,这问题跟rf有关。

问题解决:

更新broadcom firmware和hcd文件解决。

6.如何把蓝牙波特率调至3M
问题:

如何把蓝牙波特率调至3M?

问题分析:

1、ap6476模组模组支持最高的波特率是4M,蓝牙波特率的指定是在/external/bluetooth/conf/bt_vendo
r.conf,通过修改VendorBaudrate的值即可,vendor.conf的内容如下。

# bt_vendor.conf is the 1st priority for bplus to read
#   The parameter and content should be defined in bt_vendor.conf
# libbt_cust.so is the 2nd priority for bplus to read,
#   The parameter should be defined and the content is blank
#   EX: FwPatchFilePath=

FwPatchFilePath=/system/vendor/modules/

FwPatchFileName=bcm2076b1.hcd

UartPort=/dev/ttyS2

VendorBaudrate=3000000

RegonDelay=500

#AP6476 PCM configuration
#PCM2Param=xx:xx:xx:00:D0:07:00:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
#There are total 25 configure, the first one is Test_option. 00:d0:07:00, is frequency settings.
#Just leave the field that you don’t want to change as “xx”

涉及到hcd文件的路径和名称、所使用的串口设备名称和蓝牙波特率值的设定。

2、蓝牙要支持3M的波特率,前提是主控端串口要能支持3M波特率,需要修改sys_config.fex文件更换串口的时钟树以支持3M的波特率,因为默认串口的时钟源是24M,最大只能支持1.5M波特率,sys_config.fex的修改如下。

@@ -80,11 +80,12 @@ jtag_di         = port:PH12<3><default><default><default>
 [clock]
 pll3            = 297
 pll4            = 300
-pll6            = 600
+pll6            = 480
 pll7            = 297
 pll8            = 360
 pll9            = 297
 pll10           = 702
+apb2            = 48
7.蓝牙自动关闭然后自动打开
问题:

蓝牙存在打开后会自动关闭然后再自动打开、在打开蓝牙后搜索设备按键变成灰色和在打开蓝牙后点击搜索设备按键无效,连续点击几次会导致蓝牙关闭再打开。

E/BTLD    ( 3266): ####################################################################
E/BTLD    ( 3266): #
E/BTLD    ( 3266): # WARNING : BTU HCI(id=0) command timeout. opcode=0xc13
E/BTLD    ( 3266): #
E/BTLD    ( 3266): ####################################################################
W/bt-hci  ( 3266): HCI Cmd timeout counter 1
V/codec_audio_pad( 1262): in normal mode, headset or speaker on,****LINE:54,FUNC:set_normal_path
I/bt-btif ( 3266): btif_dm_start_discovery
E/BTLD    ( 3266): ####################################################################
E/BTLD    ( 3266): #
E/BTLD    ( 3266): # WARNING : BTU HCI(id=0) command timeout. opcode=0xc52
E/BTLD    ( 3266): #
E/BTLD    ( 3266): ####################################################################
E/bt-hci  ( 3266): Num consecutive HCI Cmd tout =2 Restarting BT process
问题分析:

1、以上3个问题的根源有可能是相同,logcat看到均是command timeout导致蓝牙关闭。

2、问题均是在系统休眠唤醒后测试发现,需要较长时间的休眠(2小时)。

3、该问题跟硬件相关?bt_rst、VDDIO的电压不稳定?

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
free-jdx
红包 96 9 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
free-jdx
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区