Android Q - 音频通路调试

2024-05-15 03:20
文章标签 音频 android 调试 通路

本文主要是介绍Android Q - 音频通路调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

或者 

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

这篇关于Android Q - 音频通路调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/990662

相关文章

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建