您好!
我要 在 我的定制 i.MX8M 板上使用 TLV320AIC3109音频编解码器。
我在线路1和线路2上连接了两个麦克风:
我在设备树文件中配置了声音设备:
sound-myboard { compatible = "simple-audio-card"; simple-audio-card,bitclock-master = <&dailink_master>; simple-audio-card,format = "i2s"; simple-audio-card,frame-master = <&dailink_master>; simple-audio-card,mclk-fs = <32>; simple-audio-card,name = "myboard"; simple-audio-card,routing = "LINE1L", "Line In", "LINE1R", "Line In", "Line In", "Mic Bias"; simple-audio-card,widgets = "Line", "Line In"; dailink_master: simple-audio-card,cpu { sound-dai = <&sai2>; }; simple-audio-card,codec { sound-dai = <&tlv320aic3109>; }; };
我SND_SOC_TLV320AIC3X
在内核配置中启用了编解码器。
我可以看到在以下内核消息中找到该器件:
[ 2.270140] ALSA 设备列表:
[2.273127]#0: 我的朋友
但是、当我尝试使用以下内容测试记录时:
arecord -t wav -c 2 -r 44100 -f -d 5 S16_LE /tmp/test.wav
文件中没有声音。
Amixer 输出以下设置:
numid=15,iface=MIXER,name='PCM Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0 : values=80,80 | dBscale-min=-63.50dB,step=0.50dB,mute=0 numid=29,iface=MIXER,name='Line DAC Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=7,iface=MIXER,name='Line Line2 Bypass Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=118,118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=28,iface=MIXER,name='Line PGA Bypass Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=35,iface=MIXER,name='Line Playback Switch' ; type=BOOLEAN,access=rw------,values=2 : values=on,on numid=34,iface=MIXER,name='Line Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=9,step=0 : values=0,0 | dBscale-min=0.00dB,step=1.00dB,mute=0 numid=12,iface=MIXER,name='Mono DAC Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=10,iface=MIXER,name='Mono Line2 Bypass Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=111,iface=MIXER,name='Mono Mixer DACL1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=114,iface=MIXER,name='Mono Mixer DACR1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=109,iface=MIXER,name='Mono Mixer Line2L Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=112,iface=MIXER,name='Mono Mixer Line2R Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=110,iface=MIXER,name='Mono Mixer PGAL Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=113,iface=MIXER,name='Mono Mixer PGAR Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=11,iface=MIXER,name='Mono PGA Bypass Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=13,iface=MIXER,name='Mono Playback Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=14,iface=MIXER,name='Mono Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=9,step=0 : values=0 | dBscale-min=0.00dB,step=1.00dB,mute=0 numid=50,iface=MIXER,name='ADC HPF Cut-off' ; type=ENUMERATED,access=rw------,values=2,items=4 ; Item #0 'Disabled' ; Item #1 '0.0045xFs' ; Item #2 '0.0125xFs' ; Item #3 '0.025xFs' : values=0,0 numid=40,iface=MIXER,name='AGC Switch' ; type=BOOLEAN,access=rw------,values=2 : values=off,off numid=47,iface=MIXER,name='De-emphasis Switch' ; type=BOOLEAN,access=rw------,values=2 : values=off,off numid=31,iface=MIXER,name='HP DAC Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=8,iface=MIXER,name='HP Line2 Bypass Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=30,iface=MIXER,name='HP PGA Bypass Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=37,iface=MIXER,name='HP Playback Switch' ; type=BOOLEAN,access=rw------,values=2 : values=on,on numid=36,iface=MIXER,name='HP Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=9,step=0 : values=0,0 | dBscale-min=0.00dB,step=1.00dB,mute=0 numid=33,iface=MIXER,name='HPCOM DAC Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=9,iface=MIXER,name='HPCOM Line2 Bypass Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=32,iface=MIXER,name='HPCOM PGA Bypass Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=118,step=0 : values=71,71 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=39,iface=MIXER,name='HPCOM Playback Switch' ; type=BOOLEAN,access=rw------,values=2 : values=on,on numid=38,iface=MIXER,name='HPCOM Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=9,step=0 : values=0,0 | dBscale-min=0.00dB,step=1.00dB,mute=0 numid=43,iface=MIXER,name='Left AGC Attack time' ; type=ENUMERATED,access=rw------,values=1,items=4 ; Item #0 '8ms' ; Item #1 '11ms' ; Item #2 '16ms' ; Item #3 '20ms' : values=0 numid=45,iface=MIXER,name='Left AGC Decay time' ; type=ENUMERATED,access=rw------,values=1,items=4 ; Item #0 '100ms' ; Item #1 '200ms' ; Item #2 '400ms' ; Item #3 '500ms' : values=0 numid=41,iface=MIXER,name='Left AGC Target level' ; type=ENUMERATED,access=rw------,values=1,items=8 ; Item #0 '-5.5dB' ; Item #1 '-8dB' ; Item #2 '-10dB' ; Item #3 '-12dB' ; Item #4 '-14dB' ; Item #5 '-17dB' ; Item #6 '-20dB' ; Item #7 '-24dB' : values=0 numid=53,iface=MIXER,name='Left DAC Mux' ; type=ENUMERATED,access=rw------,values=1,items=3 ; Item #0 'DAC_L1' ; Item #1 'DAC_L3' ; Item #2 'DAC_L2' : values=0 numid=86,iface=MIXER,name='Left HP Mixer DACL1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=21,iface=MIXER,name='Left HP Mixer DACR1 Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=88,iface=MIXER,name='Left HP Mixer DACR1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=89,iface=MIXER,name='Left HP Mixer Line2L Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=90,iface=MIXER,name='Left HP Mixer Line2R Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=3,iface=MIXER,name='Left HP Mixer Line2R Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=85,iface=MIXER,name='Left HP Mixer PGAL Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=87,iface=MIXER,name='Left HP Mixer PGAR Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=20,iface=MIXER,name='Left HP Mixer PGAR Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=98,iface=MIXER,name='Left HPCOM Mixer DACL1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=25,iface=MIXER,name='Left HPCOM Mixer DACR1 Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=100,iface=MIXER,name='Left HPCOM Mixer DACR1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=101,iface=MIXER,name='Left HPCOM Mixer Line2L Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=102,iface=MIXER,name='Left HPCOM Mixer Line2R Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=5,iface=MIXER,name='Left HPCOM Mixer Line2R Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=97,iface=MIXER,name='Left HPCOM Mixer PGAL Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=99,iface=MIXER,name='Left HPCOM Mixer PGAR Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=24,iface=MIXER,name='Left HPCOM Mixer PGAR Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=54,iface=MIXER,name='Left HPCOM Mux' ; type=ENUMERATED,access=rw------,values=1,items=3 ; Item #0 'differential of HPLOUT' ; Item #1 'constant VCM' ; Item #2 'single-ended' : values=0 numid=74,iface=MIXER,name='Left Line Mixer DACL1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=17,iface=MIXER,name='Left Line Mixer DACR1 Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=76,iface=MIXER,name='Left Line Mixer DACR1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=77,iface=MIXER,name='Left Line Mixer Line2L Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=78,iface=MIXER,name='Left Line Mixer Line2R Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=1,iface=MIXER,name='Left Line Mixer Line2R Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=73,iface=MIXER,name='Left Line Mixer PGAL Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=75,iface=MIXER,name='Left Line Mixer PGAR Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=16,iface=MIXER,name='Left Line Mixer PGAR Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=57,iface=MIXER,name='Left Line1L Mux' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'single-ended' ; Item #1 'differential' : values=0 numid=58,iface=MIXER,name='Left Line1R Mux' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'single-ended' ; Item #1 'differential' : values=0 numid=66,iface=MIXER,name='Left Line2L Mux' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'single-ended' ; Item #1 'differential' : values=0 numid=61,iface=MIXER,name='Left PGA Mixer Line1L Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=62,iface=MIXER,name='Left PGA Mixer Line1R Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=63,iface=MIXER,name='Left PGA Mixer Line2L Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=64,iface=MIXER,name='Left PGA Mixer Mic3L Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=65,iface=MIXER,name='Left PGA Mixer Mic3R Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=51,iface=MIXER,name='Output Driver Power-On time' ; type=ENUMERATED,access=rw------,values=1,items=12 ; Item #0 '0us' ; Item #1 '10us' ; Item #2 '100us' ; Item #3 '1ms' ; Item #4 '10ms' ; Item #5 '50ms' ; Item #6 '100ms' ; Item #7 '200ms' ; Item #8 '400ms' ; Item #9 '800ms' ; Item #10 '2s' ; Item #11 '4s' : values=0 numid=52,iface=MIXER,name='Output Driver Ramp-up step' ; type=ENUMERATED,access=rw------,values=1,items=4 ; Item #0 '0ms' ; Item #1 '1ms' ; Item #2 '2ms' ; Item #3 '4ms' : values=0 numid=49,iface=MIXER,name='PGA Capture Switch' ; type=BOOLEAN,access=rw------,values=2 : values=on,on numid=48,iface=MIXER,name='PGA Capture Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=119,step=0 : values=119,119 | dBscale-min=0.00dB,step=0.50dB,mute=0 numid=44,iface=MIXER,name='Right AGC Attack time' ; type=ENUMERATED,access=rw------,values=1,items=4 ; Item #0 '8ms' ; Item #1 '11ms' ; Item #2 '16ms' ; Item #3 '20ms' : values=0 numid=46,iface=MIXER,name='Right AGC Decay time' ; type=ENUMERATED,access=rw------,values=1,items=4 ; Item #0 '100ms' ; Item #1 '200ms' ; Item #2 '400ms' ; Item #3 '500ms' : values=0 numid=42,iface=MIXER,name='Right AGC Target level' ; type=ENUMERATED,access=rw------,values=1,items=8 ; Item #0 '-5.5dB' ; Item #1 '-8dB' ; Item #2 '-10dB' ; Item #3 '-12dB' ; Item #4 '-14dB' ; Item #5 '-17dB' ; Item #6 '-20dB' ; Item #7 '-24dB' : values=0 numid=55,iface=MIXER,name='Right DAC Mux' ; type=ENUMERATED,access=rw------,values=1,items=3 ; Item #0 'DAC_R1' ; Item #1 'DAC_R3' ; Item #2 'DAC_R2' : values=0 numid=23,iface=MIXER,name='Right HP Mixer DACL1 Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=92,iface=MIXER,name='Right HP Mixer DACL1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=94,iface=MIXER,name='Right HP Mixer DACR1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=95,iface=MIXER,name='Right HP Mixer Line2L Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=4,iface=MIXER,name='Right HP Mixer Line2L Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=96,iface=MIXER,name='Right HP Mixer Line2R Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=91,iface=MIXER,name='Right HP Mixer PGAL Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=22,iface=MIXER,name='Right HP Mixer PGAL Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=93,iface=MIXER,name='Right HP Mixer PGAR Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=27,iface=MIXER,name='Right HPCOM Mixer DACL1 Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=104,iface=MIXER,name='Right HPCOM Mixer DACL1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=106,iface=MIXER,name='Right HPCOM Mixer DACR1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=107,iface=MIXER,name='Right HPCOM Mixer Line2L Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=6,iface=MIXER,name='Right HPCOM Mixer Line2L Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=108,iface=MIXER,name='Right HPCOM Mixer Line2R Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=103,iface=MIXER,name='Right HPCOM Mixer PGAL Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=26,iface=MIXER,name='Right HPCOM Mixer PGAL Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=105,iface=MIXER,name='Right HPCOM Mixer PGAR Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=56,iface=MIXER,name='Right HPCOM Mux' ; type=ENUMERATED,access=rw------,values=1,items=5 ; Item #0 'differential of HPROUT' ; Item #1 'constant VCM' ; Item #2 'single-ended' ; Item #3 'differential of HPLCOM' ; Item #4 'external feedback' : values=0 numid=19,iface=MIXER,name='Right Line Mixer DACL1 Playback Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=80,iface=MIXER,name='Right Line Mixer DACL1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=82,iface=MIXER,name='Right Line Mixer DACR1 Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=83,iface=MIXER,name='Right Line Mixer Line2L Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=2,iface=MIXER,name='Right Line Mixer Line2L Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=84,iface=MIXER,name='Right Line Mixer Line2R Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=79,iface=MIXER,name='Right Line Mixer PGAL Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=18,iface=MIXER,name='Right Line Mixer PGAL Bypass Volume' ; type=INTEGER,access=rw---R--,values=1,min=0,max=118,step=0 : values=118 | dBscale-min=-59.00dB,step=0.50dB,mute=1 numid=81,iface=MIXER,name='Right Line Mixer PGAR Bypass Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=59,iface=MIXER,name='Right Line1L Mux' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'single-ended' ; Item #1 'differential' : values=0 numid=60,iface=MIXER,name='Right Line1R Mux' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'single-ended' ; Item #1 'differential' : values=0 numid=72,iface=MIXER,name='Right Line2R Mux' ; type=ENUMERATED,access=rw------,values=1,items=2 ; Item #0 'single-ended' ; Item #1 'differential' : values=0 numid=68,iface=MIXER,name='Right PGA Mixer Line1L Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=67,iface=MIXER,name='Right PGA Mixer Line1R Switch' ; type=BOOLEAN,access=rw------,values=1 : values=on numid=69,iface=MIXER,name='Right PGA Mixer Line2R Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=70,iface=MIXER,name='Right PGA Mixer Mic3L Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off numid=71,iface=MIXER,name='Right PGA Mixer Mic3R Switch' ; type=BOOLEAN,access=rw------,values=1 : values=off
是否有 某种方法可以调试为什么我的音频文件中没有声音? 感谢你的帮助。