关闭

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

1733人阅读 评论(2) 收藏 举报

  最进用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

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











  

0
0
查看评论

怎么为DragonBoard 410c定制Android系统

上一篇博文《初识DragonBoard 410c》已经为大家简单介绍了DragonBoard 410c这款平台,并且也介绍了Ubuntu系统和Android系统烧写方法。今天,将介绍一下Android系统定制方面的内容。这样你就可以自己基于Android系统进行修改、定制、开发等,来满足自己的需求。
  • cuichuankai
  • cuichuankai
  • 2015-11-16 15:25
  • 3364

基于Dragonboard 410c的触摸屏调试

准备给Dragonboard 410c接一个mtch6102触摸板,但在调试过程中遇到了几个问题,花费了较多时间,记录下来为以后碰到类似问题可以得到快速解决,也把调试经验分享给大家。mtch6102是一款比较简单的触摸IC,没有太复杂的软硬件需求。它的驱动直接按照linux驱动框架就很容易编写出来了...
  • cgx090902
  • cgx090902
  • 2017-06-28 18:01
  • 328

DragonBoard 410c手把手进行安卓开发之底层移植

耽误了这么久,终于开始写这篇文章了 这篇文章我们主要介绍如何从获取MSM源码,并为内核进行修改与移植的过程必须的前期准备首先我们需要准备如下四个条件: 1. Ubuntu 12.04 Linux Distribution 64位 务必要注意,切勿使用更高版本的Ubuntu进行开发。MSM的安卓...
  • u010182064
  • u010182064
  • 2016-05-02 10:14
  • 2245

adb调试Dragonboard 410c

前天在Dragonboard 410c上调试USB触摸屏,发现单独在USB口上插上触摸屏,触摸屏是有效果的,但是TP的坐标值不对,需要进行校正,但是把板子上的mini USB口接上PC时,触摸屏就没效果了。   后面在官方文档里查了一下,原来410c的USB口是共用的,接PC用的是device模式,...
  • cgx090902
  • cgx090902
  • 2017-06-21 15:13
  • 436

Dragon board 410c硬件简述

Dragon board 410c硬件简述 板载模块概述 按照图上所示,我们分别列举了红字中的模块信息: 基于硬件进行入门需要准备的工具 410c 开发板  1.7mm的电源线  HDMI或DVI LCD监视器,可支持1080p  HDMI转HDMI线或H...
  • u010182064
  • u010182064
  • 2015-12-19 22:21
  • 1440

DragonBoard 410c手把手Linux开发

拿到DragonBoard 410c已经有很长一段时间,也试着研究了Adreno与410c上高通内核驱动。 不过为了让广大爱好者能够快速上手这一台开发板,我打算使用官方提供的Linux指南上的源码作为入门,从而让开发者能够迅速的使用手上的资源。推荐配置首先假设,看这篇文章的人都有了如下图所示的全部设...
  • u010182064
  • u010182064
  • 2016-04-13 10:39
  • 6264

初识DragonBoard 410c

初识DragonBoard 410c  DragonBoard 410c是一款搭载Qualcomm® Snapdragon™ 410(64位的四核处理器)的开发板,它功能齐全,具有强大的处理能力,内置 8GB eMMC (支持标准microSD卡槽),并且还内置wifi、蓝牙、和GPS模块...
  • cuichuankai
  • cuichuankai
  • 2015-11-10 16:35
  • 4842

教大家如何在dragonboard410c 上直接操作GPIO操作设备

前言
  • weijory
  • weijory
  • 2017-02-23 12:05
  • 702

Dragonboard-410c - Debian系统的fastboot方式安装

Dragonboard 410c使用fastboot安装Debian
  • u013662665
  • u013662665
  • 2017-10-25 19:27
  • 187

Qualcomm——DragonBoard 410C开发板评测

(PS: 转载)【96Boards规范】的开发板近几年非常火, 他们想统一开发板的标准, 让硬件变得更简单。 笔者也查阅了不少资料, 发现就目前来说,全球量产的符合96Boards规范的开发平台很少, 一只手都能数过来, 秉着稀少等于珍贵的原则, 笔者今天再跟大家分享一款符合96Boa...
  • oneqinglong
  • oneqinglong
  • 2017-04-17 18:02
  • 1461
    个人资料
    • 访问:36133次
    • 积分:1163
    • 等级:
    • 排名:千里之外
    • 原创:83篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    最新评论