基于Dragonboard 410c的mic和speaker的loopback调试

2024-03-09 10:48

本文主要是介绍基于Dragonboard 410c的mic和speaker的loopback调试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  最进用dragonboard 410c做一个东西,其中用到了互相对话的功能,场景就是一个说一个听,可以对话,所以这就需要两个mic和两个speaker,还好410c的板子上面已经有两个mic的接口和一个speaker的接口了,经过测试mic是可以直接用的,speaker只有一个,那另一个怎么办呢?幸好HDMI是可以用的,另一个就走HDMI就可以了。这些问题解决后,最主要的还是loopback功能,这个回环怎么实现能,简单将调试过程总结了一下。


  首先看一下音频通路的配置文件:mixer_paths_sbc.xml

sudo adb root

sudo adb pull /etc/mixer_paths_sbc.xml .

vim mixer_paths_sbc.xml

可以看到音频通路的配置,然后是各个通路的验证。确认是用的哪个通路

  首先是主mic通路:

新建一个test1.wav空白文件,然后push到/data/test1.wav

执行下面命令:

tinymix "DEC1 MUX" "ADC1"

tinymix "IIR1 INP1 MUX" "DEC1"

tinymix "ADC1 Volume" 12

tinymix "MultiMedia1 Mixer TERT_MI2S_TX" 1

tinycap /data/test1.wav

这是开启的录音,ctrl+c录音结束,然后看看文件大小,确认是否录音成功,如果录音成功,

sudo adb logcat > a.txt

从log中确认通道,mic通道验证完毕。

如果录音不成功需要根据log进行修改。


    speaker通路:

将一个音频文件test.wav,push到/data/test.wav

执行下面命令:

tinymix "RX3 MIX1 INP1" "RX1"

tinymix "SPK DAC Switch" 1

tinymix "PRI_MI2S_RX Audio Mixer MultiMedia1" 1

tinyplay /data/test.wav

这是开启播放,如果speaker有声音,

sudo adb logcat > a.txt

通过查看log,确认通路,

如果不成功,通过log去修改。


确认mic和speaker的各自的通路后,将其整合到一起进行回环测试:

tinymix "DEC1 MUX" "ADC1"

tinymix "ADC1 Volume" 8

tinymix "RX3 MIX1 INP1" "RX1"

tinymix "RX1 Digital Volume" 104

tinymix "SPK DAC Switch" 1

tinymix "PRI_MI2S_RX Port Mixer TERT_MI2S_TX" 1

tinyhostless -D 0 -P 5 -C 11 -p 8 -n 2 -c 1 -r 48000    //tinyhostless一般是没有的,需要自己添加一些代码,所以可以用下面的方法进行测试


执行下面命令:

sudo adb root

sudo adb pull /etc/ftm_test_config .

vim ftm_test_config

然后做下面的配置:

22 tc 19
 21 # handset-mic to Speakers AFE loopback
 20 !AfeLoop
 19 Txdevice:11
 18 Rxdevice:5
 17
 16 enable
 15 DEC1 MUX:ADC1
 14 ADC1 Volume:8
 13 RX3 MIX1 INP1:RX1
 12 RX1 Digital Volume:104
 11 SPK DAC Switch:1
 10 PRI_MI2S_RX Port Mixer TERT_MI2S_TX:1
  9
  8 disable
  7 DEC1 MUX:ZERO
  6 RX3 MIX1 INP1:ZERO
  5 SPK DAC Switch:0
  4 PRI_MI2S_RX Port Mixer TERT_MI2S_TX:0

配置完成后,保存,然后执行下面的命令:

sudo adb root

sudo adb remount

sudo adb push ftm_test_config /etc/ftm_test_config

接着执行下面的命令:

mm-audio-ftm -tc 19 -c /etc/ftm_test_config -d 60 -v 99              //tc:ftm_test_config中对应的编号, -c:配置文件的路径,-d:执行时间,-v:音量,最大为100。


然后可以对着mic说话,同时speaker会有声音发出。


主mic已经将回环打通,接下来是副mic了,方法是相同的,简单描述一下:

  副mic通路:

tinymix "DEC1 MUX" "ADC2"

tinymix "ADC2 MUX" "INP3"

tinymix "MultiMedia1 Mixer TERT_MI2S_TX" 1

tinycap /data/test1.wav


  speaker通路(HDMI):

tinymix "QUAT_MI2S_RX Audio Mixer MultiMedia1" 1

tinyplay /data/test.wav


回环测试:

tinymix "DEC1 MUX" "ADC2"

tinymix "ADC2 MUX" "INP3"

tinymix "QUAT_MI2S_RX Port Mixer TERT_MI2S_TX" 1

tinymix "QUAT_MI2S_RX_DL_HL Switch" 1

tinyhostless -D 0 -P 25 -C 11 -p 8 -n 2 -c 1 -r 48000    //相同的tinyhostless是没有的,需要自己进行代码的添加,所以用下面的方法


在ftm_test_config中做如下添加
  3 tc 18
  4 # ADC3 to HDMI
  5 !AfeLoop
  6 Txdevice:11
  7 Rxdevice:25
  8
  9 enable
 10 DEC1 MUX:ADC2
 11 ADC2 MUX:INP3
 12 QUAT_MI2S_RX Port Mixer TERT_MI2S_TX:1
 13 QUAT_MI2S_RX_DL_HL Switch:1
 14
 15 disable
 16 DEC1 MUX:ZERO
 17 ADC2 MUX:ZERO
 18 QUAT_MI2S_RX Port Mixer TERT_MI2S_TX:0


同样,要push到/etc/ftm_test_config

然后执行:

mm-audio-ftm -tc 18 -c /etc/ftm_test_config -d 60 -v 99

对着另一个mic说话,另一个speaker发出声音,说名另一个回环也打通了。

这只是在配置文件中直接进行修改和测试,后面需要将这些配置添加到代码中并进行编译:

vendor/qcom/proprietary/prebuilt_HY22/target/product/msm8916_64/system/etc/ftm_test_config

到此两个回路全部完成,但是存在一个问题,那就是这两个回路是不能同时工作的,只能是上层进行切换了。











  

这篇关于基于Dragonboard 410c的mic和speaker的loopback调试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

起点中文网防止网页调试的代码展示

起点中文网对爬虫非常敏感。如图,想在页面启用调试后会显示“已在调试程序中暂停”。 选择停用断点并继续运行后会造成cpu占用率升高电脑卡顿。 经简单分析网站使用了js代码用于防止调试并在强制继续运行后造成电脑卡顿,代码如下: function A(A, B) {if (null != B && "undefined" != typeof Symbol && B[Symbol.hasInstan

php 7之PhpStorm + Nginx + Xdebug运行调试

操作环境: windows PHP 7.1.10 PhpStorm-2017.2.4 Xdebug 2.5.4 Xdebug helper 1.6.1 nginx-1.12.2 注意查看端口占用情况 netstat -ano //查看所以端口netstat -aon|findstr "80" //查看指定端口占用情况 比如80端口查询情况 TCP 0.0.0.0:8

【2025】基于Python的空气质量综合分析系统的设计与实现(源码+文档+调试+答疑)

博主介绍:     ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生完成毕业项目和技术提升。 技术范围:     我熟悉的技术领域涵盖SpringBoot、Vue、SSM、HLMT

VS Code 调试go程序的相关配置说明

用 VS code 调试Go程序需要在.vscode/launch.json文件中增加如下配置:  // launch.json{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information,

转:android ro.debuggable属性调试修改(mprop逆向)

android ro属性调试修改(mprop逆向)      大家都知道如果需要调试android 的程序,以下两个条件满足一个就行。第一是apk的配置文件内的AndroidManifest.xml的 android:debuggable=”true”,第二就是/default.prop中ro.debuggable=1。两种方式第一种通常是解包添加属性再打包,随着加壳软件以及apk校验等,容易出