主题中讨论的其他器件:TAS5805M、
尊敬的:
我们使用2个 pcs tvl320adc3140进行音频捕获、 根据原理图设计、一个 tvl320adc3140需要配置为双通道模拟信号和六通道数字信号。
双通道模拟信号来自 PA (tas5805m)、我们将其用于回波消除。
tlv320adc3140是否可以支持 脉冲密度调制(PDM)麦克风输入的两个模拟通道和六个数字通道的组合?
我期待您的回复、谢谢!
此致、
温谷
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.
尊敬的:
我们使用2个 pcs tvl320adc3140进行音频捕获、 根据原理图设计、一个 tvl320adc3140需要配置为双通道模拟信号和六通道数字信号。
双通道模拟信号来自 PA (tas5805m)、我们将其用于回波消除。
tlv320adc3140是否可以支持 脉冲密度调制(PDM)麦克风输入的两个模拟通道和六个数字通道的组合?
我期待您的回复、谢谢!
此致、
温谷
您好、Wen、
是的、它确实支持模拟和数字通道组合、但取决于采样率。 对于2个模拟通道、在8kHz SR 时支持的最大数字通道数为4。
有关更多详细信息、请参阅以下应用(3.1-6)说明: https://www.ti.com/lit/an/sbaa381/sbaa381.pdf?ts=1667334054088&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FTLV320ADC3140
此致、
感谢您的回复、我们器件的采样率为48K。
现在我们有一个问题。
根据上述配置、我将寄存器0x3c 的值更改为0x20、CH1和 CH4上没有数据。
命令如下所示:
i2cset -f 4 0x4c 0x3c 0x20 b
i2cset -f 4 0x4c 0x22 0x00 b
i2cset -f 4 0x4c 0x2b 0x05 b
寄存器配置:
CH0~CH7:
CH1_CFG0寄存器~CH4_CFG0寄存器
GPO_CFG0~GPO_CFG3寄存器
GPI_CFG0~GPI_CFG1
我测试2个模拟通道和6个数字通道的组合、
如果将所有输入配置为 dmic、ch0和 ch1无数据、则 CH2 ~CH7可以捕获音频数据。
如果将0x3c 的值配置为0x20、而另一组设置为0x40: CH0将获得 PA 数据、但 CH1、CH4无数据。
如果将 ox41的值配置为0x20、而将另一组设置为0x40: ch0、ch1和 ch5无数据、则另一个通道具有音频数据。
如果将 ox46的值配置为0x20、而将另一个设置为0x40: ch0、ch1、ch3和 ch6无数据、则另一个通道具有音频数据。
如果将 ox4b 的值配置为0x20、另一个设置为0x40: ch0、ch1、ch2和 ch7无数据、则另一个通道具有音频数据。
我发现 ch0到 ch7具有以下组合关系:
(Ch0、Ch4)
(通道1、通道5)
(CH2、CH7)
(通道3通道6)
对于模拟麦克风、组合关系应为:
(CH0、CH1)
(通道2、通道3)
(通道4、通道5)
(通道6通道7)
如何为2个模拟通道和6个数字通道的组合配置寄存器、
您能给我一些建议或样片吗?
数字麦克风需要至少使用1个 GPI (用于数据)和1个 GPO (用于 PDMCLK)、从而使其中一个模拟输入不可用。 请注意、即使 您为单端配置了模拟输入、但如果模拟输入需要 INxP、则无法将 INxM 引脚编程为 GPIO。
ADC3140 (48K)可以支持
8 PDM DMICS
1个 AMIC 和6个 DMIC
2AMIC 和4DMIC
3AMIC 和2DMIC
或4 AMICS
此致、
是的、我注意到这一点、我尝试将0x3c 的值更改为0x90、4通道仍然没有数据。
[引用 userid="528774" URL"~/support/audio-group/audio/f/audio-forum/1166726/tlv320adc3140-can-tlv320adc3140-support-the-combination-of-analogue-channels-and-digital-channels-for-the-pulse-density-modulation-pdm-microphone-input/4391722 #4391722"]ADC3140 (48K)可以支持
8 PDM DMICS
1个 AMIC 和6个 DMIC
[/报价]好 的、对于这个组合、如何配置寄存器、您能给我展示一个示例?
尽管我已经阅读了寄存器数据表和您与我共享的文档、
但我仍然不知道如何配置该组合模式。
您好、Wen、
我使用我们的 PurePath 控制台3来生成支持1个 AMIC 和6个 DMIC 的寄存器。 假设这是48kHz SR、12.28Mhz BCLK、TDM 格式、32位字长、受控模式。
用于 AMIC 的 CH1/2去除水、用于 DMIC 的 CH3-8
# CHECKSUM 0 # Generated by ADCx140EVM-SW v3.0.5 # TLV320ADC3140 device configuration # ----------------------------------------------------------------------------- # Reset # ----------------------------------------------------------------------------- # Select Page 0 w 98 00 00 # Reset Device w 98 01 01 # 1mS Delay # ----------------------------------------------------------------------------- # Begin Device Memory # ----------------------------------------------------------------------------- # Page 0 (0x00) Dump # Select Page 0 w 98 00 00 # Wake up and enable AREG w 98 02 81 # GPIO Configuration w 98 21 41 # GPO Configuration w 98 23 41 w 98 24 41 w 98 25 41 # GPI Configuration w 98 2b 05 w 98 2c 67 # Channel 1 configuration w 98 3c 20 # Channel 2 configuration w 98 41 40 # Channel 3 configuration w 98 46 40 # Channel 4 configuration w 98 4b 40 #DSP configuration w 98 6c 48 # Channel Input/Out
如果您有任何疑问、请告诉我
我使用我们的 PurePath 控制台3来生成支持1个 AMIC 和6个 DMIC 的寄存器。 假设这是48kHz SR、12.28Mhz BCLK、TDM 格式、32位字长、受控模式。
用于 AMIC 的 CH1/2去除水、用于 DMIC 的 CH3-8
[/报价]感谢您的帮助、我对此表示感谢。
我们的 ADC0器件是主模式、字长为16位、其他配置正确。
我检查了您与我共享的寄存器。
有三个不同的位置:
1>我们使用 AVDD 作为1.8、 因此我将寄存器0x02的值设置为0x01。
2>寄存器0x21的值设为0xa0、 在我们的器件中、ADC0的 GPIO1配置为主时钟输入(MCLK)
3>请参考硬件建议、将寄存器0x3c 的值设置为0x90。
我还尝试将该值设置为0x20、结果没有改变。
下面的代码是我们对 ADC0的整个配置:
static void adcx140_enable(struct adcx140_priv *adcx140)
{
regmap_write(adcx140->regmap, 0x01,0x01);
usleep_range(1000, 100000);
regmap_write(adcx140->regmap, 0x02, 0x01); //AVDD =1.8V
usleep_range(1000, 100000);
regmap_write(adcx140->regmap, 0x07,0x03);
regmap_write(adcx140->regmap, 0x08,0xa1);
regmap_write(adcx140->regmap, 0x0b,0x00);
regmap_write(adcx140->regmap, 0x0c,0x01);
regmap_write(adcx140->regmap, 0x0d,0x02);
regmap_write(adcx140->regmap, 0x0e,0x03);
regmap_write(adcx140->regmap, 0x0f,0x04);
regmap_write(adcx140->regmap, 0x10,0x05);
regmap_write(adcx140->regmap, 0x11,0x06);
regmap_write(adcx140->regmap, 0x12,0x07);
regmap_write(adcx140->regmap, 0x6c, 0x20);
regmap_write(adcx140->regmap, 0x3e,0xe7);
regmap_write(adcx140->regmap, 0x43,0xe7);
regmap_write(adcx140->regmap, 0x48,0xe7);
regmap_write(adcx140->regmap, 0x4d,0xe7);
regmap_write(adcx140->regmap, 0x52,0xe7);
regmap_write(adcx140->regmap, 0x57,0xe7);
regmap_write(adcx140->regmap, 0x5c,0xe7);
regmap_write(adcx140->regmap, 0x61,0xe7);
regmap_write(adcx140->regmap, 0x21,0xa0); //GPIO1 is configured as a master clock input
regmap_write(adcx140->regmap, 0x13,0x81);
#ifdef INTRO_ONLY_2PCS_ADC_CONFIG
regmap_write(adcx140->regmap, 0x14,0x48); //current configuration for 12.288MHZ
#else
regmap_write(adcx140->regmap, 0x14,0x4a);
#endif
regmap_write(adcx140->regmap, 0x16,0x00);
regmap_write(adcx140->regmap, 0x3c,0x90); //1d = Line input,0d = Analog differential input,1d = DC-coupled input
regmap_write(adcx140->regmap, 0x41,0x40);
regmap_write(adcx140->regmap, 0x46,0x40);
regmap_write(adcx140->regmap, 0x4b,0x40);
regmap_write(adcx140->regmap, 0x22,0x41);
regmap_write(adcx140->regmap, 0x23,0x41);
regmap_write(adcx140->regmap, 0x24,0x41);
regmap_write(adcx140->regmap, 0x25,0x41);
regmap_write(adcx140->regmap, 0x2b,0x05);
regmap_write(adcx140->regmap, 0x2c,0x67);
regmap_write(adcx140->regmap, 0x73,0xff);
regmap_write(adcx140->regmap, 0x74,0xff);
regmap_write(adcx140->regmap, 0x75,0x60);
}
还有哪些其他可能?
您好、Wen、
音频团队已将该器件配置为6个 DMIC;6个 DMIC + 1个 AMIC 的组合将于明天确认。 我们的团队遇到了 CH5显示无输出的相同问题。
GUI 的配置保存在本地音频实验中、因此我目前无法访问、可以在12-24小时内提供。
我们在通过 PPC3 GUI 配置 EVM 后观察到,直接通过 I2C 写入:
w 98 00 00 w 98 7b 40 w 98 6c 00启用 CH5数据输出。
请等待其他详细信息。
您好、Wen、
随附的是在设置条件下使用6DMIC + 1AMIC 配置的寄存器转储(不包括默认值)。
# CHECKSUM 0 # Generated by ADCx140EVM-SW v3.0.5 # TLV320ADC5140 device configuration # ----------------------------------------------------------------------------- # Reset # ----------------------------------------------------------------------------- # Select Page 0 w 98 00 00 # Reset Device w 98 01 01 # 1mS Delay # ----------------------------------------------------------------------------- # Begin Device Memory # ----------------------------------------------------------------------------- # Page 0 (0x00) Dump # Select Page 0 w 98 00 00 # Wake up and enable AREG w 98 02 81 # ASI Configuration w 98 07 00 # Master mode configuration w 98 13 81 w 98 14 46 # GPIO Configuration w 98 21 a0 # GPO Configuration w 98 23 41 w 98 24 41 w 98 25 41 # GPI Configuration w 98 2b 05 w 98 2c 67 w 98 3b 60 # Channel 1 configuration w 98 3c 20 # Channel 2 configuration w 98 41 40 # Channel 3 configuration w 98 46 40 # Channel 4 configuration w 98 4b 40 # Channel Input/Output Configuration w 98 73 bf w 98 74 ff
除了 PPC3配置外、您还需要执行其他写入操作、以确保不会出现任何问题。
#禁用相位校准以支持6PDM 输入以及1AIN
w 98 7b 40.
#绕过所有双二阶滤波器和 DRE 选择
w 98 6c 00
此致、
您好 Douglas,
很抱歉添加问题。
我们在声学测试中发现了混叠问题。
解决方案是为通道1配置低通滤波器、以将 PPC3的频率限制在20kHz 以内。
为了解决 ch5无数据的问题、我们通过了所有双二阶滤波器。
因此、我们不仅应配置 CH1的低通滤波器、还应确保通道5具有音频数据。
我们应该如何配置 ADC? 这 是一个困难的问题、我们需要您的帮助。
此致、
温谷
您好、Douglas、
感谢您的回复。
[引用 userid="528774" URL"~/support/audio-group/audio/f/audio-forum/1166726/tlv320adc3140-can-tlv320adc3140-support-the-combination-of-analogue-channels-and-digital-channels-for-the-pulse-density-modulation-pdm-microphone-input/4415525 #4415525"]正确,但是直接写入 w 98 6c 00 将 绕过所有双二阶滤波器以支持6DMIC 用例。由于这似乎是不可能的、让我们单独验证它。
忽略目前 ch5上没有数据的问题。 其他配置保持不变、 仅恢复以下修改
并添加低通滤波器以验证混叠问题。
[引用 userid="528774" URL"~/support/audio-group/audio/f/audio-forum/1166726/tlv320adc3140-can-tlv320adc3140-support-the-combination-of-analogue-channels-and-digital-channels-for-the-pulse-density-modulation-pdm-microphone-input/4404279 #4404279"]#禁用相位校准以支持6PDM 输入以及1AIN
w 98 7b 40.
#绕过所有双二阶滤波器和 DRE 选择
w 98 6c 00
[/报价]为 CH1添加一个低通滤波器、以将 PPC3的频率限制在10kHz 以内、


但 ADC 无法正常工作。

您能否帮助检查 PPC3的配置、还需要修改哪些寄存器来为 CH1添加低通滤波器?
谢谢你。
此致、
温谷
您好、Wen、
我 验证 了 LPF/可编程双二阶滤波器选项卡在 PPC3中的工作原理。 我的测试如下:
如果您参考 PPC3滤波器图、当 LPF 设置为500Hz FC 时、10kHz 输入应约为-27dB
通过将鼠标悬停在 PPC3中显示的图上、您可以看到由于 LPF 而导致的信号振幅是多少、它不会衰减信号。
我希望这对我们有所帮助、致以亲切的问候