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:PDMCLK 不输出且所有 PDM 通道均关闭

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1335681/pcmd3180-pdmclk-not-output-and-all-pdm-channels-turned-off

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

尊敬的所有人:

有 一个基于 pcmd3180器件的音频项目、使用 I2S 接口时的采样率为192KHz。

我们在获取正确的音频数据时会遇到一些困难。  请给我们一些调试建议。

此参考设计如下所示为2通道音频。

首先、MCU 可以使用 i2c 接口成功控制 pcmd3180地址。 然后设置这些寄存器、通过 I2S 接收2CH 音频信号。 设置如下所示。

1.为设备通电:

从硬件关断模式转换到睡眠模式(或软件关断模式):
a.仅当 IOVDD 和 AVDD 电源稳定至稳态工作电压时释放 SHDNZ
b.等待至少1ms、让器件初始化内部寄存器初始化

3. 只要需要记录操作,就从睡眠模式转换到活动模式:

//#通过 I2C 使用内部 Areg 写入 P0_R2来唤醒设备
//w 98 02 81
PCMD3180_WRITE_reg (0x00、0x02、0x81);
rec_reg=PCMD3180_read_reg (0x00、0x02、rec_buf);
//#通过 I2C 写入 P0_R60将 CH1_INSRC 配置为数字 PDM 输入
//w 98 3C 40
PCMD3180_WRITE_reg (0x00、0x3c、0x40);
//#通过 I2C 写入 P0_R65将 CH2_INSRC 配置为数字 PDM 输入
//w 98 41 40
PCMD3180_WRITE_reg (0x00、0x41、0x40);
//#通过 I2C 写入 P0_R70将 CH3_INSRC 配置为数字 PDM 输入
//w 98 46 40
PCMD3180_WRITE_reg (0x00、0x46、0x40);
//#
//#通过 I2C 写入 P0_R75将 CH4_INSRC 配置为数字 PDM 输入
//w 98 4B 40
PCMD3180_WRITE_reg (0x00、0x4b、0x40);

//#通过 I2C 写入 P0_R34将 PDMCLK1_GPO1配置为 PDMCLK
//w 98 22 41
PCMD3180_WRITE_reg (0x00、0x22、0x41);
//#通过 I2C 写入 P0_R35将 PDMCLK1_GPO2配置为 PDMCLK
//w 98 23 41
PCMD3180_WRITE_reg (0x00、0x23、0x41);
//#通过 I2C 写入 P0_R36将 PDMCLK1_GPO3配置为 PDMCLK
//w 98 24 41
PCMD3180_WRITE_reg (0x00、0x24、0x41);
//通过 I2C 写入 P0_R37将 PDMCLK1_GPO4配置为 PDMCLK
//w 98 25 41
PCMD3180_WRITE_reg (0x00、0x25、0x41);

//#通过 I2C 写入 P0_R43将 PDMDIN1_GPI1和 PDMDIN2_GPI2配置为 PDMDIN1和 PDMDIN2
//带98 2B 45
PCMD3180_WRITE_reg (0x00、0x2b、0x45);
//#通过 I2C 写入 P0_R44将 PDMDIN3_GPI3和 PDMDIN4_GPI4配置为 PDMDIN3和 PDMDIN4
//w 98 2C 67
PCMD3180_WRITE_reg (0x00、0x2c、0x67);
//#通过 I2C 写入 P0_R115来使能 Ch-1到 Ch-8的输入
//w 98 73 FF
PCMD3180_WRITE_reg (0x00、0x73、0xff);
//#通过 I2C 写入 P0_R116、启用 ASI 输出 Ch-1至 Ch-8插槽
//w 98 74 FF
PCMD3180_WRITE_reg (0x00、0x74、0xff);
//#通过 I2C 写入 P0_R117来给 PDM 转换器和 PLL 上电
//w 98 75 60
PCMD3180_WRITE_reg (0x00、0x75、0x60);

设置  PWR_CFG  寄存器后、我们可以读取正确的设置值(0x60)。

//#读取 PWR_CFG 寄存器
REC_REG=PCMD3180_READ_REG (0x00、0x75、rec_BUF);

然后读取  DEV_STS0 和 DEV_STS1寄存器、并发现  DEV_STS0/DEV_STS1 值分别为0x00和0xc0。

这意味着所有 PDM 通道都关闭。  

//# READ DEV_STS0寄存器
REC_REG=PCMD3180_READ_REG (0x00、0x76、rec_BUF);

//# READ DEV_STS1寄存器
rec_reg=PCMD3180_read_reg (0x00、0x77、rec_buf);

最后、我们  在 pcmd3180中未发现 CLK 信号输出。

如何进行下一步操作。  请就 这个问题给我们一些建议。  非常感谢。

此致、

升华

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

    我会在今天稍后回复。

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

     e2e.ti.com/.../PCMD3180_5F00_2_5F00_MIC.cfg

    我加入了一个来自我们的工具 Pure Path 控制台的代码,使2个 PCM Mikes 工作。 也许这种代码可以尝试.

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

    尊敬的 Sanjay:

    感谢您的快速响应。

    我们刚刚测试了您按如下方式提供的代码"PCMD3180_2_MIC.cfg"、但仍然无法为 PDM 麦克风生成 CLK 输出 signla。  

              

    应用了代码以进行测试、 发现 pcmd3180中没有 CLK 信号输出。

    尽管 ASI_OUT_CH_EN (0x74)和 PWR_CFG (0x75)的寄存器已启用 PDM 通道、

    DEV_STS1寄存器的值仍然为0x0c、这意味着所有 PDM 通道均关闭。

    请参阅以下测试结果。

    /#通过 I2C 写入 P0_R117来给 PDM 转换器和 PLL 上电
    //w 98 75 60
    PCMD3180_WRITE_reg (0x00、0x75、0x60);

    //# READ DEV_STS1寄存器
    rec_reg=PCMD3180_read_reg (0x00、0x77、rec_buf);

        

         

    下一步我们应该做什么或任何建议?  

    此致、

    升华

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

    您向 BCLK 和 FSYNC 提供了什么时序?

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

    尊敬的 Sanjay:

    很抱歉回复延迟。  

     我们应用的 ASI 设置为2通道(L-CH/R-CH)、采样率为192KHz、使用 I2S 接口及其   ASI_CFG0和 MST_CFG1寄存器  pcm3180的设置如下所示。

    寄存器设置是否正确? 感谢您的支持。

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    对于 I2S 模式下 PDM 解码器的16位分辨率的 ASI 设置、ASI_CFG0寄存器的值为0x40。

    ASI_CFG0寄存器(页面= 0x00、地址= 0x07)[复位= 30h]

    BCLK 频率为6.144 MHz、BLCK 与 FSYNC 之比为32。

     MST_CFG1寄存器的设置值为0x62。

    MST_CFG1寄存器(页面= 0x00、地址= 0x14)[复位= 48h]

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    此致、

    盛华

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

    我会很快回复

    此致

    桑贾伊

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

    是否在从模式下使用器件。 是 FSYNC 和 BCLK 输入吗? MST_CFG1仅适用于主模式。

    这是您自己的电路板还是使用的 TI 评估板。 是否存在 GPO1引脚故障的可能性。 您可以尝试切换到 PDMCLK 的另一个 GPO 引脚、

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

    尊敬的 Sanjay:

    我们希望通过 I2S 将器件设置为从模式、并且    FSYNC 和 BCLK 的信号 将从 PCDM3180发送到 PDM 麦克风

    现在、我们已 在 PDCM3140 EVK 中成功使用2CH、I2S、16位、从模式接收到正确的音频信号。

       


    下一步、我们将尝试使用电路板将冰箱连接至 PCM3180、但现在由于没有 CLK Outpt 到 PDM 麦克风、冰箱仍然出现故障。

    以下原理图是我们的单通道 PDM 麦克风 PCB 设计。  

    我们将继续研究为什么 PDM 麦克风上没有 CLK 数据输出。  例如、我们可以尝试为 PDMCLK 等切换到另一个 GPO 引脚。  感谢你的帮助。

    此致、

    盛华

     

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

    好的。 如果您有任何其他问题、敬请告知

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

    尊敬的 Sanjay:

    非常感谢。

    此致、

    盛华

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

    尊敬的 Sanjay:

    很抱歉回复延迟。

    我们希望通过配置 PCM3180、可以使用 I2S 接口以192KHz、16位的频率接收 PDM 麦克风。

    首先、我们遵循 PCM3180的数据表、以便  在 PCM3180器件中启用所有8个 PDM 通道而不启用 PDM 时钟输出。  

    奇怪的是、即使我们启用了 ASI_OUT_CH_EN (0x74)和 PWR_CFG (0x75)的寄存器、 DEV_STS0和 DEV_STS1  寄存器的值分别为0x00、0x0c、这意味着所有 PDM 通道都关闭。

    该应用应获得正确的设置值: DEV_STS0:0xFF 和 DEV_STS1:0xE0、这意味着所有 PDM 通道均已开启。

     我们如何采取下一步措施或为我们提供任何建议?

    感谢你的帮助。

    PCM3180的原理图如下所示。

    此致、

    升华

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

    尊敬的 Shenghua:

    您使用的是 EVM 还是自己的电路板? 这可能是一个硬件故障的某种.

    是否已应用 BCLK 和 FSYNC 并连接到 IC 的引脚?

    我还建议检查是否所有电源都达到了 IC。

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

    尊敬的 Sanjay:

    首先、我们在 pcmd3140中测试了 EVB、它可以工作。

    然后、我们还按照数据表中的程序测试了我们自己电路板的 PCMD3180器件、该器件由于没有 PDM 时钟输出而出现故障。

    有四个步骤(S1、S2、S3、S4)从 PC 获取正确的数字麦克风数据。

    第一步、我们测量了 CLK 信号(PCMD3180中的 CLK1、MIC1中的 TP12、CLK)、发现没有向 MIC1输出 CLK 信号。

    如何执行下一步或任何建议?

    感谢你的帮助。

    此致,盛华

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

    一些最初的测试:

    SHDNZ 引脚电压是否为3.3V?

    请检查 Vref (2.75V)、Areg (1.8V)、IOVDD (3.3V)、AVDD (3.3V)上的电压?

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

    尊敬的 Sanjay:

    我们测量的 PCM3180的这些电压如下所示。

    SHDNZ :3.52V  

    Vref:2.72V, VARG: 2.0V

    IOVDD:3.52V、 AVDD:3.52V

    正确吗?  

    感谢你的帮助。

    此致,盛华

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

    通常、我们期望 IOVDD /AVDD 为3.3V、绝对最大值为3.6。 为什么电源高于3.3V?

    AREG 应为1.8V

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

    尊敬的 Sanjay:

    我们通过数字仪表而不是数字示波器重新测量这些电压、 这些值 如下所示是正确的。

    SHDNZ :3.3V  

    Vref:2.72V, VARG: 1.8V

    IOVDD:3.3V; AVDD:3.3V

    然后、我们还根据 PCMD3180数据表测试了我们自己电路板的 PCMD3180器件、该器件由于没有 PDM 时钟输出而出现故障。

    这些 PDM 通道应在 启用输入 Ch-1至 Ch-8和 启用 ASI 输出 Ch-1至 Ch-8后启用。

    然后 我们观察了 DEV_STS0寄存器、值 为0x00表示这些 PDM 通道仍然断电。

    测试代码和调试信息如下所示。

    // 2024.0418通过 ysh 3180由 EVB 测试...
    //w 98 01 01
    // SW_RESET
    //PCMD3180_WRITE_reg (0x00、0x01、0x01);
    PCMD3180_wr_reg (0x00、0x01、0x01);
    HAL_DELAY (1000);
    //#通过 I2C 使用内部 Areg 写入 P0_R2来唤醒设备
    //w 98 02 81
    PCMD3180_WRITE_reg (0x00、0x02、0x81);
    HAL_DELAY (1000);
    rec_reg=PCMD3180_read_reg (0x00、0x02、rec_buf);
    //
    //#通过 I2C 写入 P0_R60将 CH1_INSRC 配置为数字 PDM 输入
    //w 98 3C 40
    PCMD3180_WRITE_reg (0x00、0x3c、0x40);
    //#通过 I2C 写入 P0_R65将 CH2_INSRC 配置为数字 PDM 输入
    //w 98 41 40
    PCMD3180_WRITE_reg (0x00、0x41、0x40);
    //#通过 I2C 写入 P0_R70将 CH3_INSRC 配置为数字 PDM 输入
    //w 98 46 40
    PCMD3180_WRITE_reg (0x00、0x46、0x40);
    //#
    //#通过 I2C 写入 P0_R75将 CH4_INSRC 配置为数字 PDM 输入
    //w 98 4B 40
    PCMD3180_WRITE_reg (0x00、0x4b、0x40);

    //#通过 I2C 写入 P0_R34将 PDMCLK1_GPO1配置为 PDMCLK
    //w 98 22 41/40
    PCMD3180_WRITE_reg (0x00、0x22、0x40);
    //#通过 I2C 写入 P0_R35将 PDMCLK1_GPO2配置为 PDMCLK
    //w 98 23 41/40
    PCMD3180_WRITE_reg (0x00、0x23、0x40);
    //#通过 I2C 写入 P0_R36将 PDMCLK1_GPO3配置为 PDMCLK
    //w 98 24 41/40
    PCMD3180_WRITE_reg (0x00、0x24、0x40);
    //通过 I2C 写入 P0_R37将 PDMCLK1_GPO4配置为 PDMCLK
    //w 98 25 41/40
    PCMD3180_WRITE_reg (0x00、0x25、0x40);

    //#通过 I2C 写入 P0_R43将 PDMDIN1_GPI1和 PDMDIN2_GPI2配置为 PDMDIN1和 PDMDIN2
    //带98 2B 45
    PCMD3180_WRITE_reg (0x00、0x2b、0x45);
    //#通过 I2C 写入 P0_R44将 PDMDIN3_GPI3和 PDMDIN4_GPI4配置为 PDMDIN3和 PDMDIN4
    //w 98 2C 67
    PCMD3180_WRITE_reg (0x00、0x2c、0x67);
    //#通过 I2C 写入 P0_R115来使能 Ch-1到 Ch-8的输入
    //w 98 73 FF
    PCMD3180_WRITE_reg (0x00、0x73、0xff);
    //#通过 I2C 写入 P0_R116、启用 ASI 输出 Ch-1至 Ch-8插槽
    //w 98 74 FF
    PCMD3180_WRITE_reg (0x00、0x74、0xff);
    //#通过 I2C 写入 P0_R117来给 PDM 转换器和 PLL 上电
    //w 98 75 60
    PCMD3180_WRITE_reg (0x00、0x75、0x60);

    如何执行下一步或为我们提供任何建议?

    感谢你的帮助。

    此致,盛华

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

    您是否使用另一个芯片对此进行了测试?

    我注意到您报告了3.5V 的 Vcc。 是否存在施加高电压导致损坏的可能性?

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

    尊敬的 Sanjay:

    感谢你的帮助。

    我们已经测试了四块电路板、得到了相同的结果:没有3.3V Vcc 的 PDMCLK 输出。

    对于 PCMD3180数据表、GPO_CFG0 (0x22)寄存器、低位字节被保留;但是、 在  数据表的示例代码中、GPO_CFG0寄存器被设置为0x41。

    哪一项是正确的?  我们应该将 GPO_CFG0设置 为 0x41或0x40以启用"GPO1配置为 PDM 时钟输出"吗?

    PCMD3180数据表中的示例代码。

    此致、

    盛华

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

    我认为982241应该没问题。 我认为这也是您编程到 PCMD3140 EVM 中的设置、然后 PCMD3140 EVM 提供 PDM 时钟输出。

    我认为该软件可能是可以的,我们可能有一个硬件故障。

    我建议将 GPO1引脚设置为通用输出、并尝试使用下面的 GPO_VAL 寄存器向该引脚写入高电平和低电平。

    这应确认 I2C 是否正常工作以及 GPO 引脚是否实际正常工作。

      

    如果 GPO 引脚正常运行并通过 I2C 命令进行切换、则我看到特定于 tjhat FSYNC 和 BCLK 信号不正确或未到达 IC 引脚的唯一原因。 您应该使用示波器直接检查引脚、以查看这些信号是否达到

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

    尊敬的 Sanjay:  

    感谢你的帮助。

    根据您的建议、我们尝试 在引脚7中将 GPO_CFG0和 GPO_VAL 配置为 GPO1、如下所示。  

    然后、我们将固件设置为切换引脚7、然后测量信号且发现无信号输出。

    硬件电路非常简单(没有连接到 Vdd 或接地)、但  在 PIN7中没有信号输出。  

    PS:设备名称是 PDM3180。

    您是否有 pdm3180 evk 可供我们测试? 感谢你的帮助。

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    寄存器按如下方式进行设置。

    在 main while 循环中切换 GPO1

    设备名称为 PDM3180。

    此致、

    盛华

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

    在我看来、I2C 命令要么不正确、要么与芯片的 I2C 引脚的连接不起作用。

    您如何为电路板提供 I2C?

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

    尊敬的 Sanjay:

    我们遵循 PCMD3180规范中的 I2C 命令、其 CLK 速率为100KHz。

    然后、我们通过 I2C 读取和写入命令测试了 SLEEP_CFG 寄存器(寄存器地址:0x02)。

    首先、我们将0x81写入地址0x02并读取0x02地址。

    我们可以成功读取正确的值:0x81。 测试结果如下。

    下一步我们应该做什么或任何建议?

    此致、

    盛华

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

    GPIO 设置可能设置为开漏。 您可以设置为高电平和低电平有效、然后切换引脚吗? 这应该可以正常工作、并可以证明 I2C 和引脚正常。

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

    尊敬的 Sanjay:

    根据您的建议、我们将 GPIO1寄存器设置 为高电平和低电平有效、然后切换引脚。

    然后、我们在 GPIO 引脚中找到如下所示的切换信号、并证明 I2C 和引脚正常。

    我们要 将此器件配置为生成 具有2通道(CH1/CH2) I2S、192KHz 采样速率的音频信号。

    如何配置这些寄存器、以为 PDM 麦克风生成 ASI 信号、如下所示?

    将 GPIO1初始 设置为高电平和低电平有效、然后切换引脚。

    用于 GPIO 切换的 while 循环

    感谢您的支持。

    此致、盛华

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

    很高兴听到这个消息。 这意味着 I2C 正在工作且引脚正在激活、

    PDM 时钟还需要将 GPIO 设置为高电平和低电平有效。 我建议在 PDM 麦克风代码中也使用同样的

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

    尊敬的 Sanjay:

    我们将尝试将 设置为高电平有效和低电平有效的 GPIO 添加到代码中、然后测试 PDM 麦克风。

    我们要 将该器件配置为生成 具有2通道(CH1/CH2) I2S、192KHz 采样率和16/32位格式的音频信号。

    如何配置这些寄存器、以为 PDM 麦克风生成 ASI 信号、如下所示?

    您能提供示例代码供我们测试吗?

    此致、

    盛华

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

    我首先建议将数据表中的 I2C 设置与 I2C 设置相关的时序一起使用。 这些引脚可以通过 GPIO 设置为高电平有效和低电平有效来使用。

    如果您获得一个 PDM 时钟、那么我们可以适应另一个计时  

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

    尊敬的 Sanjay:

    在将要设置为高电平有效和低电平有效的 GPIO 添加到代码后、重新测试 PDM 麦克风。

    然后我们得到相同的结果、没有 PDM 时钟输出到 PDM 麦克风。

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    # SW_RESET

    W 98 01 01

    延迟1秒

    #通过 I2C 使用内部 Areg 写入 P0_R2唤醒设备
    W 98 02 81

    #延迟1秒

    #GPIO1要设置为高电平和低电平有效

    宽98 21 11


    #
    #通过 I2C 写入 P0_R60将 CH1_INSRC 配置为数字 PDM 输入
    W 98 3C 40
    #
    #通过 I2C 写入 P0_R65将 CH2_INSRC 配置为数字 PDM 输入
    W 98 41 40
    #
    #通过 I2C 写入 P0_R70将 CH3_INSRC 配置为数字 PDM 输入
    宽98 46 40
    #
    #通过 I2C 写入 P0_R75将 CH4_INSRC 配置为数字 PDM 输入
    W 98 4B 40
    #
    #通过 I2C 写入 P0_R34将 PDMCLK1_GPO1配置为 PDMCLK
    W 98 22 41
    #
    #通过 I2C 写入 P0_R35将 PDMCLK1_GPO2配置为 PDMCLK
    W 98 23 41
    #
    #通过 I2C 写入 P0_R36、将 PDMCLK1_GPO3配置为 PDMCLK
    宽98 24 41
    #
    #通过 I2C 写入 P0_R37、将 PDMCLK1_GPO4配置为 PDMCLK
    宽98 25 41
    #
    #通过 I2C 写入 P0_R43将 PDMDIN1_GPI1和 PDMDIN2_GPI2配置为 PDMDIN1和 PDMDIN2
    W 98 2B 45
    #
    #通过 I2C 写入 P0_R44将 PDMDIN3_GPI3和 PDMDIN4_GPI4配置为 PDMDIN3和 PDMDIN4
    宽98 2C 67
    #
    #通过 I2C 写入 P0_R115来启用 Ch-1到 Ch-8的输入
    宽98 73 FF
    #
    #通过 I2C 写入 P0_R116启用 ASI 输出 Ch-1到 Ch-8插槽
    W 98 74 FF
    #
    #加电 PDM 转换器和 PLL 通过 I2C 写入 P0_R117
    宽98 75 60

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    此致、

    盛华  

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

    是否为器件应用了用于该测试的 BCLK 和 FSYNC?

    此外、您还可以尝试切换 GPO 引脚吗? 我认为 GPIO 引脚已切换至

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

    尊敬的 Sanjay:

    好消息是、GPIO1和 GPO1已经成功切换。

     配置 音频 CH1/CH2后、我们应该如何 为 I2S、16/32位、192KHz 采样率设置 BCLK 和 FSYNC?

    至于  对器件应用了 BCLK 和 FSYNC、必须设置哪些寄存器进行测试?

    您能提供示例代码供我们测试吗?

     -音频通道: CH1/CH2

     - I2S 格式,16/32位,192KHz 采样速率

    此致、盛华

    ------------------------------------------------------------------------------------------------------------------------------------------------------

    GPO1切换测试流程如下所示。

    首先、我们刚刚测试了两种模式  GPO_CFG0 设置以测试 GPO 切换功能。

    情况1: GPO_CFG0(0x22):0x10, GPO 切换失败(GPO 电压低)

    CASE2: GPO_CFG0 (0x22):0x11, GPO1切换 成功

    根据数据表、寄存器  GPO_CFG0的低4位是保留的。

    为了让 GPO1进行切换、 我们必须将 GPO_CFG0的低位设置  为"驱动低电平有效和高电平有效" 、如 GPIO_CFG0寄存器。

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

    。 通常 ASI _CFGO 设置协议和位数。

    我们在从模式下运行、然后需要在芯片上从外部应用 BCLK 和 FSYNC。

    芯片具有一种自动时钟机制,当芯片获得了有效的传入时序时,芯片内部就可以设置芯片。

    步骤:

    按照数据表中给出的值加载 I2C。 如上所述启用 GPO

    2.作为第一步,我建议给器件提供44.1kHz 的 FSYNC 和11.2896的 BCLK。 (192K 可稍后给出)

    3.检查是否出现 PDM 时钟。 如果未出现、请参阅 ASI_STS 寄存器以确定

    如果时序到达芯片引脚正常。

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

    尊敬的 Sanjay:

    我们稍后再试。 感谢您的支持。

    此致、

    盛华

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

    当然可以。

    此致

    桑贾伊

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

    尊敬的 Sanjay:

    很抱歉回复延迟。

    我们按照您的建议执行了测试步骤、最终获得了正确的麦克风数据。

    现在我们在从模式下运行、然后需要从外部对芯片应用 BCLK 和 FSYNC。

    步骤:

    按照数据表中给出的值加载 I2C。

    ASI 配置:I2S、32位模式、CH1/CH2、48KHz 采样率

    #校验和0
    #由 PCMD3180-SW v3.0.1生成
    # PCMD3180设备配置
    #------------------
    #重置
    #------------------
    #选择页面0
    W 98 00 00 00
    #重置设备
    W 98 01 01
    # 1ms 延迟
    #------------------
    #开始设备内存
    #------------------
    #第0页(0x00)转储
    #选择第0页
    W 98 00 00 00
    #唤醒并启用 Areg
    W 98 02 81
    # ASI 配置: I2S, 32位模式
    W 98 07 70

    #通过 I2C 写入 P0_R60将 CH1_INSRC 配置为数字 PDM 输入
    W 98 3C 40

    #通过 I2C 写入 P0_R60将 CH2_INSRC 配置为数字 PDM 输入
    W 98 41 40

    #通过 I2C 写入 P0_R34将 PDMCLK1_GPO1配置为 PDMCLK
    W 98 22 41

    #通过 I2C 写入 P0_R43将 PDMDIN1_GPI1配置为 PDMDIN1
    W 98 2B 40

    # PDM 输入通道/2使能
    宽98 73 c0
    #ASI 输出通道/2启用
    宽98 74 c0

    #加电 PDM 转换器和 PLL 通过 I2C 写入 P0_R117
    宽98 75 60

    #应用 FSYNC = 48kHz 且 BCLK = 3.072 MHz 和
    #开始录制数据通过主机上的 ASI 总线与 I2S 协议32位信道字长

    第一步,将48kHz 的 FSYNC 和3.072MHz 的 BCLK 应用到器件。

    将 BCLK 设置为 3.072 MHz 且 FSYNC = 48kHz 后、我们发现 PDM 时钟成功输出到 PDM 麦克风。

    3.检查是否出现 PDM 时钟。 如果未出现、请参阅 ASI_STS 寄存器以确定

    ASI 状态寄存器为0x44、如数据表说明。

    最后,我们尝试了测试音频数据,它可以被正确地记录。

    下面是使用 Audacity 工具的麦克风记录结果。

    感谢你的帮助。

    此致、

    盛华  

x 出现错误。请重试或与管理员联系。