您好!
我在 高摆幅模式下使用 PCM6480-Q1、
当我提供一个10Hz 正弦波输入、并且信号大于1V rms 时、信号的下半部分将在通过隔直流电容器后失真。

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

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

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

请提供一些建议。
感谢你的帮助。
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、
当我提供一个10Hz 正弦波输入、并且信号大于1V rms 时、信号的下半部分将在通过隔直流电容器后失真。

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

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

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

请提供一些建议。
感谢你的帮助。
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_NUM、GPIO_OUT);
SET_gpioValue (CODEC_EN_PORT_NUM、GPIO_LOW);
QThread::msleep (50);
SET_gpioValue (CODEC_EN_PORT_NUM、GPIO_HIGH);
QThread::msleep (50);
//48K 32位 I2S
//#已将 SHDNZ 释放为 HIGH。
//#等待1毫秒。
//#通过 I2C 使用内部 Areg 写入 P0_R2来唤醒设备
// w 90 02 01
I2C_writeData (0x02、0x01);
//#在故障检测(过热等)时关闭 MICBIAS 和 ADC 通道
// w 90 28 10.
I2C_writeData (0x28、0x10);
#if 1.
I2C_readDatas (0x28、ReadData、1);
qDebug()<<"ReadData[0]:"<< ReadData[0];
//启用可编程 IIR 滤波器
//0x6b 0x00
I2C_writeData (0x6B、0x00);
//第4页
//0x00 0x04
I2C_writeData (0x00、0x04);
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 (0x48、writedata、4);
//N1 P4_R76-79 8002 2501.
writedata[0]= 0x80;
writedata[1]= 0x02;
writedata[2]= 0x25;
writedata[3]= 0x01;
I2C_writeDatas (0x4C、writedata、4);
//N2 P4_R80-83 7FFB B600
writedata[0]= 0x7F;
writedata[1]= 0xFB;
writedata[2]= 0xB6;
writedata[3]= 0x00;
I2C_writeDatas (0x50、writedata、4);
//页0
//0x00 0x00
I2C_writeData (0x00、0x00);
QThread::msleep (10);
#endif
#if 1.
//micbias 9V
// w 90 3B D0
I2C_writeData (0x3B、0xF0);
//微偏置17.2ma
//第1页
//0x00 0x01
I2C_writeData (0x00、0x01);
QThread::msleep (10);
// w 90 16 c0
I2C_writeData (0x16、0xC0);
//页0
//0x00 0x00
I2C_writeData (0x00、0x00);
QThread::msleep (10);
#endif
//#将通道1交流耦合单麦克风输入配置为高摆幅模式
// w 90 3C 08.
I2C_writeData (0x3C、0xA8);
//// W 90 3D 48.
//#将通道2交流耦合单麦克风输入配置为高摆幅模式
// w 90 41 08
I2C_writeData (0x41、0xA8);
//#将通道3交流耦合单麦克风输入配置为高摆幅模式
// w 90 46 08.
I2C_writeData (0x46、0xA8);
//#将通道4交流耦合单麦克风输入配置为高摆幅模式
// w 90 4B 08.
I2C_writeData (0x4B、0xA8);
//#通过 I2C 写入 P0_R115来启用通道1到通道2的输入
// w 90 73 C0
I2C_writeData (0x73、0xC0);
//#通过 I2C 写入 P0_R116,启用 ASI 输出通道1到通道2插槽
// w 90 74 C0
I2C_writeData (0x74、0xC0);
//#通过 I2C 写入 P0_R117,在 MICBIAS 和 PLL 上为 ADC 加电
// w 90 75 E0
I2C_writeData (0x75、0xE0);
// 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 (0x64、0xC0);
我将整理其他详细信息、稍后将发布。
谢谢。
下面是我确认的:
1、我使用 I2CTool 确认寄存器值、它与写入的值完全相同。
2、用于直流模式测量的电容器已更改为22uF、连接到 micbias 的电阻器为1.2k 欧姆。
在1V rms 输入下、10Hz 时没有失真。
在输入为3V rms 时、音频在28Hz 左右开始不失真。

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

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