https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1128507/pcm3168a-6-independent-audios
器件型号:PCM3168A主题中讨论的其他器件: PCM3168
您好!
我正在一个项目中、我需要有6个不同的音频通信路径。 我需要每个信道能够建立一部或多部 sip 电话的呼叫。
在 A 中、我有一个类比麦克风和扬声器。
我找到了具有6个输入/8个输出的 PCM3168A 编解码器、因此我使用该编解码器创建了定制原型、并连接到 IMX8mm EVK 的 J1001连接器(请参阅原理图.pdf)。
e2e.ti.com/.../6378.schematic.pdf
sound-pcm3168a{
兼容="简单音频卡";
simple-audio-card、name ="pcm3168a-audio";
simple-audio-card、widget = "扬声器"、"通道1输出"、
"扬声器"、"信道2out"、
"扬声器"、"通道3输出"、
"扬声器"、"通道4输出"、
"扬声器"、"通道5输出"、
"扬声器"、"信道选择6out"、
"麦克风"、"信道1英寸"、
"麦克风"、"信道2输入"、
"麦克风"、"信道3in"、
"麦克风"、" Channel4in"、
"麦克风"、"信道5英寸"、
"麦克风"、"信道6in";
simple-audio-card、路由= "Channel1out"、"AOUT1L"、
"Channel2out"、"AOUT1R"、
"Channel3out"、"AOUT2L"、
"Channel4out"、"AOUT2R"、
"Channel5out"、"AOUT3L"、
"Channel6out"、"AOUT3R"、
"Channel1in"、"AIN1L"、
"Channel2in"、"AIN1R"、
"Channel3in"、"AIN2L"、
"Channel4in"、"AIN2R"、
"Channel5in"、"AIN3L"、
"Channel6in"、"AIN3R";
simple-audio-card、di-link@1{
格式="left_j";
bitclock-master =<&pcm3168a_DAC>;
FRAME-MASTER =<&pcm3168a_DAC>;
CPU{
??Sound-Dai =<?Sa义1>;
di-tdm-slot-num =<8>;
di-tdm-slot-width =<32>;
};
pcm3168a_DAC:编解码器{
sound-dai =<&pcm3168a 0>;
时钟=<&clk IMX8MM_CLK_SAI1_ROOT>;
};
};
simple-audio-card、di-link@2{
格式="left_j";
bitclock-master =<&pcm3168a_adc>;
FRAME-MASTER =<&pcm3168A_ADC>;
CPU{
??Sound-Dai =<?Sa义1>;
di-tdm-slot-num =<8>;
di-tdm-slot-width =<32>;
};
pcm3168a_adc:编解码器{
Sound-Dai =<&pcm3168a 1>;
时钟=<&clk IMX8MM_CLK_SAI1_ROOT>;
};
};
};
//I2C3
pcm3168a:音频编解码器@44{
兼容="ti、pcm3168a";
#sound-di-cells =<1>;
reg =<0x44>;
RESET-GPIO =<&GPIO4 17 GPIO_ACTIVE_LOW>;
时钟=<&clk IMX8MM_CLK_SAI1_ROOT>;
时钟名称="scki";
/*VDD1-supply =<&supply3v3>;
VDD2-supply =<&supply3v3>;
VCCAD1-SUPPLY =<&supply5v0>;
VCCAD2-SUPPLY =<&supply5v0>;
VCCDA1-SUPPLY =<&supply5v0>;
VCCDA2-supply =<&supply5v0>;*/
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_pcm3168a>;
};
//iomux
pinctrl_pcm3168a:pinctrl_pcm3168a{
FSL、引脚=<
MX8MM_IOMUXC_SAI1_TXD5_GPIO4_IO17 0x19 /*复位*/
MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18 0x19 /* OVF *
MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19 0x19 /*零*/
>;
};
pinctrl_sai1:sai1grp{
FSL、引脚=<
MX8MM_IOMUXC_SAI1_MCLK_SAI1_MCLK 0xd6
MX8MM_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC 0xd6
MX8MM_IOMUXC_SAI1_TXC_SAI1_TXC_BCLK 0xd6
MX8MM_IOMUXC_SAI1_TXD0_SAI1_TX_DATAA0 0xd6
MX8MM_IOMUXC_SAI1_TXD1_SAI1_TX_Data1 0xd6
MX8MM_IOMUXC_SAI1_TXD2_SAI1_TX_DATA2 0xd6
MX8MM_IOMUXC_SAI1_TXD3_SAI1_TX_DATA3 0xd6
MX8MM_IOMUXC_SAI1_TXD4_SAI1_TX_DATAA4 0xd6
MX8MM_IOMUXC_SAI1_RXD0_SAI1_RX_DATAA0 0xd6
MX8MM_IOMUXC_SAI1_RXD1_SAI1_RX1_RX_DATA1_RX_Data1 0xd6
MX8MM_IOMUXC_SAI1_RXD2_SAI1_RX_DATA1_RX_DATA2 0xd6
MX8MM_IOMUXC_SAI1_RXC_SAI1_RXC_RXC_BCLK 0xd6
MX8MM_IOMUXC_SAI1_RXFS_SAI1_RX_SYNC 0xd6
>;
};
在 EVK 上加载器件树时、我有:
[2.375321] debugfs:名为"pcm3168a-audio"的目录"3001000.SAI"已存在!
[2.3813] ASOC-simple card sound-pcm3168a:pcm3168a-DAC <-> 3001000.SAI 映射正常
[2.391733] ASOC-simple card sound-pcm3168a:pcm3168a-ADC <->3001000.SAI 映射正常
[2.399624] ASOC-simple-card sound-pcm3168a:ASOC:无 DMI 供应商名称!
[2.552554] ALSA 器件列表:
[2.557548]#0:IMX-SPDIF
[2.5680]#1:IMX-AUDIBLE-MICFIL
[2.571488]#2:pcm3168a-audio
[2.574717]#3:wm8524音频
aplay -l
****播放硬件设备列表****
卡0:imxspdif [IMX-SPDIF]、器件0:S/PDIF PCM snd-soc 虚拟-戴0 [S/PDIF PCM snd-soc 虚拟-戴-0]
子设备:1/1
子设备#0:子设备#0
卡2:btssoaudio [bt-SCO-AUDIB]、设备0:3002000.SAI-bt-SCO-PCM-WB bt-SCO-PCM-WB-0 []
子设备:1/1
子设备#0:子设备#0
卡3:wm8524audio [wm8524-audio]、设备0:30000.si-wm8524-hifi wm8524-hifi-0[]
子设备:1/1
子设备#0:子设备#0
卡4:pcm3168aaudio [pcm3168a-audio]、器件0:30010000.si-pcm3168a-dac pcm3168a-dac-0[]
子设备:1/1
子设备#0:子设备#0
arecord -l
****捕获硬件设备列表****
卡0:imxspdif [IMX-SPDIF]、器件0:S/PDIF PCM snd-soc 虚拟-戴0 [S/PDIF PCM snd-soc 虚拟-戴-0]
子设备:1/1
子设备#0:子设备#0
卡1:imxaudioomicfil [IMX-audio-micfil]、设备0:micfil hifi snd-soc 虚拟 di-0 []
子设备:1/1
子设备#0:子设备#0
卡2:btssoaudio [bt-SCO-AUDIB]、设备0:3002000.SAI-bt-SCO-PCM-WB bt-SCO-PCM-WB-0 []
子设备:1/1
子设备#0:子设备#0
卡4:pcm3168aaudio [pcm3168a-audio]、设备1:3001000.si-pcm3168a-adc pcm3168a-adc -1 []
子设备:1/1
子设备#0:子设备#0
尝试录制音频时:
arecord -D HW:4、1 -r 48000 sample.wav
录制波'scame.wav':无符号8位、速率48000Hz、单声道
arecord:SET_params:1339:样本格式 U8不可用
可用格式:
- S24_LE
arecord -D HW:4、1 -f S24_LE -r 48000 sample.wav
录制波'scame.wav':有符号24位小端字节序、速率48000Hz、单声道
arecord:SET_params:1345:channels count 不可用
arecord -D HW:4、1 -f S24_LE -r 48000 -c 2 sample.wav
录制波'scame.wav':[1857.768567]
有符号24位小端序、比率[1857.777720] pcm3168a 2-0044:主模式或使用 DSP 的从模式不支持24位插槽
[1857.789217] pcm3168a 2-0044:ASOC:无法设置 pcm3168a-ADC 硬件参数:-22
48000Hz、立体声
arecord:set_params:1403:Unable to install HW params:
访问: rw_interleaved
格式: S24_LE
子格式: 标准
SAMPLE_BITS:32
FRAME_BITS:64
通道:2.
比率:48000
PERIOD_TIME:(42666 42667)
Period_size:2048
周期字节:16384
期间:4.
Buffer_Time:(170666 170667)
Buffer_size:8192
Buffer_bytes:65536
tick_time:0
因此、我的问题是:
1-是否可以像我所需要的那样使用 PCM3168A 来获得6个独立的音频?
2-如果是,是否有人成功地将 pcm3168配置为 imx8mm? 有人可以帮助我进行设备树配置? 如何区分 Linux 中的不同渠道? 如何在 pcm3168a 的指定音频输入/输出中录制/播放音频?
如果不是、该解决方案可以通过使用6个简单编解码器(如许多 IMX EVK 上的 wm8960)传递到吗? 还有其他选项(但在该微控制器中易于实现)?
感谢您访问 help.e2e.ti.com/.../imx8mm_2D00_evk.zip
谢谢。