This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PCMD3180:使用 Linux 驱动程序进行通道选择和配置

Guru**** 2538930 points
Other Parts Discussed in Thread: PCMD3180, TLV320ADC3140

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1035464/pcmd3180-channel-selection-and-configuration-with-linux-driver

器件型号:PCMD3180
主题中讨论的其他器件: TLV320ADC3140

我们将使用 PCMD3180编解码器和4个数字 PDM 麦克风测试新的 PCB 原型。 每个麦克风都连接到其中一个 GPI 输入、如我们的原理图所示:

我们将使用适用于 TLV320ADCx140的共享上游 Linux 驱动程序、请参阅此论坛博文 https://e2e.ti.com/support/audio-group/audio/f/audio-forum/954542/faq-pcmd3180-is-there-a-linux-driver-for-the-pcmd3180-devices 中的详细信息

我们的主机是 Raspberry PI 4计算模块。

我们取得了一些初步的成功、能够通过我们的麦克风通道之一、通道1录制声音、质量似乎很好。 但是,我们无法通过任何其他渠道录制声音。 我们将 I2S 用于 DAI 格式/协议。

我们有以下问题:

1.对于我们的配置、在每个 GPI 输入上都有一个 PDM 麦克风、这是否与使用通道1、3、5、7相关? 通道2、4、6、8未使用?

2. Linux 驱动程序表示支持44.1kHz 和48kHz 的采样率,该驱动程序是否也可用于96kHz 和192kHz 的采样率?

3.假设 I2S 在默认情况下只能处理 RPI 左右两个通道,我们如何选择 I2S 流左右两个通道使用哪两个数字麦克风?

我们一直在使用 amixer 测试不同的通道组合、但到目前为止仅从通道1获取音频。 下面是一个尝试为通道1和3进行配置的示例:

amixer cset numid=29、iface=mixer、name='CH1_ASI_EN Switch'打开
amixer cset numid=30、iface=Mixer、name='CH2_ASI_EN Switch'关闭
amixer cset numid=31、iface=Mixer、name='CH3_ASI_EN Switch'打开
amixer cset numid=32、iface=mixer、name='CH4_ASI_EN Switch'关闭
amixer cset numid=33、iface=Mixer、name='CH5_ASI_EN Switch'关闭
amixer cset numid=34, iface=mixer, name='CH6_ASI_EN Switch'关闭
amixer cset numid=35, iface=Mixer, name='CH7_ASI_EN Switch'关闭
amixer cset numid=36、iface=Mixer、name='CH8_ASI_EN Switch'关闭

amixer cset numid=25、iface=mixer、name='MIC1M Input Mux' 2 # 0x3C、ADCX140_CH1_CFG0将通道1设置为数字麦克风输入
amixer cset numid=26、iface=mixer、name=MIC2M 输入多路复用器' 2 # 0x41、ADCX140_CH2_CFG0将通道2设置为数字麦克风输入
amixer cset numid=27、iface=mixer、name='MIC3M 输入多路复用器' 2.
amixer cset numid=28、iface=mixer、name='MIC4M 输入多路复用器' 2.

amixer cset numid=17、iface=mixer、name='MIC4P 输入多路复用器' 2.
amixer cset numid=18、iface=Mixer、name='MIC4P Input Mux' 2.
amixer cset numid=19、iface=mixer、name='MIC4P 输入多路复用器' 2.
amixer cset numid=20、iface=mixer、name='MIC4P 输入多路复用器' 2.

amixer cset numid=46,iface=Mixer, name='PDM Clk Div Select' 0

我们还使用'CHX_ASI_EN 开关'尝试了多种其他通道组合、我认为这些组合应该与我们启用的通道相关。 我们的假设是、如果我们启用两个通道、它们将进入 I2S 流的左通道和右通道。 我们在这里缺少什么吗?

我们的器件树设置如下、我们现在正在将简单音频卡用于声卡:

/DTS-v1/;
/插件/;

/{
兼容="BRCM,bcm2708";

片段@0{
目标=<&I2S>;
_overlay__{
#sound-di-cells =<0>;
状态="正常";
};
};

碎片@1{
target-path ="/";
_overlay__{
pcmd3180_MCLK:CODEC - MCLK{
兼容="固定时钟";
#clock-cells =<0>;
时钟频率=<24000000>;
};
};
};

碎片@2{
目标=<&i2c1>;
_overlay__{
#address-cells =<1>;
#size-cells =<0>;
状态="正常";

pcmd3180_A:pcmd3180@4C{
兼容="ti、tlv320adc3140";
reg =<0x4C>;
数据协议=<0>;
ti、mic 偏置源=<0>;
TI、PDM 边缘选择=<1 1 1>;
TI、GPI-CONFIG =<4 5 6 7>;
TI、GPO-CONFIG-1 =<4 1>;
TI、GPO-CONFIG-2 =<4 1>;
TI、GPO-CONFIG-3 =<4 1>;
TI、GPO-CONFIG-4 =<4 1>;
TI、ASI-TX-DRIVE =<1>;
TI、GPIO-CONFIG =<0 0>;
};
};
};


碎片@3{
目标=<声音>;

sound_overlay:__overlay__{
兼容="简单音频卡";
simple-audio-card、format ="I2S";
simple-audio-card、name ="pcmd3180-soundcard";
状态="正常";

simple-audio-card、bitclock-master =<&dailink0_master>;
simple-audio-card、frame-master =<&dailink0_master>;

dailink0_master:simple-audio-card、CPU{
Sound-Dai =<&I2S>;
时钟=<&pcmd3180_MCLK>;
};
简单音频卡、编解码器{
sound-dai =<&pcmd3180_a>;
};
};
};

_override__{
card-name =<&sound_overlay>、"simple-audio-card, name";
};
};

谢谢、

~Jeremy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jeremy、

    感谢您的耐心等待、我需要时间查看您的问题、我将在48小时内回复您。

    此致、

    Carson

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jeremy、

    假设您仅连接了4个麦克风、那么您对将输出哪些通道的假设是正确的。 在 TDM 模式下、它允许您选择进入哪个插槽的通道、包括进入同一 I2S 插槽的左侧或右侧的通道。

    您应该能够以任何可用的 FS 速率运行。

    由于我们目前不支持 Linux 调试问题、直到我们的应用程序团队从负责 Linux 的前几个部分的团队那里获得支持、因此无法真正帮助解决 Linux 的具体问题、而这一团队不幸没有时间表。

    此致、

    Carson  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好的、感谢您的观看、我们将继续进行调查。 我应该能够跟踪 Linux 驱动程序配置如何映射 到编解码器上的寄存器设置。 如果需要、如果我们能够就 PCMD3180上的寄存器设置、范围跟踪等提出问题 这是否适合在该论坛上获取反馈?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jeremy、

    这对于反馈更可行。

    结束此主题后、请在新主题中发布更多问题。

    谢谢、

    Carson