大家好、
电路是 TLV320AIC3101数据表的典型应用。 我们开始使用 TLV320AIC3101进行录制、声音大约为0.4秒。 这是正常的吗? 显示器上、有明显的噼啪声。 是否有办法解决这个问题?
此致、
罗美
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.
大家好、
电路是 TLV320AIC3101数据表的典型应用。 我们开始使用 TLV320AIC3101进行录制、声音大约为0.4秒。 这是正常的吗? 显示器上、有明显的噼啪声。 是否有办法解决这个问题?
此致、
罗美
您好、Steve、
感谢您的回答。
空 InitCodec()
{
volatile unsigned int delay = 0xFFF;
/*选择第0页*/
CodecRegWrite (AIC31_P0_REG0、0、sizeof (CodecWrite));
/*重置编解码器*/
CodecRegWrite (AIC31_P0_REG1、AIC31_RESET、sizeof (CodecWrite));
while (delay--);
CodecRegWrite (AIC31_P0_REG9、(0U << 6U | 2U << 4U)、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG10、0、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG8、0x00、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG7、0x0A、sizeof (CodecWrite));
//设置 ADC
CodecRegWrite (AIC31_P0_REG15、0x00、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG16、0x00、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG17、0x0F、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG18、0xF0、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG25、0x40、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG19、0x04、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG22、0x04、sizeof (CodecWrite));
//设置 DAC
CodecRegWrite (AIC31_P0_REG37、0xE0、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG41、0x02、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG42、0x6C、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG47、0x80、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG46、0x80、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG51、0x01、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG64、0x80、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG63、0x80、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG65、0x01、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG43、0x00、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG44、0x00、sizeof (CodecWrite));
CyDelay(500);
CodecRegWrite (AIC31_P0_REG51、0x09、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG65、0x09、sizeof (CodecWrite));
}
此致、
罗美
Amy、
以下是我的建议:
volatile unsigned int delay = 0xFFF;
/*选择第0页*/
CodecRegWrite (AIC31_P0_REG0、0、sizeof (CodecWrite));
/*重置编解码器*/
CodecRegWrite (AIC31_P0_REG1、AIC31_RESET、sizeof (CodecWrite));
while (delay--);
CodecRegWrite (AIC31_P0_REG9、(0U << 6U | 2U << 4U)、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG10、0、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG8、0x00、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG7、0x0A、sizeof (CodecWrite));
//设置 ADC
CodecRegWrite (AIC31_P0_REG15、0x00、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG16、0x00、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG17、0x0F、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG18、0xF0、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG25、0x40、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG19、0x04、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG22、0x04、sizeof (CodecWrite));
//设置 DAC
CodecRegWrite (AIC31_P0_REG37、0xE0、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG41、0x02、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG42、0x6C、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG47、0x80、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG46、0x80、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG51、0x01、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG64、0x80、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG63、0x80、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG65、0x01、sizeof (CodecWrite));
//下面的延迟应与 寄存器42中设置的斜升时间匹配。 这是为了允许输出上电。交替等待、直到寄存器94 D1 ="1"。
CyDelay(500);
CodecRegWrite (AIC31_P0_REG51、0x09、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG65、0x09、sizeof (CodecWrite));
// 下面的延迟是软步进的函数。 如果设置为每样本1步,则为508/FS。 如果设置为每2个样本1步进、则为1016/FS。
CyDelay (500)
CodecRegWrite (AIC31_P0_REG43、0x00、sizeof (CodecWrite));
CodecRegWrite (AIC31_P0_REG44、0x00、sizeof (CodecWrite));
//下面的延迟是软步进的函数。 如果设置为每样本1步,则为508/FS。 如果设置为每2个样本1步进、则为1016/FS。
CyDelay(500);
}
如果您可以利用 HPOUT 上的弱偏置、 这将消除上电时的任何残余杂音。 因此、如果您在器件首次初始化时启用弱偏置、 这将达到目的。 当然、启用此功能时会产生轻微的电流消耗。 因此、请确保您可以接受它。
此致、
-Steve Wilson