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:多路复用器输出错误和电压问题

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1445976/pcmd3180-incorrect-output-from-multiplexer-and-voltage-issues

器件型号:PCMD3180

工具与软件:

您好!

我正在尝试设计一个基于 PCMD3180和多个 PDM 麦克风的麦克风阵列、但首先我仅使用2个 Adafruit 4346。 我正在使用 SparkFun ESP32S2作为 I2S 主机/主设备、同时进行 Arduino 编程、可对试验电路板上的电路进行原型设计。 我将在 ESP32中为电路的其余部分提供 BCLK (1.5MHz)和 WS (48kHz、16位)和3.3V。  PCMD 焊接到24引脚 WQFN 适配器上、而 PCMD 的底部焊盘通过一个孔焊接到已连接至电路接地电网的导线(适配器没有接地平面)。

我无法从 PCMD 获得正确/相关的音频信号。 我注意到从 PCMD 输入麦克风的 PDMCLK 信号位于3 MHz 附近、振幅几乎是 BCLK 的一半。 麦克风返回了串行数据、但我不确定是否正确、看起来主要是噪声。 此外、我还注意到、当我从 PWR_CFG 寄存器为 PCMD 加电、并基本上将器件设置为记录启用模式时、模拟和数字电源引脚上的电压与预期值发生变化、串行/数字信号具有负直流失调电压(-200mV)、并且电源/接地电网中以及 BCLK 前面的栅极中存在大量噪声。  电压的变化如下:

  • AVDD:3.3V +/- 0.1V
  • AREG:1.8V ->~2V
  • 基准电压:2.75V ->~2.6V
  • IOVDD:3.3V +/- 0.1V
  • DREG:1.7 -> 1.7-1.95V

按照手册中的建议、我已将去耦电容器放置在电源引脚上。 我已经尝试在50kHz 截止频率下过滤 WS 信号、这会略微降低它从 BCLK 接收到的串扰噪声。 但是、过滤任何截止值的 BCLK 根本不会降低辐射噪声、有时甚至会阻止 PCMD 时钟分频器启动。 无论噪声如何、我都可以在示波器和 Arduino 串行监视器/绘图仪上看到来自 PCMD 的输出信号。 但是、该输出似乎与任何音频激励(语音或固定频率正弦波)根本不相关。 在 Audacity 中、我也无法将该器件视为输入源。 我认为代码可能错误、因此我曾尝试将不同类型的 I2S 麦克风直接连接到 ESP32、这会返回清晰、相关的音频信号。

我一直在阅读这个论坛上的相关文章、这就是我如何做到这一点。 我为电压滤波器尝试了不同的电容器值、更改了试验电路板、更改了电缆连接、检查了焊接、不同的寄存器值、 不同的上拉电阻器值和不同的 Arduino I2S 库、但无济于事。 编程中遗漏了什么内容吗? 我在电路硬件中是否出现了问题? 如果有任何帮助、我们将不胜感激!

以下是寄存器值和电路原理图:

文件夹 #
SW_RESET 0x01 0x00
SLEEP_CFG 0x02 0x81
SHDN_CFG 0x05 0x0A
ASI_CFG0 0x07 0x40
ASI_CFG1 0x08 0x00
ASI_CFG2 0x09 0x00
ASI_CH1 0x0B 0x00
ASI_CH2 0x0C 0x20
ASI_CH3 0x0D 0x01
ASI_CH4 0x0E 0x21
ASI_CH5 0x0F 0x02
ASI_CH6 0x10 0x22
ASI_CH7 0x11 0x03
ASI_CH8 0x12 0x23
MST_CFG0 0x13 0x02
MST_CFG1 0x14 0x00
ASI_STS 0x15 只读
CLK_SRC 0x16 0x10
PDMCLK_CFG 0x1F 0xB2
PDMIN_CFG 0x20 0x00
GPIO_CFG0 0x21 0x11
GPO_CFG0 0x22 0x41
GPO_CFG1 0x23 0x41
GPO_CFG2 0x24 0x41
GPO_CFG3 0x25 0x41
GPO_VAL 0x29 0xF8
GPIO_MON 0x2A 只读
GPI_CFG0 0x2B 0x45
GPI_CFG1 0x2C 0x67
GPI_MON 0x2F 只读
BIAS_CFG 0x3B 0x00
CH1_CFG0 0x3C 0x40
CH1_CFG2 0x3E 0xC9
CH1_CFG3 0x3F 0x80
CH1_CFG4 0x40 0x00
CH2_CFG0 0x41 0x40
CH2_CFG2 0x43 0xC9
CH2_CFG3 0x44 0x80
CH2_CFG4 0x45 0x00
CH3_CFG0 0x46 0x40
CH3_CFG2 0x48 0xC9
CH3_CFG3 0x49 0x80
CH3_CFG4 0x4A 0x00
CH4_CFG0 0x4B 0x40
CH4_CFG2 0x4D 0xC9
CH4_CFG3 0x4E 0x80
CH4_CFG4 0x5F 0x00
Ch5_CFG0 0x50 0x40
Ch5_CFG2 0x52 0xC9
Ch5_CFG3 0x53 0x80
Ch5_CFG4 0x54 0x00
Ch6_CFG0 0x55 0x40
Ch6_CFG2 0x57 0xC9
Ch6_CFG3 0x58 0x80
Ch6_CFG4 0x59 0x00
CH7_CFG0 0x5A 0x40
CH7_CFG2 0x5C 0xC9
CH7_CFG3 0x5D 0x80
CH7_CFG4 0x5E 0x00
CH8_CFG0 0x5F 0x40
CH8_CFG2 0x61 0xC9
CH8_CFG3 0x62 0x80
CH8_CFG4 0x63 0x00
DSP_CFG0 0x6B 0x01
DSP_CFG1 0x6C 0x00
IN_CH_EN 0x73 0xC0
ASI_OUT_CH_EN 0x74 0xC0
PWR_CFG 0X75 0x60

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

    尊敬的 Matei:

    Unknown 说:
    我注意到从 PCMD 输入麦克风的 PDMCLK 信号约为3 MHz、几乎是 BCLK

    我看到、根据 上面的寄存器配置、GPO1、GPO2、GPO3和 GPO4都配置为 PDMCLK 输出、但是在原理图中、只有 PDM_OUT1连接到麦克风、而其他三个 PDM 输出引脚接地短路。 我们是否可以禁用 PDMCLK2_GPO2、PDMCLK3_GPO3、PDMCLK_GPO4、因为这些引脚在原理图上短接至 GND? PDMCLK_GPO1可配置为 PDMCLK、因为它是进入麦克风的信号。

    谢谢。此致、

    Lakshmi Narasimhan

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

    您好 Lakshmi、

    感谢您快速回答! 我禁用了寄存器的 GPO 2、3和4上的时钟。 GPO1上的时钟似乎已经调整到大约768kHz 和3.3V、有一点振荡。 我在 Arduino 串行绘图仪上看到的 I2S 输出似乎显示了一些与音频刺激的相关性,但它显然仍然非常嘈杂和图像以前一样慢(我忘了在原始文章中提到这一点。 使用 PCMD 时、绘制速率较慢、但将 I2S 麦克风直接连接到 ESP32时、绘制速率正常)。

    积极的一面是、电源电网中的噪声和直流失调电压似乎已经消失。 电源引脚上的电压基本与最初接线柱相同、但 AREG 现在的电压为1.92-1.96V、DREG 现在的电压为1.6-1.64V。

    现在的问题似乎是 PDM_IN 串行数据不是很一致。 我可以在示波器上绘制的类似于方波的波形中看到一些噪声、当我连接两个麦克风时、它似乎没有在固定的间隔内交替左/右通道。 有时高/低周期相等、有时一个周期比另一个周期长、有时信号在高电平和低电平之间的位置传输。 如果只连接了一个麦克风、则信号没有中间位置。 在任一种情况下、波形有时会消失、只留下 BCLK 噪声干扰可见。 我检查了这是否可能是由物理连接不良引起的、但这种情况很不可能发生。 无论连接的是1个还是2个麦克风、我都可以在示波器上读取的 PDM_IN 频率在45kHz 到384kHz 之间变化。 来自 PCMD 的 SDOUT 的频率在76kHz 和7669 kHz 之间变化、具体取决于我在示波器上放大的距离或接近程度、但至少它似乎是一致的方波信号。

    对于如何提高 PDM_IN 上的信号一致性、您有什么建议吗? 所描述的波形和频率是否符合预期?

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

    尊敬的 Matei:

    PDMCLK_CFG 中的 PDMCLK_DIV 字段似乎配置为2、根据数据表寄存器映射、这对应于768kHz 的 PDMCLK 频率。

    您能否共享以下信息?

    1) 1) ASI_STS 寄存器的回读状态是什么?

    2) 2)使用什么信号在数字麦克风上进行录音以进行测试?

    3) 3)您可以在示波器上分享数字波形的示波器快照吗?

    谢谢。此致、

    Lakshmi Narasimhan

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

    您好 Lakshmi、

    修改代码以便能够读取 ASI_STS 后、GPO1上的 PDMCLK 恢复到2.8 -3.2 MHz。 我删除了这部分代码并重新启动了电路板几次、但 PDMCLK 仍在3MHz 范围内。

    1) ASI_STS 的回读值= 66 (192kHz、比率128)。

    2)测试信号为1kHz 正弦波、440Hz 正弦波和正弦波20Hz - 20kHz。

    3) 3)下面是一些信号的屏幕截图:

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

    尊敬的 Matei:

    除了 PDMCLK 是3.072 MHz 之外、PDM 数据还似乎损坏、因为似乎有3个电压电平(0、~1.65和3.3V)。

    在器件配置完成后、是否可以共享所有寄存器的回读转储? 基本上、在器件配置并运行后、我们只需读回所有寄存器即可。

    谢谢。此致、

    Lakshmi Narasimhan

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

    您好 Lakshmi、

    对迟交的答复深表歉意。 我设法创建了一个文件以从寄存器中读取值。 我注意到其中有一些未按编程设定:

    文件夹 地址 Val 可编程 读取值(h) 读取值(b) 读取值(d)
    SLEEP_CFG 0x02 0x81 C1. 11000001 193.
    SHDN_CFG 0x05 0x0A a. 00001010 10.
    ASI_CFG0 0x07 0x40 38. 00111000 56.
    ASI_CFG1 0x08 0x00 0 00000000 0
    ASI_CFG2 0x09 0x00 0 00000000 0
    ASI_CH1 0x0B 0x00 0 00000000 0
    ASI_CH2 0x0C 0x20 20. 00100000 32.
    ASI_CH3 0x0D 0x01 1. 00000001 1.
    ASI_CH4 0x0E 0x21 21. 00100001 33.
    ASI_CH5 0x0F 0x02 2. 00000010 2.
    ASI_CH6 0x10 0x22 22. 00100010 34.
    ASI_CH7 0x11 0x03 3. 00000011. 3.
    ASI_CH8 0x12 0x23 23. 00100011 35.
    MST_CFG0 0x13 0x02 2. 00000010 2.
    MST_CFG1 0x14 0x00 48. 01001000 72.
    ASI_STS 0x15 只读 42. 01000010 66
    CLK_SRC 0x16 0x10 10. 00010000 16.
    PDMCLK_CFG 0x1F 0x2A 主题 0010101010 42.
    PDMIN_CFG 0x20 0x00 0 00000000 0
    GPIO_CFG0 0x21 0x11 11. 00010001 17.
    GPO_CFG0 0x22 0x41 41. 01000001 65
    GPO_CFG1 0x23 0x00 0 00000000 0
    GPO_CFG2 0x24 0x00 0 00000000 0
    GPO_CFG3 0x25 0x00 0 00000000 0
    GPO_VAL 0x29 0xF8 FC 11111100 252.
    GPIO_MON 0x2A 只读 0 00000000 0
    GPI_CFG0 0x2B 0x40 40. 01000000 64
    GPI_CFG1 0x2C 0x00 0 00000000 0
    GPI_MON 0x2F 只读 0 00000000 0
    INT_CFG 0x32 0x80 C0 11000000 192.
    INT_MASK0 0x33 只读 f 11111111 255.
    INT_LTCH0 0x36 只读 E0 11100000 224.
    BIAS_CFG 0x3B 0x00 0 00000000 0
    CH1_CFG0 0x3C 0x40 40. 01000000 64
    CH1_CFG2 0x3E 0xC9 E9 11101001. 233.
    CH1_CFG3 0x3F 0x80 C0 11000000 192.
    CH1_CFG4 0x40 0x00 0 00000000 0
    CH2_CFG0 0x41 0x40 40. 01000000 64
    CH2_CFG2 0x43 0xC9 E9 11101001. 233.
    CH2_CFG3 0x44 0x80 C0 11000000 192.
    CH2_CFG4 0x45 0x00 0 00000000 0
    CH3_CFG0 0x46 0x00 0 00000000 0
    CH3_CFG2 0x48 0xC9 E9 11101001. 233.
    CH3_CFG3 0x49 0x80 C0 11000000 192.
    CH3_CFG4 0x4A 0x00 0 00000000 0
    CH4_CFG0 0x4B 0x00 0 00000000 0
    CH4_CFG2 0x4D 0xC9 E9 11101001. 233.
    CH4_CFG3 0x4E 0x80 C0 11000000 192.
    CH4_CFG4 0x5F 0x00 0 00000000 0
    Ch5_CFG0 0x50 0x00 0 00000000 0
    Ch5_CFG2 0x52 0xC9 E9 11101001. 233.
    Ch5_CFG3 0x53 0x80 C0 11000000 192.
    Ch5_CFG4 0x54 0x00 0 00000000 0
    Ch6_CFG0 0x55 0x00 0 00000000 0
    Ch6_CFG2 0x57 0xC9 E9 11101001. 233.
    Ch6_CFG3 0x58 0x80 C0 11000000 192.
    Ch6_CFG4 0x59 0x00 0 00000000 0
    CH7_CFG0 0x5A 0x00 0 00000000 0
    CH7_CFG2 0x5C 0xC9 E9 11101001. 233.
    CH7_CFG3 0x5D 0x80 C0 11000000 192.
    CH7_CFG4 0x5E 0x00 0 00000000 0
    CH8_CFG0 0x5F 0x00 0 00000000 0
    CH8_CFG2 0x61 0xC9 E9 11101001. 233.
    CH8_CFG3 0x62 0x80 C0 11000000 192.
    CH8_CFG4 0x63 0x00 0 00000000 0
    DSP_CFG0 0x6B 0x01 1. 00000001 1.
    DSP_CFG1 0x6C 0x00 0 00000000 0
    IN_CH_EN 0x73 0xC0 E0 11100000 224.
    ASI_OUT_CH_EN 0x74 0xC0 E0 11100000 224.
    PWR_CFG 0X75 0x60 70 01110000 112
    DEV_STS0 0x76 只读 E0 11100000 224.
    DEV_STS1 0x77 只读 F0 11110000 240
    I2C_CKSUM 0x7E 只读 F7 11110111.

    247.

    我看到有一些不同的寄存器、其中一些是由于保留位的值与用户手册中的预期值不同。 我对 ASI_CFG0感到困惑。 即使我将其配置为用于 I2S、它也会返回 TDM 模式。 每个输入通道 CFG2和3 (音量和增益校准)似乎也存在问题。 最后、寄存器似乎也打开了通道3的功率、其中仅编程为打开通道1和2的电源。

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

    您好 Lakshmi、

    我在这个问题上取得了一些进展。 我将 I2C 通信线路上的上拉电阻从10k Ω 更改为2k Ω、现在我能够按预期将寄存器写入 PCMD。 似乎不再存在任何其他直流偏移问题、但仍然存在从 BCLK/时钟分频器到电压电源、接地和串行数据线的噪声串扰问题。 包括噪声纹波在内、电源测量:

    • AVDD:3.4 - 3.44V  
    • AREG:1.96 - 2.04V  
    • VREF:2.72 - 2.76V  
    • IOVDD:3.4 - 3.44V  
    • DREG:1.76 - 1.8V

    BCLK 现在的测量值为1.521 - 1.548 MHz、PDMCLK 的测量值为760 - 777 KHz。 PDM 数据输入仍具有如上一个屏幕截图所示的3步格式、范围为86 - 380KHz。 无论使用何种音频激励、示波器上的 I2S 输出均在21 - 831KHz 之间。  

    I2S 数据输出速率现在似乎恢复正常、但 Arduino IDE 中绘制的信号仍然只是噪声、与音频刺激无关。 我设法通过一个 python 脚本来将来自电路板的串行输出保存为一个.wav 文件、这段音频听起来都像白噪声。 我尝试了与其他电路配置相同的脚本、其中我有2个 I2S 麦克风直接连接到 ESP32、它们似乎仅返回白噪声、因此可能我需要对数据进行更多处理?  

    如果您有任何其他建议、请告诉我。

    此致、

    Matei Costea

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

    尊敬的 Matei:

    对响应延迟深表歉意。

    您能否共享为正弦信号录音等目的捕获的原始16位 I2S 数据流?

    谢谢。此致、

    Lakshmi Narasimhan

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

    您好 Lakshmi、

    下面是一个文件,我设法制作了一个1kHz 正弦波的10秒记录,播放速度为70 dB,距离2个麦克风40cm。  

    我还购买和收到了用于此 PCMD 多路复用器的 ADC3140EVM 评估板、但我正在等待访问 PPC3.e2e.ti.com/.../PCMD_5F00_Output.xlsx

    此致、

    Matei Costea

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

    尊敬的 Matei:

    对反应延迟深表歉意。

    捕获的数据看起来确实是噪声、它看起来与您也观察到的3步 PDM 输入相关。

    您还提到您可以访问 EVM。 您是否获得了 PPC3的访问权限? 您是否有机会在 EVM 上查看此内容?

    谢谢。此致、

    Lakshmi Narasimhan

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

    您好 Lakshmi、

    圣诞节期间、我设法访问了 PPC3和 PCMD3180软件包。 我想在假期之前用电路测试 EVM、但那时我无法使用 PCMD3180软件包、EVM 无法识别电路中的 PCMD。  

    我希望它现在能够检测到我已经安装了软件包。 很遗憾、我无法为您提供更多详细信息、因为我目前正在请病假、无法访问 EVM 和电路。 我们下周晚些时候会给您回复。

    此致、

    Matei Costea

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

    尊敬的 Matei:

    感谢您确认 EVM/PPC3状态。

    一旦您有机会在 EVM 上查看此内容、敬请告知。

    谢谢。此致、

    Lakshmi Narasimhan

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

    您好 Lakshmi、

    今天、我利用 EVM 和 PPC3测试了 PCMD。 完成初始设置后、我能够让音频信号进入 Audacity。 但是、我接收的音频信号的行为非常奇怪。

    如果我将两个麦克风连接到同一个 PDM_IN1通道、第一个麦克风将在第一个通道上产生相对干净但非常安静的音频信号、第二个麦克风将产生较大的噪声信号。 无论设置的 PDMCLK 频率或左/右通道的正/负边沿锁存如何、都会发生这种情况(交换正/负锁存只会改变干净和噪声信号的顺序。  

    我尝试了分别测试麦克风、当单独连接到 PDM_IN1通道时、这两个麦克风都可以获得干净、安静的信号。 但是、与左侧麦克风相比、右侧麦克风的本底噪声似乎更高。 在示波器上、麦克风仍然会产生3步方波、两者独立(在右侧麦克风中更为明显)并且协同工作时也是如此。 PCMD 的 SDO 现在也是一个3步长的方波。

    我想知道这个3步长波形实际上是由 PDM 麦克风本身还是我使用的试验电路板引起的问题。 他们甚至在通过 PCMD 之前展示此波形的事实让我相信这不一定是 PCMD 内部抽取器或 I2S 转换器的问题。  

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

    您好 Lakshmi、

    该问题的最新情况。

    在单独测试麦克风时、3步信号问题似乎已经消失。 向 BCLK 添加了一个1nF 电容器以消除过冲。 我启用了 MICBIAS、添加了一个1uF 电容器、并将麦克风的电源之一连接到它、我可以在 Audacity 下获得相同的非常安静的音频信号。 我注意到示波器上的 SDO 波形稳定在振幅约为1.6V 的相对恒定的方波、偶尔会出现振幅尖峰。 将 GUI 中通道1的音量增加到15-25dB 后、波形上升至恒定的2.8V 至3V。 Audacity 下的信号更大、但 SNR 仍相对较差。 这是通过将 PDMCLK 设置为1.536 MHz 来完成的。 提高 PDMCLK 速度不会更改音频、但将 PDMCLK 降至768kHz 会增加瞬态尺寸并降低 SNR、在10kHz 以上会产生相当大的噪声。 向 PDM IN/OUT 通道添加电阻器未带来任何改进。

    PPC/EVM 和 PCMD 之间似乎存在一些 I2C 通信问题。 一些寄存器返回错误的值、主要问题出现在 CLKGEN_CFG0 (0x17)中、即从 MCLK (不可用)获取 NDIV_IN_CLK、而不是 PLL_OUT_CLK。 此外、有时读取寄存器会返回器件已设置为 TDM 模式、尽管在 PPC3 GUI 中、它是在 I2S 上设置的。 有时、与 MICBIAS 相关的寄存器(0x3b 和0x75)不更新并且不打开 MICBIAS、因此我必须从 GUI 的"Register Configuration"页面手动更新它们。 我已经在 I2C 通信通道(0、1k、2k、4.7K 欧姆)上测试了各种上拉电阻值、但似乎没有什么区别。 另外、我意外地轻触了连接 EVM 和 PCMD 试验电路板的电缆、音频信号变为噪声、并且一些寄存器发生了变化。 该过程进行了多次重新连接和寄存器重新编程来解决问题。

    对于如何提高输出 SNR 或 I2C 通信精度、您有什么建议吗?  

    此致、

    Matei Costea

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

    尊敬的 Matei:

    一次只测试1个麦克风就能解决3个步骤的问题、这似乎表明当两个麦克风在同一条数据线上传输数据时存在某种争用。

    在 PPC3前面、您能否共享您正在使用的 PPC3配置文件? 我可以尝试查看观察结果是否可以在 EVM 板上重现。

    此外、当您使用 EVM 时、您是否使用单独的 I2S 主器件来采集数据? 如果是、您是否尝试过将 XMOS ACMB 用作录音路径(在 Audacity 中、它应该显示为 TI USB 器件)?

    谢谢。此致、

    Lakshmi Narasimhan

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

    您好 Lakshmi、

    我已经附加了 PPC3配置文件。

    我买了新的麦克风与系统进行测试,它似乎问题与输出音量/噪音的巨大差异已消失。 很可能是其中一个旧麦克风短路。 现在、两个麦克风通道上的输出是类似的、尽管会因某种形式的噪声或干扰而损坏(在图中:1.5 MHz、0.7MHz、3MHz)。 无论通道数字音量设置如何、示波器上的 SDO 电压仍约为1.6V、二次尖峰为3V。  

    我没有使用单独的 I2S 主器件来捕获数据、只有 EVM 可以、我可以在 Audacity 中看到它作为 TI USB 器件。有时、如果我更改了 PPC3中的任何设置、Audacity 无法再开始记录数据。 我还不知道如何防止这种情况再次发生。 唯一的解决方法是重新接线电路。  

    我还注意到、每次我要在 GUI 中检查中断时、当我按下"Update"按钮时、ASI 时钟错误和 PLL 锁定 LED 都将变为红色。 下次我按下按钮时、按钮会变为绿色、并保持绿色、以处理任何进一步的更新请求。

    此致、

    Matei Costea

    i2s_16b_2ch.pp3

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

    尊敬的 Matei:

    谢谢你。 我在此处查看一下 EVM 的这篇文章、下周同一时间再见。

    谢谢。此致、

    Lakshmi Narasimhan

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

    尊敬的 Matei:

    以下几点:

    1) 1)关于 GUI 中的中断 LED、只要发生锁存中断、这些指示灯就会在按下"update"时变为红色。 这些锁存中断标志会在读取 INT_LTCH0寄存器(在按下"update"时发生)时清除、此时 LED 指示灯变为绿色。

    2) 2)由于您正在使用 TI USB 音频器件(这意味着 XMOS 提供 ASI 信号)、您是否能够尝试将器件配置为32位 TDM 模式而不是16位 I2S 模式?

    3) 3)数据表的"应用和实施"部分中还提供了 PCMD3180的示例配置脚本、您也可以尝试。

    谢谢。此致、

    Lakshmi Narasimhan

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

    您好 Lakshmi、

    关于第3点、示例配置。 我在大约6个月前针对 PCMD 的初始配置使用了该参数和数据表、针对两个麦克风进行了调整。 这通常很有用、但某些寄存器分配了错误的值(如果我没记错、则在通道激活寄存器中)。 我在浏览过这里的论坛后设法修复了它们。   

    我尝试使用 PPC3将器件配置为32位 TDM 模式。 我可以在示波器上看到信号已经显著地放大到了 I2S 操作。 SDO 和 FSYNC 信号存在更多的噪声、BCLK 看起来更像是一个未达到全振幅的三角波信号、也是直流失调电压。 在该配置中、我没有接收到任何不准确的音频信号。 我认为 TDM 在我的应用中不会特别有用、因为将整个项目重新配置为在 TDM 模式下工作对项目截止日期是不可行的。

    我已将电路转移到定制 PCB、并完全省去了电路中的试验电路板。 这解决了大多数问题。 3步进波形问题也从 SDO 和 PDM_SDA 中消失了。  I2S 配置会返回满意的信号。 干净、但没有我希望的那么吵 我必须提高每个信道上的数字音量才能获得可用信号。 Audacity 报告 VRMS =-42dB、SNR = 13dB (当音量在 PPC 中设置为10dB 时)、VRMS =-24dB、SNR =-15dB (当音量在 PPC 中设置为25dB 时)。  

    接下来、我要尝试在没有评估套件和 PPC 的情况下使用 PCMD。 我正在使用 ESP32 WIFI 卡作为 ASI 主器件、同时将 I2S 输出无线传输到 Matlab。 我正在使用 UDP 协议进行传输、并且可以在 Matlab 中接收数据、但噪声再次很大。 我添加了一个20kHz 截止频率的低通滤波器、将噪声降低到该范围以上、但在通带中仍然有大量噪声。 此外、我注意到、将活动通道(从 PCMD 配置寄存器和 Matlab UDP 接收器草图中) 和麦克风的数量增加到3 (连接在 GPI 1和2上)会返回某种形式的混叠问题。 音频数据以更高的音调和速度回放。 同样、将通道和麦克风数量减少至1会降低音频的俯仰和回放速度。  

    我将尝试确定此采样问题来自哪里。 您能否请提供一个正确的 I2S 数据包示例(10-20个样片就已经足够了)、以便我了解 PCMD 会有哪些变化? 谢谢!  

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

    尊敬的 Matei:

    当然、我可以针对已知的 PDM 信号共享采样 I2S 捕获。 明天我将分享同样的内容。

    谢谢。此致、

    Lakshmi Narasimhan

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

    尊敬的 Matei:

    这是一个正弦音调的 PDM 录音示例。

    e2e.ti.com/.../pdm_5F00_capture_5F00_2ch.wav

    谢谢。此致、

    Lakshmi Narasimhan

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

    您好 Lakshmi、

    感谢您分享录音。 通过比较这些样本、您的示例中的总幅度(最大值-0.032)看起来比我的测试中的(最大值0.012)更低且具有更好的 SNR。 您能否分享一些有关录制设置的详细信息?  

    此致、

    Matei Costea  

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

    尊敬的 Matei:

    为了测试这一点、我使用了 EVM 和具有 PDM 发生器的 APx555台式分析仪。 波形在 Audacity 下记录。

    谢谢。此致、

    Lakshmi Narasimhan

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

    您好 Lakshmi、

    感谢您分享录制设置和目前为止的帮助!  

    我认为我的 PCMD 现在应该正常工作、至少通过 EVM 工作。 通过 ESP32传输 I2S 数据后、才会出现问题。 我想它可能与字节字节字节序或我使用的帧大小有关、但我还没有搞清楚。  

    有一点我不清楚、PCMD 或 I2S 应该输出的通道数量。 当我在 EVM 中使用2个麦克风(配置为左插槽0和右插槽0)时、我可以看到8个单声道的 Audacity、其中只有2个显示音频信号。 尽管其他6个通道在 PCB 上接地并在寄存器中关闭、但除非在所有8个通道上启用了记录、否则 Audacity 会拒绝开始记录。

    另一方面、Arduino 允许我将器件设置为 I2S 立体声模式(在寄存器之外)。 当我使用2个麦克风时、我在 Matlab 中收到的一个数据流分成2个通道、我可以把它们插入一个立体声音频文件中。 当我使用3个麦克风时、我收到3个通道。 当我将接收到的通道编号增加到8时、我在 PCMD 寄存器中禁用的其余输出通道上接收到数据。 此外、无论是否连接麦克风、减少或增加通道数都会分别降低或增加音频播放的速度和间距。  

    阅读 PCMD 用户手册后、我觉得 I2S 应该将左右两个插槽交错成单声道或立体声通道。 我不确定这8个单声道输出是否正确。 影响音频播放速度和音距的活动通道数量肯定不正确、很可能是一种混叠形式。 如果您能更详细地解释预期可从 PCMD 获得的通道数、我将不胜感激。

    此致、

    Matei Costea

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

    尊敬的 Matei:

    PCMD3180能够为多达8个数字麦克风通道提供数据。 这可以通过 TDM 或 I2S 音频串行通信完成。

    通过 EVM、ACMB 控制器板已针对8通道 TDM 协议进行编程 (如果您还看到 TI USB 音频设置、它将针对8个通道进行编程)。 因此、Audacity 要求捕获所有8个通道(即使其他6个通道上没有数据)。

    如果 Arduino 是为立体声 I2S 音频编程的,那么我们也可以录制立体声 I2S 音频。

    谢谢。此致、

    Lakshmi Narasimhan