Fork me on GitHub

一 前言

 bes2500芯片在tws耳机应用十分广泛,该芯片有着资源强大,音质好,大厂背书等特色。吸引了不少粉丝跟随。

最近在调试该芯片的tws配对流程,花费了一些时间,踩了一些坑,这里做一个总结和备忘吧。

 

二 源码分析

   TWS耳机,往往是双耳先进入配对,然后才会进入和手机的配对流程,这里拿我这边的sdk代码做实例分析。

首先,要让双耳都进入配对模式,也就是在让双耳都进入可配对状态,代码如下所示。

#ifdef IBRT_SEARCH_UI
                    if(false==is_charging_poweron)
                        app_ibrt_enter_limited_mode();
#endif
                    app_bt_accessmode_set(BTIF_BT_DEFAULT_ACCESS_MODE_PAIR);

 其次,让任意一个耳机进入搜索tws配对状态,原厂的是通过双击powerkey进入这种状态的。需要确认是否会进入这种状态。

                TRACE(0,"double kill nv_role:%d ",p_ibrt_ctrl->nv_role);
                if(IBRT_UNKNOW==p_ibrt_ctrl->nv_role)
                {
                    app_ibrt_if_init_open_box_state_for_evb();
                    app_start_tws_serching_direactly();
                }
                else
                {
                    bt_key_handle_func_doubleclick();
                }

 这就会进入了两个耳机的互联状态。假如搜索到,就会有下面的搜索到的日志信息:

aa aa aa aa bb bb
     8134/I/NONE  /R-M/  8 | inqmode = 2
07 09 59 69 6e 5f 42 54 11 03 01 00 0e 11 0f 11 0c 11 0b 11
     8136/I/NONE  /R-M/  8 | ##RSSI:-71
     8136/I/NONE  /R-M/  8 | local aa aa aa aa bb bb

     8137/I/NONE  /R-M/  8 | <1>
     8137/I/NONE  /R-M/  8 | <2>
     8137/I/NONE  /R-M/  8 | <3> search name len 6 Yin_BT

8 | ibrt_core_v2:link_type=0, e<88>! <80>¨^F  local name Yin_BT

     8138/I/NONE  /R-M/  8 | <4>
     8138/I/NONE  /R-M/  8 | ibrt_scan_mgr:set_access_mode=0, LR=0xc06a1db
     8139/I/NONE  /R-M/  8 | ibrt_scan_mgr:btif_me_set_accessible_mode status:02

配对成功之后,会上报日志:

custom_ui tws pairing_state changed = 2 with reason 0x0,role=0

对应的代码如下所示:

    TRACE(2,"custom_ui tws pairing_state changed = %d with reason 0x%x,role=%d",state,reason_code, ui_role);

    switch(state)
    {
        case IBRT_CONN_PAIRING_IDLE:
            break;
        case IBRT_CONN_PAIRING_IN_PROGRESS:
            break;
        case IBRT_CONN_PAIRING_COMPLETE:
#ifdef MEDIA_PLAYER_SUPPORT
            // if (app_ibrt_if_is_ui_slave() && (btif_besaud_is_connected()))
            // {
            //     app_voice_report(APP_STATUS_INDICATION_PAIRSUCCEED, 0);
            // }
            app_voice_report(APP_STATUS_INDICATION_PAIRSUCCEED, 0);

#endif

  当听到双耳同时pariing success 之后,说明两个耳机连接成功,可以链接手机了。这个时候,手机才可以搜索到。

 

三 总结:

  原始sdk只提供了源码。具体的想要怎么进入配对,可自行修改即可。

笔者用的bin文件链接如下,如有需求请自取:

链接: https://pan.baidu.com/s/1ZRHOIkxpgLlCZWJi83A6vw 密码: n2h3
--来自百度网盘超级会员V3的分享

串口波特率:1152000

 

posted on 2022-03-14 15:13  虚生  阅读(774)  评论(0编辑  收藏  举报