Android Q - 音频通路调试

news2025/1/16 13:54:01

对于当前模块不是很清楚,刚好有个项目这方面有点问题,根据展锐支持文档一步步检查就可以了。首先得先弄清楚硬件具体是怎么连接的,比如文档提到的案例:sprd codec speaker output 连接外部 PA。

耳机接的是什么,speaker接的是什么,receive接的是什么。

本文可能涉及到的文件路径信息参考如下:
 kernel/arch/<arch name>/boot/dts/sprd-sound-xxx.dtsi
 kernel/arch/<arch name>/boot/dts/<board>.dts
 kernel/sound/soc/sprd/sprd-asoc-card-utils.c
 kernel/sound/soc/sprd/sprd-asoc-card-utils-hook.c
 kernel/sound/soc/sprd/sprd-asoc-card-utils-legacy.c
 kernel/sound/soc/sprd/include/sprd-asoc-card-utils.h
 kernel/sound/soc/sprd/include/sprd-asoc-card-utils-legacy.h
 device/sprd/<chip>/<board>/rootdir/system/etc/audio_params/tiny_hw.xml
 device/sprd/<chip>/<board>/rootdir/system/etc/audio_params/codec_pga.xml
 device/sprd/<chip>/<board>/rootdir/system/etc/audio_params/audio_para
 device/sprd/<chip>/<board>/BoardConfig.mk 

这里只做简单记录,详细信息可看展锐提供的文档。

Kernel部分
    sprd-sound-xxx.dtsi 中已配置了 common 配置信息,与 common 有差异的配置在对应板级 DTS 中修改,板级 DTS 配置信息会覆盖 common中的定义。
    1、sprd-audio-card widgets 配置
        不使用外部 PA,需要定义 headphone、speaker、earpiece 三个 widgets。
        使用外部 PA,需要定义一个 widgets 表示一个外部 speaker,该 widgets 的 event 可以控制外部 PA 的开关。
    2、sprd-audio-card routing 配置
    3、sprd spk-ext-pa-info 配置
    4、sprd spk-ext-pa-gpio 配置
    5、sprd spk-ext-pa-names 配置
    
HAL 部分
    1 Xml 文件配置
        .1 Codec 通路配置

                这里记录一下正常情况下的配置文件吧

                speaker->喇叭,headphone->耳机,earpiece->听筒

tiny_hw.xml

<device name="speaker">
   <path name="on">
     <ctl name="SPKL Mixer DACLSPKL Switch" val="1" />
     <ctl name="Speaker Function" val="1" />
   </path>
   <path name="off">
     <ctl name="Speaker Function" val="0" />
     <ctl name="SPKL Mixer DACLSPKL Switch" val="0" />
   </path>
</device>

<device name="headphone">
   <path name="on">
     <ctl name="HPL EAR Sel" val="HPL" />
     <ctl name="HPL Mixer DACLHPL Switch" val="1" />
     <ctl name="HPR Mixer DACRHPR Switch" val="1" />
     <ctl name="HeadPhone Function" val="1" />
   </path>
   <path name="off">
     <ctl name="HeadPhone Function" val="0" />
     <ctl name="HPL Mixer DACLHPL Switch" val="0" />
     <ctl name="HPR Mixer DACRHPR Switch" val="0" />
     <ctl name="HPL EAR Sel" val="EAR" />
   </path>
</device>

<device name="earpiece">
   <path name="on">
        <ctl name="EAR Mixer DACLEAR Switch" val="1"/>
        <ctl name="Earpiece Function" val="1" />
   </path>
   <path name="off">
     <ctl name="Earpiece Function" val="0" />
     <ctl name="EAR Mixer DACLEAR Switch" val="0"/>
   </path>
</device>

        .2 Codec 参数配置
    
    2 Property 属性配置
           
ro.vendor.audio_tunning.dual_spk 属性 含义
ro.vendor.audio_tunning.dual_spk = 0 默认调试模式。
ro.vendor.audio_tunning.dual_spk = 1 双 SPK-HPR+HPL
ro.vendor.audio_tunning.dual_spk = 2 单 SPK-HPL/HPR
ro.vendor.audio_tunning.dual_spk = 3 听筒喇叭二合一。

    3 代码修改

        开启ENABLE_DEVICES_CTL_ON宏开关

最后补充两个方法:
        1、耳机测试AT命令----AT+SPVLOOP
Description:
Audio frequency loopback test
Set command:
AT+ SPVLOOP= <cmd>,<mode>< volume ><loopbacktype><voiceformat>
<delaytime><outdevice><indevice>

Return

OK
Parameter:
<cmd>:
cmd
Description
0 DISABLE
1 EABLE
2 SETMODE
3 SETVOLUME
4 SETDEVICE
<mode>:
Optional mode exists 0-7
0 handhold 1 : handfree 2: earphone
<volume>: the size of volume
<loopbacktype>:
0: AD->DA loop,
1: AD->ul_process->dl_process->DA loop,
2: AD->ul_process->encoder->decoder->dl_process->DA loop
<voiceformat>: (1-3)
1: EFS vocoder
2: HR Vocoder
3: AMR Vocoder
<delaytime>: (0-1000) ms
<outdevice>:
1 ear
2 spk
4 hp
<indevice>
1 mic_0
2 mic_1
4 mic_hp

        

        完整命令:AT+SPVLOOP=1,4,8,2,3,0 

        2、查看当前音频设备状态----tinymix

C:\Users\lichang>adb shell
sl8541e_1h10_32b:/ # tinymix
Mixer name: 'sprdphone'
Number of controls: 135
ctl     type    num     name                                     value

0       ENUM    1       VBC Switch                               AP
1       ENUM    1       VBC INT Switch                           AP
2       ENUM    1       VBC DMA Switch                           AP_AON
3       BOOL    1       VBC DA EQ Switch                         On
4       BOOL    1       VBC AD01 EQ Switch                       Off
5       BOOL    1       VBC AD02 EQ Switch                       Off
6       ENUM    1       VBC EQ FW Name                           vbc_eq
7       ENUM    1       VBC EQ Update                            loaded
8       INT     2       VBC DAC01 MIXERDG                        0 0
9       INT     2       VBC DAC23 MIXERDG                        0 0
10      INT     1       VBC MIXERDG_DA01 STEP                    4096
11      INT     1       VBC MIXERDG_DA23 STEP                    1
12      INT     1       VBC DACL DG Set                          35
13      INT     1       VBC DACR DG Set                          35
14      INT     1       VBC ADCL DG Set                          16
15      INT     1       VBC ADCR DG Set                          16
16      INT     1       VBC ADC23L DG Set                        24
17      INT     1       VBC ADC23R DG Set                        24
18      INT     1       VBC STL DG Set                           24
19      INT     1       VBC STR DG Set                           24
20      BOOL    1       VBC DACL DG Switch                       On
21      BOOL    1       VBC DACR DG Switch                       On
22      BOOL    1       VBC ADCL DG Switch                       On
23      BOOL    1       VBC ADCR DG Switch                       On
24      BOOL    1       VBC ADC23L DG Switch                     Off
25      BOOL    1       VBC ADC23R DG Switch                     Off
26      BOOL    1       VBC STL HPF Switch                       Off
27      BOOL    1       VBC STR HPF Switch                       Off
28      INT     1       VBC STL HPF Set                          3
29      INT     1       VBC STR HPF Set                          3
30      BOOL    1       VBC AD0 DG Mux                           Off
31      BOOL    1       VBC AD1 DG Mux                           Off
32      BOOL    1       VBC AD2 DG Mux                           Off
33      BOOL    1       VBC AD3 DG Mux                           Off
34      ENUM    1       VBC DA IIS Mux                           AUDIIS0
35      INT     1       VBC DA EQ Profile Select                 0
36      INT     1       VBC AD01 EQ Profile Select               -1
37      INT     1       VBC AD23 EQ Profile Select               -1
38      INT     1       VBC_DA_SRC                               0
39      BOOL    1       VBC_FM_MUTE_DIRECT                       Off
40      BOOL    1       VBC_FM_UNMUTE_SMOOTH                     Off
41      INT     1       VBC FM_MUTE_SMOOTHDG STEP                1
42      BOOL    1       VBC_IIS_WIDTH_SEL                        Off
43      BOOL    1       VBC_DA_IIS_LRMOD_SEL                     Off
44      BOOL    1       VBC_AD01_IIS_LRMOD_SEL                   Off
45      BOOL    1       VBC_AD23_IIS_LRMOD_SEL                   Off
46      ENUM    1       SYS_IIS0                                 ap_iis0
47      ENUM    1       SYS_IIS1                                 vbc_iis1
48      ENUM    1       SYS_IIS2                                 vbc_iis1
49      ENUM    1       SYS_IIS3                                 vbc_iis1
50      ENUM    1       SYS_IIS4                                 vbc_iis1
51      BOOL    1       IIS_BT_FM_LOOP                           Off
52      BOOL    1       vbc_access_en                            Off
53      ENUM    1       VBC DAC0 Mixer Mux Sel                   by eq
54      ENUM    1       VBC DAC1 Mixer Mux Sel                   by eq
55      ENUM    1       VBC ST0 Mixer Mux Sel                    by eq
56      ENUM    1       VBC ST1 Mixer Mux Sel                    by eq
57      ENUM    1       VBC DAC0 Mixer Out Sel                   by eq
58      ENUM    1       VBC DAC1 Mixer Out Sel                   by eq
59      ENUM    1       VBC ST0 Mixer Out Sel                    by eq
60      ENUM    1       VBC ST1 Mixer Out Sel                    by eq
61      INT     1       SPKL Playback Volume                     3
62      INT     1       HPL Playback Volume                      1
63      INT     1       HPR Playback Volume                      7
64      INT     1       EAR Playback Volume                      6
65      INT     1       ADCL Capture Volume                      6
66      INT     1       ADCR Capture Volume                      6
67      INT     1       DAC Playback Volume                      2
68      INT     1       Inter PA Config                          2
69      BOOL    1       DACL Switch                              On
70      BOOL    1       DACR Switch                              On
71      BOOL    1       MIC Bias Switch                          Off
72      BOOL    1       HEADMIC Bias Switch                      Off
73      BOOL    1       DACLSPKL Enable                          On
74      BOOL    1       DACRSPKL Enable                          On
75      ENUM    1       Aud Codec Info                           (null)
76      ENUM    1       DAC LRCLK Select                         normal
77      ENUM    1       ADC LRCLK Select                         normal
78      ENUM    1       ADC1 LRCLK Select                        normal
79      ENUM    1       DAS Input Mux                            L+R
80      INT     1       PCM_TOTAL_NORMAL                         0
81      INT     1       PCM_TOTAL_DEEPBUF                        0
82      BOOL    1       Speaker Function                         Off
83      BOOL    1       Speaker1 Function                        Off
84      BOOL    1       Earpiece Function                        Off
85      BOOL    1       HeadPhone Function                       On
86      BOOL    1       Line Function                            Off
87      BOOL    1       Mic Function                             Off
88      BOOL    1       Aux Mic Function                         On
89      BOOL    1       HP Mic Function                          Off
90      BOOL    1       DMic Function                            Off
91      BOOL    1       DMic1 Function                           Off
92      BOOL    1       Digital FM Function                      Off
93      BOOL    1       Speaker Mute                             Off
94      BOOL    1       Speaker2 Mute                            Off
95      BOOL    1       HeadPhone Mute                           Off
96      BOOL    1       Earpiece Mute                            Off
97      ENUM    1       SmartAmp Boost                           Bypass
98      ENUM    1       ST0 CHAN MUX                             AD01
99      ENUM    1       ST1 CHAN MUX                             AD01
100     ENUM    1       ST0 INMUX                                AD0(2)ST0
101     ENUM    1       ST1 INMUX                                AD1(3)ST1
102     ENUM    1       AD0 INMUX                                IIS0AD0
103     ENUM    1       AD1 INMUX                                IIS1AD1
104     ENUM    1       AD2 INMUX                                IIS2AD2
105     ENUM    1       AD3 INMUX                                IIS3AD3
106     ENUM    1       AD IISMUX                                DIGFM
107     ENUM    1       AD23 IISMUX                              AUDIIS1
108     ENUM    1       DA0 ADDFM MUX                            BYPASS(ST)
109     ENUM    1       DA1 ADDFM MUX                            BYPASS(ST)
110     ENUM    1       DA0 ADDST MUX                            BYPASS(ST)
111     ENUM    1       DA1 ADDST MUX                            BYPASS(ST)
112     BOOL    1       Aud Loop in VBC Switch                   Off
113     BOOL    1       Aud1 Loop in VBC Switch                  Off
114     ENUM    1       HPL EAR Sel                              EAR
115     BOOL    1       HPL Mixer DACLHPL Switch                 Off
116     BOOL    1       HPR Mixer DACRHPR Switch                 Off
117     BOOL    1       SPKL Mixer DACLSPKL Switch               On
118     BOOL    1       SPKL Mixer ADCLSPKL Switch               Off
119     BOOL    1       SPKL Mixer ADCRSPKL Switch               Off
120     BOOL    1       SPKR Mixer ADCLSPKR Switch               Off
121     BOOL    1       SPKR Mixer ADCRSPKR Switch               Off
122     BOOL    1       EAR Mixer DACLEAR Switch                 Off
123     BOOL    1       ADCL Mixer MainMICADCL Switch            Off
124     BOOL    1       ADCL Mixer AuxMICADCL Switch             Off
125     BOOL    1       ADCL Mixer HPMICADCL Switch              On
126     BOOL    1       ADCR Mixer MainMICADCR Switch            Off
127     BOOL    1       ADCR Mixer AuxMICADCR Switch             Off
128     BOOL    1       ADCR Mixer HPMICADCR Switch              On
129     BOOL    1       ADC-DAC Adie Loop switch                 Off
130     BOOL    1       ADC1-DAC Adie Loop switch                Off
131     BOOL    1       ADC-DAC Digital Loop switch              Off
132     BOOL    1       ADC1-DAC Digital Loop switch             Off
133     BOOL    1       Virt Output Switch                       On
134     BOOL    1       Virt HP Jack Switch                      Off

或者 

 针对某一条通路开关手动开关或者读取状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1674882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国产化开源鸿蒙系统智能终端RK3568主板在电子班牌项目的应用

国产化开源鸿蒙系统智能终端主板AIoT-3568A、人脸识别算法的的电子班牌方案可支持校园信息发布、人脸识别考勤、考场管理、查询互动等多项功能&#xff0c;助力学校在硬件上实现信息化、网络化、数字化&#xff0c;构建“学校、教师、学生”三个维度的智慧教育空间。 方案优势 …

mysql5和mysql8同时存在

Win10安装两个不同版本MySQL数据库&#xff08;一个5.7&#xff0c;一个8.0.17&#xff09;_两个数据库的版本不同(我本地的是mysql5.7,线上是mysql8),怎么进行数据的同步?-CSDN博客 安装两个版本的mysql出现的问题和解决_mysql安装两个版本其中一个不适用-CSDN博客 一台电脑…

增程SUV价格即将崩盘?买车一定要再等等!

文 | AUTO芯球 作者 | 雷歌​ 真是“离谱”啊&#xff0c;车圈真是逗比欢乐多&#xff0c; 我这两天看一个博主连续40多小时开车直播&#xff0c;充电口、油箱盖全部封死&#xff0c;全程视频直播没断过&#xff0c; 就为了测试这两天刚上市的星际元ET续航有多远。 另一个…

drippingblues 靶机实战

信息收集&#xff1a; Nmap: 存活&#xff1a; 靶机ip&#xff1a;192.168.10.110 端口&#xff1a; 服务&#xff1a; 发现ftp服务可以匿名登录。且用户名是FTP。 发现一个压缩包&#xff0c;下载并爆破。 得到密码 072528035。发现关键字 drip。里面还有一个 secret.zip(…

C语言写扫雷游戏(数组和函数实践)

目录 最后是代码啦&#xff01; 手把手教你用C语言写一个扫雷游戏&#xff01; 1.我们搭建一下这个多文件形式的扫雷游戏文件结构 2.在主函数里面设置一个包含游戏框架的菜单 菜单可以方便游戏玩家选择要进行的动作和不断地进行下一局。 3.switch语句连接不同的结果 菜单可…

49.乐理基础-拍号的类型-单拍子、复拍子

当前写的东西&#xff0c;如果只是想要看懂乐谱的话&#xff0c;它是没什么意义的&#xff0c;就像我们要把 0&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5。。。称为自然数&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5称为正整…

【提示学习论文】TCP:Textual-based Class-aware Prompt tuning for Visual-Language Model

TCP:Textual-based Class-aware Prompt tuning for Visual-Language Model&#xff08;CVPR2024&#xff09; 基于文本的类感知提示调优的VLMKgCoOp为baseline&#xff0c;进行改进&#xff0c;把 w c l i p w_{clip} wclip​进行投影&#xff0c;然后与Learnable prompts进行…

考研数学|强化《660》+《880》这样刷,太丝滑了❗️

660题880题需要大概两个月才能做完 660题和880题都是很高质量的题集&#xff0c;所以做起来一点也不轻松。 每年都会有学生暑假两个月只做了一本660题的情况&#xff0c;因为题目实在是太难&#xff0c;有点做不下去的感觉。 不过不要担心&#xff0c;暑假就是刷题发现问题的…

Ubuntu安装k8s集群

文章目录 Ubuntu安装k8s3台主机前置操作&#xff1a;3台主机k8s前置安装命令&#xff1a;k8s安装命令&#xff1a; 节点加入 Ubuntu安装k8s 官方文档&#xff1a;https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 默认3台机子 注…

如何为域名生成证书签发请求CSR

最近我们在Hostease购买了服务器产品&#xff0c;为了保障我们网站的安全&#xff0c;我们额外还购买了SSL证书产品。在Hostease技术客服的帮助下&#xff0c;我们成功签发了SSL证书。 在签发证书前需要生成一个证书签名请求CSR&#xff0c;证书签名请求(CSR)是一个包含有关你…

轻松拿下指针(5)

文章目录 一、回调函数是什么二、qsort使用举例三、qsort函数的模拟实现 一、回调函数是什么 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另⼀个函数&#xff0c;当这个指针被⽤来调⽤其所指向的函数 时&#x…

Autoware内容学习与初步探索(一)

0. 简介 之前作者主要是基于ROS2&#xff0c;CyberRT还有AutoSar等中间件完成搭建的。有一说一&#xff0c;这种从头开发当然有从头开发的好处&#xff0c;但是如果说绝大多数的公司还是基于现成的Apollo以及Autoware来完成的。这些现成的框架中也有很多非常好的方法。目前作者…

uniapp高性能图片裁剪插件,可添加水印

效果图&#xff1a; 插件地址&#xff1a;高性能图片裁剪&#xff0c;裁剪图片后自动添加水印 - DCloud 插件市场 示例&#xff1a; <template> <view><button click"select">选择图片</button><image mode"widthFix" :src&qu…

EUCR-30S电机保护器施耐德EOCR

​EOCR主要产品有电子式电动机保护继电器&#xff0c;电子式过电流继电器&#xff0c;电子式欠电流继电器&#xff0c;电子式欠电压继电器&#xff0c;其它保护和监视装置&#xff0c;电流互感器。 电器密集型设计 ■ 二个集成组装电流互感器 ■ 欠载保护&#xff08;空转保护…

解决使用Vue.js前端与Flask后端API交互时跨源资源共享问题

我在使用flask以及Vue做一个项目时遇到了Vue前端与Flask后端API交互的问题就是前端获取不到后端返回的数据&#xff0c;报错&#xff1a; 上网查说是跨域问题&#xff0c;于是找了一些解决办法&#xff0c;就是可以通过设置响应头的 Access-Control-Allow-Origin 字段来允许所有…

pve clusterk8s cluster重建

背景 dev环境新买了一块固态&#xff0c;插到pve主板的第二个M.2槽位不能识别&#xff0c;通过其他机器排查后确定是这台pve的槽位问题。 同时这台pve还有一些其他的lvm历史遗留问题&#xff0c;具体表现是每次开机很长&#xff0c;因为要扫描那块机械硬盘做的lvm 所以决定将这…

输入4个整数,找出其中最大的数,用一个函数来实现

函数的嵌套调用: C不允许对函数作嵌套定义&#xff0c;也就是说在一个函数中不能完整地包含另一个函数。 在一个程序中每一个函数的定义都是互相平行和独立的&#xff0c;如 void f1() {...} int f2() {...} float f3() {...} long f4()…

TikTok起号的八大技巧分享

国内的传统生意都是可以在抖音上做&#xff0c;那么也可以在TikTok 上重新做一遍。那该如何才能把握住这片巨大的蓝海&#xff0c;TikTok 账号的运营就成为了主要的关键了&#xff0c;对于TikTok账号运营的八大秘籍&#xff0c;大家一起看看是如何做的&#xff1f; 一、固定节…

克鲁斯CLOOS机器人维修知识分享

克鲁斯工业机器人是一种高度精密的自动化设备&#xff0c;广泛应用于制造业、物流等领域。为了确保机器人的正常运行&#xff0c;了解一些基本的CLOOS工业机械手维修知识是必不可少的。 【常见CLOOS机械臂故障及解决方法】 1. 机器人无法启动&#xff1a;检查电源是否正常&…

python 对矩阵与矩阵之间对应位置的元素,做softmax操作,代码实战

1.对矩阵中对应位置的元素&#xff0c;做softmax 对于一个向量&#xff0c;softmax函数会对其中每一个元素进行指数运算&#xff0c;然后除以所有元素指数和的结果。当将其应用到多个矩阵的相应位置上时&#xff0c;我们实际上是在对每个位置的一组数&#xff08;从各个矩阵的同…