您好!
我在基于 Nvidia Jetson TX2-4GB 的定制板上测试 TLV320AIC34。
这是我的原理图: 
我正在使用 Linux 内核4.9.140、并配置了设备树、以安装一个 ALSA 卡、其中包含两个单独的编解码器(A 和 B)、每个编解码器使用不同的 I2S 线路。 为系统配置的编解码器驱动程序是 tlv320aic3x。
到目前为止、我已经使用了'I2S 模式'、并且能够在 HPLOUT 线路(A 和 B)上播放音频文件、还能够从 A 和 B 上的 LINE1L 和 LINE2L 中采集声音
通过这种方式、当我同时在同一编解码器上捕获 LINE1L 和 LINE2L 时、我会记录一个单通道、该通道将左侧的两个输入混合在一起。
是否有办法在 I2S 的正确通道上对其中一条输入线路(即 LINE2L)进行内部重新路由、以便我可以将其拆分为两个不同的单通道?
我是否必须在 I2S 线路上配置"dsp_a mode"才能这样做?
Hereaftter 电路板上当前使用的 ALSA 脚本可供参考:
!/bin/bash
amixer -c tegrasound cset name="ADMAIF5 Mux" I2S1
amixer -c tegrasound cset name="ADMAIF5 channels" 2.
amixer -c tegrasound cset name="ADMAIF5 Capture sideo to mono conv" CH0
amixer -c tegrasound cset name="ADMAIF6 Mux" I2S1
amixer -c tegrasound cset name="ADMAIF6 channels" 2.
amixer -c tegrasound cset name="ADMAIF6 Capture sideo to mono conv" CH1
amixer -c tegrasound cset name="I2S1 channels" 2.
amixer -c tegrasound cset name='VC1 Mute' 0
amixer -c tegrasound cset name='AMC2 Mute' 0
amixer -c tegrasound cset name='a PGA Capture Switch' 1.
amixer -c tegrasound cset name='a PGA Capture Volume' 0%
amixer -c tegrasound cset name='a HPCOM Playback Switch' 0
amixer -c tegrasound cset name='a Line Playback Switch' 0
amixer -c tegrasound cset name='a HP Playback Switch' 0
amixer -c tegrasound cset name='a PCM Playback Volume' 0%
amixer -c tegrasound cset name='a HP DAC Playback Volume' 0%
amixer -c tegrasound cset name='a HPCOM DAC Playback Volume' 0%.
amixer -c tegrasound cset name='a left HP Mixer DACR1 Playback Volume' 0%
amixer -c tegrasound cset name='A left HPCOM Mixer DACR1 Playback Volume' 0%.
amixer -c tegrasound cset name='A left PGA Mixer Line2L Switch' 1.
amixer -c tegrasound cset name='a Mono Mixer Line2L Bypass Switch' 0
amixer -c tegrasound cset name='a left Line1L Mux' 1.
amixer -c tegrasound cset name='a left Line2L Mux' 1.
amixer -c tegrasound cset name="ADMAIF7 Mux" I2S2
amixer -c tegrasound cset name="ADMAIF7 channels" 2.
amixer -c tegreasound cset name="ADMAIF7 Capture sideo to mono conv" CH0
amixer -c tegreasound cset name="ADMAIF8 Mux" I2S2
amixer -c tegrasound cset name="ADMAIF8 channels" 2.
amixer -c tegreasound cset name="ADMAIF8 Capture sideo to mono conv" CH1
amixer -c tegrasound cset name="I2S2 channels" 2.
amixer -c tegrasound cset name='VC1 Mute' 0
amixer -c tegrasound cset name='AMC2 Mute' 0
amixer -c tegrasound cset name='b PGA Capture Switch' 1.
amixer -c tegrasound cset name='b PGA Capture Volume' 0%
amixer -c tegrasound cset name='b HPCOM Playback Switch' 0
amixer -c tegrasound cset name='b Line Playback Switch' 0
amixer -c tegrasound cset name='b HP Playback Switch' 0
amixer -c tegrasound cset name='b PCM Playback Volume' 0%
amixer -c tegrasound cset name='b HP DAC Playback Volume' 0%
amixer -c tegrasound cset name='b HPCOM DAC Playback Volume' 0%.
amixer -c tegrasound cset name='b Left HP Mixer DACR1 Playback Volume' 0%
amixer -c tegrasound cset name='b Left HPCOM Mixer DACR1 Playback Volume' 0%
amixer -c tegrasound cset name='b Left PGA Mixer Line2L Switch' 1.
amixer -c tegrasound cset name='b Mono Mixer Line2L Bypass Switch' 0
amixer -c tegrasound cset name='b Left Line1L Mux' 1.
amixer -c tegrasound cset name='b Left Line2L Mux' 1.
arecord -D hw:tegrastound、4 -c 1 -t wav -r 48000 -f S16_LE ./Music/revA-1.wav &
arecord -D hw:tegrastound、5 -c 1 -t wav -r 48000 -f S16_LE ./Music/recA-2.wav &
arecord -D hw:tegrastound、6 -c 1 -t wav -r 48000 -f S16_LE ./Music/recB-1.wav &
arecord -D hw:tegrastound、7 -c 1 -t wav -r 48000 -f S16_LE ./Music/recB-2.wav
谢谢、
Davide