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.

[参考译文] PCM6480-Q1:较大低频信号失真

Guru**** 2477065 points
Other Parts Discussed in Thread: PCM6480-Q1

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1209977/pcm6480-q1-distortion-of-large-low-frequency-signals

器件型号:PCM6480-Q1

您好!

 我在 高摆幅模式下使用 PCM6480-Q1、  

 当我提供一个10Hz 正弦波输入、并且信号大于1V rms 时、信号的下半部分将在通过隔直流电容器后失真。

 我们的设计原理图如下所示:

查看论坛后发现微偏置需要设置、所以按照原理图增加了9V 偏置。

我目前使用的上拉电阻器为4.3k、我发现波形仍然失真、形式不同。

请提供一些建议。

感谢你的帮助。

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

    您是否已将位 CH1_MIC_IN_RANGE 设置为1?

    cn 您 是否请将示波器设置为直流耦合时引脚上的波形发送给我?

    另外、如果频率更改为1kHz、波形是否可以?

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

    1.我已将通道1的 MIC_IN_RANGE 位设置为1。

    这是我使用 I2CTool 获得的寄存器值:

     

    2.以下是示波器的直流耦合模式图像:(输入信号的交流有效值为3.2Vrms)

    3.我们目前使用的布局如下

     当输入达到5V rms 时、1kHz 信号仍然没有失真。

    5.这是我用于配置 PCM6480-Q1的代码。

     

      initGpio_export (CODEC_EN_PORT_NUM);

      SET_GpioDirection (CODEC_EN_PORT_NUMGPIO_OUT);

      SET_gpioValue (CODEC_EN_PORT_NUMGPIO_LOW);

      QThread::msleep (50);

      SET_gpioValue (CODEC_EN_PORT_NUMGPIO_HIGH);

      QThread::msleep (50);

      //48K 32位 I2S

      //#将 SHDNZ 释放为 HIGH。

      //#等待1毫秒。

      //#通过 I2C 使用内部 Areg 写入 P0_R2来唤醒设备

      // w 90 02 01

      I2C_writeData (0x020x01);

      //#在故障检测(过热等)时关闭 MICBIAS 和 ADC 通道

      // w 90 28 10.

      I2C_writeData (0x280x10);

      #if 1.

      I2C_readDatas (0x28ReadData1);

      qDebug()<<"ReadData[0]:"<< ReadData[0]

      //启用可编程 IIR 滤波器

      //0x6b 0x00

      I2C_writeData (0x6B0x00);

      //第4页

      //0x00 0x04

      I2C_writeData (0x000x04);

      QThread::msleep (10);

      QThread::msleep (10);

      //// N0_R72-75  7FFD DAFF

      writedata[0]= 0x7F

      writedata[1]= 0xFD

      writedata[2]= 0xDA;

      writedata[3]= 0xFF

      I2C_writeDatas (0x48writedata4);

      //N1 P4_R76-79 8002 2501.

      writedata[0]= 0x80

      writedata[1]= 0x02

      writedata[2]= 0x25

      writedata[3]= 0x01

      I2C_writeDatas (0x4Cwritedata4);

      //N2 P4_R80-83 7FFB B600

      writedata[0]= 0x7F

      writedata[1]= 0xFB

      writedata[2]= 0xB6

      writedata[3]= 0x00

      I2C_writeDatas (0x50writedata4);

      //页0

      //0x00 0x00

      I2C_writeData (0x00、0x00);

      QThread::msleep (10);

      #endif

      #if 1.

      //micbias 9V

      // w 90 3B D0

      I2C_writeData (0x3B0xF0);

      //微偏置17.2ma

      //第1页

      //0x00 0x01

      I2C_writeData (0x000x01);

      QThread::msleep (10);

      // w 90 16 c0

      I2C_writeData (0x160xC0);

      //页0

      //0x00 0x00

      I2C_writeData (0x00、0x00);

      QThread::msleep (10);

      #endif

      //#将通道1交流耦合单麦克风输入配置为高摆幅模式

      // w 90 3C 08.

      I2C_writeData (0x3C0xA8);

      //// W 90 3D 48.

      //#将通道2交流耦合单麦克风输入配置为高摆幅模式

      // w 90 41 08

      I2C_writeData (0x410xA8);

      //#将通道3交流耦合单麦克风输入配置为高摆幅模式

      // w 90 46 08.

      I2C_writeData (0x460xA8);

      //#将通道4交流耦合单麦克风输入配置为高摆幅模式

      // w 90 4B 08.

      I2C_writeData (0x4B0xA8);

      //#通过 I2C 写入 P0_R115来启用通道1到通道2的输入

      // w 90 73 C0

      I2C_writeData (0x730xC0);

      //#通过 I2C 写入 P0_R116,启用 ASI 输出通道1到通道2插槽

      // w 90 74 C0

      I2C_writeData (0x740xC0);

      //#通过 I2C 写入 P0_R117,在 MICBIAS 和 PLL 上为 ADC 加电

      // w 90 75 E0

      I2C_writeData (0x750xE0);

      // i2c_writeData (0x75、0x60);

      //#应用 FSYNC = 48kHz 且 BCLK = 12MHz、并且

      //#通过主机在 ASI 总线上使用 I2S 协议32位通道字长开始记录数据

      //#等待10毫秒。

      USleep (10000);

      USleep (10000);

      //#通过 I2C 写入 P0_R100来启用通道1到通道2的诊断

      // w 90 64 F0

      I2C_writeData (0x640xC0);

     

    我将整理其他详细信息、稍后将发布。

    谢谢。

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

    下面是我确认的:

    1我使用 I2CTool 确认寄存器值、它与写入的值完全相同。

    2用于直流模式测量的电容器已更改为22uF、连接到 micbias 的电阻器为1.2k 欧姆。

     

    在1V rms 输入下、10Hz 时没有失真。

    在输入为3V rms 时、音频在28Hz 左右开始不失真。

    在输入为5V rms 时、音频在42Hz 左右开始不失真。

    此外、当并联多个22uF 电容器时、会发现失真频率会降低。

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

    我发现、在使用22uF 电容器将连接到微偏置的电阻器从1.2K 更改为15K 后、10Hz/4.3V 正弦输入信号仅略微衰减、没有失真。

    该电阻值远远超过了 PCM6xx0-Q1交流耦合 Rext CAC.xlsx 的建议最大值、因此我以前没有尝试过。

    这一发现是否有助于解决问题?

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

    MicBias 上的上拉电阻器和耦合电容器 C 根据形成一个高通滤波器

    截止频率 fc = 1/(2*3.14*R*C)。 15k 和22u fC =0.48Hz 时、因此低频无失真地传递到 ADC。

    您可以为我发送此设置的示波器屏幕截图(示波器直流耦合)吗

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

    以下是没有信号输入时 IN1_P 处的示波器屏幕截图:

    在这里、您可以看到当15KΩ Ω 电阻器连接到 MICBIAS 时、IN1_P 上的电压已降至5.9V

    下面是我获得4V rms 输入(频率为10Hz)时的情况。

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

    引脚上较低的直流电平会影响我们可在引脚上施加的最大信号。

    5.9v 直流意味着最大信号 将是5.9/1.414或4.17VRMS。

    如果您的应用可以这样做、15k 就可以了。

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

    我目前正在考虑12KΩ μ F、22uF、9V 微偏置。 此设置可以使 IN 引脚电压达到6.24V (最大信号4.41V rms)、并且10Hz 时的衰减为0.6dB。 这对于我的应用来说已经足够了。

    感谢你的帮助。