找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

搜索附件  

ear_bud_ok_then_fail.zip

 

QCC3020断线后无法被scan到的问题:
拜托各位大神:
    小弟我刚接触QCC, 一开始就遇到瓶颈, 有点灰心.
我做了ear_bud的project, 也烧进去开发板了, 但连线后再断线, 就再也无法进入pairing状态.
只能跟第一次配对的手机对连, 用pydbg看了log, 确实没进pair, 拜托跪求一定要帮帮忙. 谢谢了.
earbud要搞稳定不是一般人能搞的,人家一个团队来搞都得几个月,这点小问题都分析不出来,还是赶紧找你们老板说明搞不定,把案子外发给专业有经验的人来搞得了,不要到时因软件原因耽误项目进度影响生产交货而背锅。当然你们案子不急,只是预研的话,就当我没说。再个单个地址tws都出来了,等你摸透这个,两个地址的tws就已经过时了,经验也不值钱了也说不定
zhaopeng2511 发表于 2020-1-12 20:38
earbud要搞稳定不是一般人能搞的,人家一个团队来搞都得几个月,这点小问题都分析不出来,还是赶紧找你们老 ...

小弟是来自台湾的同胞, 不是一般人, 而是20年经验的firmware工程师, 在芯片大厂工作很多年, 对蓝牙协议栈非常熟悉, 最近升格自己接案了. 我来这边是讨论技术的, 其他的不想谈. 我认为热情的大陆同胞一定乐于讨论并分享技术, 小弟也愿意无偿分享.
毕竟使用方案和做方案角色不同, 使用方案就必须在无底层源代码下猜测芯片厂的设计思路与意图, 确实有其不可逾越的障碍, 但绝不像大哥您说的如此困难, 小弟不会轻言放弃. 毕竟也才开始两周. 如果大哥是方案商也不用跟我推荐了.
目前所了解的是Disconnect后未触发paring event, 以进行Inquiry scan. 很可能是需要在某个call back里面调用pairing init函式.
本帖最后由 zhaopeng2511 于 2020-1-13 00:27 编辑
黃子衡 发表于 2020-1-12 22:51
小弟是来自台湾的同胞, 不是一般人, 而是20年经验的firmware工程师, 在芯片大厂工作很多年, 对蓝牙协议栈 ...

对自己有信心就好,有足够的开发经验可以去研究一下(我自己一直做高通蓝牙,但也研究了二三个月才把earbud搞稳定能出货,一般工程师就更不用说了,当然难易程度也跟软件需求有关,我做的定制化的东西比较多,改多了问题也多是正常),我说的只是针对一些技术经验不够丰富的人,省得搞不定背锅。你把rule规则理解了,就是分析LOG的事了,分析时多关注每条规则执行结果run/ignore/defer,理解了RULE规则你说的这种问题是很容易分析出来的,改的时候要非常小心,改完一定要各种情况测试一下,不然很容易解决一bug,又制造出几个bug的情况,原则是尽量少改动原有架构
zhaopeng2511 发表于 2020-1-13 00:14
对自己有信心就好,有足够的开发经验可以去研究一下(我自己一直做高通蓝牙,但也研究了二三个月才把earbu ...

谢谢同胞的鼓励.
以您的经验, 确实可以迎刃而解.
rule其实并不难理解, 就是state machine和event-driven的结构.
对于初学者, 主要是不熟悉那些信息代表的意义, 只能根据log去推敲了.
如果有经验的人轻轻带个方向, 相信对我帮助很大.
坦白说个人有点意外这芯片的ADK竟然在不改任何代码下会有问题, 可以想见如大哥所言,
这有很高进入障碍, 原因来自于ADK不成熟, 未来愈趋成熟后应当不会这么难搞.
我目前是高通的合法订阅户, 随时可更新最后版本的ADK, 目前是用ˊ6.4.2.26, 期待愈来愈好.
黃子衡 发表于 2020-1-13 10:19
谢谢同胞的鼓励.
以您的经验, 确实可以迎刃而解.
rule其实并不难理解, 就是state machine和event-drive ...

你提的问题和你的所有疑问都能敲代码解决的,这个你不用担心。
本帖最后由 liujinhan 于 2020-1-13 14:07 编辑

都跪求了,为什么不把log贴上来呢,各位大师也好把脉不是。
谢谢liujinhan大师, 您是第一位跟我拿log的, 真心感谢, 小弟原也想放log, 但碍于大师们时间宝贵, 如何能小弟我一行行看log呢?
由于小弟是买了开发板烧了示例image就有这问题, 自己编译project也是一样, 所以心想这问题应该是非常非常入门级别的, 也许有大师可一语道出玄机.
小弟不才, 就奉上log给诸位大师.
个人操作步骤为, Depoly完两个3020后, 按下"lay"仿Out of box, AUX听到paring, 手机配对, 听到音乐. 接着由手机断开, 耳机变一病不起.....
个人主要是看初次启动有Line 225
appHandleInternalHandsetPairRequest, state 2
引发paring程序.
手机断开为line 923, 我们可以看到断开的log, 但再也没看到paring被触发了.
实际看代码, 断线应走入appSmHandleInternalAllRequestedLinksDisconnected(), 引发
新的POST_DISCONNECT_ACTION_HANDSET_PAIRING action, 调用appPairingHandsetPair().
但一切并没有发生.
请大师把脉, 小弟先谢过.
补充个照片, 就是买了个这玩意儿~ 连示例都有问题
黃子衡 发表于 2020-1-13 09:57
补充个照片, 就是买了个这玩意儿~ 连示例都有问题

开发板有技术支持群的,可以在群里咨询下。
52bluetooth 发表于 2020-1-13 18:40
开发板有技术支持群的,可以在群里咨询下。

管理员您好, 台湾同胞无法注册QQ. 我只能在这边跪求了. 或请您帮忙转达.
如果有微信也可以
我发现reset后的log
ruleAutoHandsetPair, complete, already paired with handset
感觉是断线后变量没清干净. 没有连线却误判已经连线.
黃子衡 发表于 2020-1-13 17:34
谢谢liujinhan大师, 您是第一位跟我拿log的, 真心感谢, 小弟原也想放log, 但碍于大师们时间宝贵, 如何能小 ...

1. 默认工程,没有手机断开耳机,耳机进pairing的功能;看UI文档说明,长按x秒听到提示音进配对
2. 添加功能:手机断开耳机,进pairing:
appA2dpHandleA2dpSignallingDisconnectInd 函数下,appUiAvDisconnected 后面执行 appSmPairHandset
liujinhan 发表于 2020-1-13 20:24
1. 默认工程,没有手机断开耳机,耳机进pairing的功能;看UI文档说明,长按x秒听到提示音进配对
2. 添加 ...

大哥 请教一下,对耳配对后主动发起手机回连是哪个规则呀?我用CONN_RULES_CONNECT_HANDSET这个根本就没用呢
lulu7320198 发表于 2020-1-13 20:38
大哥 请教一下,对耳配对后主动发起手机回连是哪个规则呀?我用CONN_RULES_CONNECT_HANDSET这个根本就没 ...

直接执行 appSmConnectHandset(); 试试
liujinhan 发表于 2020-1-13 20:24
1. 默认工程,没有手机断开耳机,耳机进pairing的功能;看UI文档说明,长按x秒听到提示音进配对
2. 添加 ...

大师就是您~~~谢谢您的看诊.
祝您明年有个好年!
这高通的默认设置违反常理, 令小弟不曾怀疑paring藏在UI中.
小弟会继续努力的, 也会回来贡献, 谢谢啦!
你的log里没有触发任何断开进入pairing的rule,耳机状态也不对,下面log显示耳机已经在配对状态才ignore掉一些规则,但实际没有进入配对状态。要在断开事件里添加自动进入配对的规则,同时要看下规则判定条件是否合理,会不会被挡掉。最重要的分析线索是rule,关注每条rule的触发状态和执行状态,不然满屏的log只会让你无从下手。
876.519    apps1: 037B: ruleConnectPeer, ignore as pairing                                                                                                                                                                           
876.519    apps1: 037C: ruleOutOfCaseConnectHandset                                                                                                                                                                                   
876.519    apps1: 037D: ruleConnectHandset, reason 3                                                                                                                                                                                 
876.519    apps1: 037E: ruleConnectHandset, ignore as pairing      
lulu7320198 发表于 2020-1-13 20:38
大哥 请教一下,对耳配对后主动发起手机回连是哪个规则呀?我用CONN_RULES_CONNECT_HANDSET这个根本就没 ...

out of box后不就会主动回连了吗?
zhaopeng2511 发表于 2020-1-14 09:21
你的log里没有触发任何断开进入pairing的rule,耳机状态也不对,下面log显示耳机已经在配对状态才ignore掉一 ...

谢谢大师建议.
果然光是断线的地方加是不够的ˊ, 要在任何需要的地方自己加入, 包含您说的rule.
正常的产品应当是在outofbox后或无连接时都要能够进入paring.
我也不知道高通的工程师再想什么? 默认方案就没有这些, 只有按压五秒才能进入paring.
果然高通是不会做方案的.
黃子衡 发表于 2020-1-13 22:23
大师就是您~~~谢谢您的看诊.
祝您明年有个好年!
这高通的默认设置违反常理, 令小弟不曾怀疑paring藏在U ...

你好,不是默认工程违反常理,而是在QCC的默认工程案例中都是这样的(断开连接后不直接进入pairing),除默认工程外其它的功能都是需要靠自己去开发的,摸索的,有QCC系列开发经验的都是知道的
yjq551611 发表于 2020-1-14 11:03
你好,不是默认工程违反常理,而是在QCC的默认工程案例中都是这样的(断开连接后不直接进入pairing),除 ...

我明白您说的, 但小弟说的违反常理是指, 默认工程应当贴近最终产品的样貌, 让下游厂商快速导入生产.
下游厂商仅需关切UI的设置, 才能把量做大. 相信这对高通这么大的企业并不困难, 但就是不懂为何不处理?
我离开自台湾的最大芯片商MTK, 过去台湾的芯片商手法很简单, 将方案做到最贴近市场需要, 让不到十人的小企业快速导入量产, 这也是我们能成功的原因. 欧美厂商普遍不这么做. 直到近几年才有所认知改进.
高通的QCC很显然不懂此道.
以上个人拙见.
黃子衡 发表于 2020-1-14 11:26
我明白您说的, 但小弟说的违反常理是指, 默认工程应当贴近最终产品的样貌, 让下游厂商快速导入生产.
下 ...

補充一點, 過去sink產品會有特定按鍵進入pair階段, 但TWS就不是這樣做的, 一拿出盒子就要能夠pair, 這高通會不懂嗎? QCC還號稱專門為了TWS而設計的芯片, 結果還是sink那套.
黃子衡 发表于 2020-1-14 11:26
我明白您说的, 但小弟说的违反常理是指, 默认工程应当贴近最终产品的样貌, 让下游厂商快速导入生产.
下 ...

QCC的Sink系列工程可以去了解一下,很多功能都是ROM化的,可以通过简单配置而实现的(包括你这条帖子的功能问题是可以简单实现,不需要去修改底层代码)。可能是您没有经历过这个过渡的,这可能也是导致你目前在高通QCC方案上面疑惑的地方。
yjq551611 发表于 2020-1-14 12:25
QCC的Sink系列工程可以去了解一下,很多功能都是ROM化的,可以通过简单配置而实现的(包括你这条帖子的功 ...

sink的部分我知道, GUI就可调整, 可能是因为sink已经很多年了, 所以很成熟, 但ear_bug还差很远.
liujinhan 发表于 2020-1-13 20:42
直接执行 appSmConnectHandset(); 试试

这个用单耳是可以回连的,但是双耳配对好之后就不行了
黃子衡 发表于 2020-1-14 11:30
補充一點, 過去sink產品會有特定按鍵進入pair階段, 但TWS就不是這樣做的, 一拿出盒子就要能夠pair, 這高 ...

赞同你的观点,高通的earbud真的是反人类
讲真,高通真的做得差,默认工程没电量显示,电量显示还要自己去添加代码!
人家络达的默认工程为什么能显示电量?
为什么高通的TWS芯片占有率低呢?为什么高通现在才醒悟过来,推Framework呢!
lulu7320198 发表于 2020-1-14 13:57
这个用单耳是可以回连的,但是双耳配对好之后就不行了

左右耳都开机后,peer sync complete, 默认就会回连手机设备
可以用iphone测试默认工程,左右开机后,单击一下就会回连手机
xlzhu 发表于 2020-1-14 14:02
讲真,高通真的做得差,默认工程没电量显示,电量显示还要自己去添加代码!
人家络达的默认工程为什么能显 ...

络达就是台湾来的.
美系厂商像恐龙一样, 尾巴被踩到要好几秒才知道痛, 也刚好给国内厂商生存空间
lulu7320198 发表于 2020-1-14 14:00
赞同你的观点,高通的earbud真的是反人类

对啊, QCC ear_bud已经很久了, 最新的ADK是2019/12, 他们会不知道现在TWS的UI应该具备什么吗? 是他们的工程师就不是人类吗? 起码也对现有的终端产品进行研究吧, 如果我是他们老板就全部fire.
手机断开的时候不会主动进入pairing模式的,你需要在断开的时候重新再让他进入pairing模式
默认工程代码,手机断开耳机,耳机是不会进pairing的功能。很多终端客户也没有要求进配对。终端客户有要求需自己添加代码进配对
xlzhu 发表于 2020-1-14 14:02
讲真,高通真的做得差,默认工程没电量显示,电量显示还要自己去添加代码!
人家络达的默认工程为什么能显 ...

高通从rom版本开始,默认工程都是没有电量显示的,一直到现在的QCC302x的sink默认工程都是这样的。但是文档都有详细说明如何添加的。不过Earbud默认工程都是有的。

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2025-5-2 07:25 , Processed in 0.377392 second(s), 10 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部