找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

【QCC3040学习笔记】部署mirror tws earbuds例程

2020-6-20 17:51| 发布者: wzz4420381| 查看: 11952| 评论: 0|原作者: NiceBT|来自: csdn

摘要: 今年Q1刚发布的QCC3040是高通的QCC514x/QCC304x系列中的主力型号,其主打的mirror tws功能较上一代relay tws相比有如下优点: 手机上只会显示一个耳机设备,而不是两个耳机设备 耳机在切换主从时更自然流畅,主 ...
1. 引言
今年Q1刚发布的QCC3040是高通的QCC514x/QCC304x系列中的主力型号,其主打的mirror tws功能较上一代relay tws相比有如下优点:

手机上只会显示一个耳机设备,而不是两个耳机设备
耳机在切换主从时更自然流畅,主从耳机耗电更均衡

在这里插入图片描述

虽然上述优点早已在苹果的airpods上体现,但高通只花了1年多的时间就开发出了完整的解决方案,并解决了专利问题,实在是令人佩服。相信高通的mirrow tws方案可以炸开苹果的tws耳机技术壁垒,使非苹果系的耳机方案向前迈进一大步。

本周刚拿到我爱蓝牙网的QCC3040开发板,我已迫不及待地开始部署官方的earbuds例程。参考官方文档《ADK 20.1 Overview》部署的过程中,遇到了很多问题,好在有技术交流群和我爱蓝牙网论坛的帮助,使我快速排除了各种问题,顺利跑通了例程并适配到开发板。

为了让大家少走一些不必要的弯路,我将部署流程、调试流程、故障解决方案分享出来,大家可以尝试着做一遍,尽早体验到mirror tws的独特魅力。

2. 软件环境

PC: win10
MDE: (C:\weiyun\ 思 度 科 技 \QCC30xx_QCC51xx 开 发 板 资 料 \3. 开 发 环 境\qualcomm_mde.win.2.4_installer_2.4.0.158.zip)
ADK Tool: (C:\weiyun\ 思 度 科 技 \QCC30xx_QCC51xx 开 发 板 资 料 \4. 官 方ADK\ADK20.1\adk_toolkit.win.1.0_installer_1.0.1.19.zip)
Project: (C:\weiyun\ 思 度 科 技 \QCC30xx_QCC51xx 开 发 板 资 料 \4. 官 方ADK\ADK20.1\qcc514x-qcc304x-src-1-0_qtil_standard_oem_earbud.rar)

3. 硬件环境

Debugger Adapter: TRBI200 或 USB
Platform: 我爱蓝牙网 QCC30XX/51XX 开发板 * 2 + QCC3040模块 * 2
Chip: QCC3040

4. 准备步骤

开发板连接好 TRB 和 USB 供电线,选择 USB 供电
安装好 TRB 或 USB 驱动
a) 参考 C:\weiyun\思度科技\QCC30xx_QCC51xx 开发板资料\10.开发板教程\3.USB 驱动安装
b) 参 考 C:\weiyun\ 思 度 科 技 \QCC30xx_QCC51xx 开 发 板 资 料 \6.debug 工 具\usbtrb\80-cc094-1_ab_transaction_bridge_and_usb_debug_interface_user_guide.pdf)
SYS_CTRL 开关拨到导通位置(SYS_CTRL 灯亮)
Project 解压后路径为 C:\qtil\qcc514x-qcc304x-src-1-0_qtil_standard_oem_earbud
在这里插入图片描述

5. 部署流程

5.1. 打开官方例程

  1. 打开 mde2.4,选择 open project
在这里插入图片描述
选择 earbud.x2w
在这里插入图片描述

选择 ADK tool 1.0.1.19 x64
在这里插入图片描述

5.2. 修改工程以适配开发板

  1. 修改工程属性,屏蔽电池温度检测
在这里插入图片描述
在这里插入图片描述
修改 ui_prompts.c,使能开机提示音

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改 kymera_config.h,使能外部 PA 控制脚 PIO3,开机可听到 power on 提示音
在这里插入图片描述

5.3. 编译 earbud 工程

第一次编译需要较长时间,请耐心等待
在这里插入图片描述

5.4. 烧录固件到 primary 耳机

  1. 选择调试器
    在这里插入图片描述
  2. Deploy 固件,等待完成
    在这里插入图片描述

5.5. 生成 secondary 耳机的固件

  1. 修改蓝牙地址以区分 primary 和 secondary 设备
    在这里插入图片描述
    在这里插入图片描述
  2. build dev_cfg 工程
    在这里插入图片描述
  3. build earbud 工程,等待完成

5.6. 烧录固件到 secondary 耳机

同步骤 5.4。

5.7. 测试固件

耳机插入 AUX OUT 接口,按开发板复位键,可听到 power on 提示音。

6. 调试流程

6.1. 修复 live_log故障

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xbb in position 0: ordinal not in range(128)
修 改 C:\qtil\qcc514x-qcc304x-src-1-0_qtil_standard_oem_earbud\adk\tools\packages\tabs\pydbg_tab.py
# Python 2 and 3
from __future__ import print_function
import os
import sys
from xml.etree import ElementTree
import argparse
import glob
from workspace_parse.workspace import Workspace
# 插入下述代码
import sys
reload(sys)
sys.setdefaultencoding('gbk')
修改 C:\qtil\ADK_Toolkit_1.0.1.8_x64\apps\fw\tools\pydbg.py
import os
import sys
import sys
reload(sys)
sys.setdefaultencoding('gbk')

6.2. 修复 acat 故障

python: can’t open file ‘C:/qtil/qcc514x-qcc304x-src-1-0_qtil_standard_oem_earbud/adk/bin/qcc514x_qcc304x/audio/tools/acat/ACAT.py’:[Errno 2] No such file or directory ), 修 改 C:\qtil\qcc514x-qcc304x-src-1-0_qtil_standard_oem_earbud\adk\tools\extensions\acat_tab\ext.xml,修改完成后,关闭 qmde 再打开。
在这里插入图片描述

6.3. 打开 win10 cmd 的 ANSI 配色功能

ANSI 转义字符显示为乱码[1m [35m] ,从 cmd.exe 输入(也可以在 PowerShell 中使用):reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1
在这里插入图片描述

6.4. 创建 pydbg 调试接口

在工程路径下创建 pydbg 脚本,用于打开 log 窗口和输入 apptest 命令窗口
在这里插入图片描述
这里假设 primary 耳机用 USB,secondary 耳机用 TRB,可自行修改
:: Change variables for your system
set ELFDIR=C:\qtil\qcc514x-qcc304x-src-1-0_qtil_standard_oem_earbud\earbud\workspace\QCC3040-
AA_DEV-BRD-R2-AA\depend_debug_qcc514x_qcc304x
set TOOLS=C:\qtil\ADK_Toolkit_1.0.1.8_x64\apps\fw\tools
set PYTHONDIR=C:\qtil\ADK_Toolkit_1.0.1.8_x64\tools\python27
set DEVICE1=102
set DEVICE2=180210
start cmd.exe "/k %PYTHONDIR%\python %TOOLS%\pydbg.py -d usb:%DEVICE1%,trb:scar:%DEVICE2% -f
apps1:%ELFDIR%\earbud.elf"
start cmd.exe "/k %PYTHONDIR%\python %TOOLS%\pydbg.py -d usb:%DEVICE1%,trb:scar:%DEVICE2% -f
apps1:%ELFDIR%\earbud.elf"
运行脚本,打开两个 cmd 窗口
在这里插入图片描述
Cmd 窗口 1,输入 system.apps1.live_log()后回车,可看到左右耳机的 log,A 是primary 耳机,B 是 secondary 耳机
在这里插入图片描述
Cmd 窗口 2,输入 pydbg 命令,使左右耳机完成配对,并开启与手机的配对模式
在这里插入图片描述
i. 【左耳离开耳机盒】apps1A.fw.call.appTestPhyStateOutOfCaseEvent(),primary耳机开始搜索 secondary 耳机
ii. 【 右 耳 离 开 耳 机 盒 】 apps1B.fw.call.appTestPhyStateOutOfCaseEvent() ,secondary 耳机进入 tws 配对状态,primary 耳机搜索到后,建立 tws 配对
iii. 【测试左耳 tws role 是否为主】apps1A.fw.call.appTestIsPrimary(),返回 true 说明 A 是 primary 角色
iv. 【耳机进入手机可配对模式】apps1B.fw.call.appTestPairHandset(),听到提示音 pairing,这里 apps1A 也可以
v. 手机可搜索到 LE-3040,配对成功后听到提示音 connected,可播放音乐、打电话

7. 总结

新的ADK20.1的进步很明显,从双耳log混合显示功能到pydbg命令行操作功能等种种迹象可以看到,高通方案有在努力降低开发难度,对提升方案的普及度很有帮助。

虽然mirrow tws的例程已经部署成功了,但对mirror tws的实现原理和技术细节相关的知识还比较匮乏,需要专门研究,有成果后会再给大家分享。

——————————正文分割线———————————–

为了方便大家学习,现与我爱蓝牙网联合推出【QCC300x/CSR867x/QCC30xx/QCC51xx开发板】。

⭐⭐⭐⭐⭐【本例程对应源码和固件已加入会员群资料库】⭐⭐⭐⭐⭐
开发板会员QQ群号:725398389(凭订单号入群,赠独家学习资料)
技术交流QQ群号:743434463

2

路过

雷人

握手

鲜花

鸡蛋

刚表态过的朋友 (2 人)

相关阅读

最新评论

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

GMT+8, 2024-4-26 05:06 , Processed in 0.144627 second(s), 19 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部