您的位置:首页 > 运维架构

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

2017-07-12 14:05 861 查看
  最进用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

4000

接着执行下面的命令:

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

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

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: