TI中文支持网
TI专业的中文技术问题搜集分享网站

使用adau1961和tas2505芯片录音/播放噪声非常大

Other Parts Discussed in Thread:TAS2505

您好:

(1)我这边使用adau1961 codec进行录音,发现录制的音频文件噪声非常大,请问有什么办法可以优化么,我这边已经排除MIC导入噪声的可能,实际使用AMIC。

(2)我这边使用tas2505作为pa接speaker播放一个wav文件,发现同样噪声非常大,请问有改善的方法么?

单击此处播放此音频剪辑
(function(id)
{
var v = document.getElementById(id);var op = v.style.position, ol = v.style.left, or = v.style.right, fe = [],
checkVideo = function() {
if (!v.canPlayType || v.error) {
while (v.childNodes.length > 0) {
v.parentNode.insertBefore(v.childNodes[0], v);
}
v.parentNode.removeChild(v);
} else if (v.readyState == 0) {
window.setTimeout(checkVideo, 249);
}
},
checkVideoRendered = function() {
if (v.networkState == 1 && v.readyState == 4) {
v.style.position = op;
v.style.left = ol;
v.style.right = or;
for (var i = 0; i < fe.length; i++) {
fe[i].parentNode.removeChild(fe[i]);
}
} else {
window.setTimeout(checkVideoRendered, 249);
}
}
if (navigator.userAgent.indexOf('iPad') == -1 && navigator.userAgent.indexOf('iPhone') == -1 && navigator.userAgent.indexOf('iPod') == -1) {
window.setTimeout(checkVideo, 249);
}
})('a_0f5694d34e324947881a2352993c7086');

adau1961寄存器配置

static const struct reg_default adau1761_reg_defaults[] = {
{ ADAU1761_DEJITTER, 0x03 },
{ ADAU1761_DIGMIC_JACKDETECT, 0x00 },
{ ADAU1761_REC_MIXER_LEFT0, 0x00 },
{ ADAU1761_REC_MIXER_LEFT1, 0x00 },
{ ADAU1761_REC_MIXER_RIGHT0, 0x00 },
{ ADAU1761_REC_MIXER_RIGHT1, 0x00 },
{ ADAU1761_LEFT_DIFF_INPUT_VOL, 0x00 },
{ ADAU1761_RIGHT_DIFF_INPUT_VOL, 0x00 },
{ ADAU1761_PLAY_LR_MIXER_LEFT, 0x00 },
{ ADAU1761_PLAY_MIXER_LEFT0, 0x00 },
{ ADAU1761_PLAY_MIXER_LEFT1, 0x00 },
{ ADAU1761_PLAY_MIXER_RIGHT0, 0x00 },
{ ADAU1761_PLAY_MIXER_RIGHT1, 0x00 },
{ ADAU1761_PLAY_LR_MIXER_RIGHT, 0x00 },
{ ADAU1761_PLAY_MIXER_MONO, 0x00 },
{ ADAU1761_PLAY_HP_LEFT_VOL, 0x00 },
{ ADAU1761_PLAY_HP_RIGHT_VOL, 0x00 },
{ ADAU1761_PLAY_LINE_LEFT_VOL, 0x00 },
{ ADAU1761_PLAY_LINE_RIGHT_VOL, 0x00 },
{ ADAU1761_PLAY_MONO_OUTPUT_VOL, 0x00 },
{ ADAU1761_POP_CLICK_SUPPRESS, 0x00 },
{ ADAU1761_JACK_DETECT_PIN, 0x00 },
{ ADAU1761_CLK_ENABLE0, 0x00 },
{ ADAU1761_CLK_ENABLE1, 0x00 },
{ ADAU17X1_CLOCK_CONTROL, 0x00 },
{ ADAU17X1_PLL_CONTROL, 0x00 },
{ ADAU17X1_REC_POWER_MGMT, 0x00 },
{ ADAU17X1_MICBIAS, 0x00 },
{ ADAU17X1_SERIAL_PORT0, 0x00 },
{ ADAU17X1_SERIAL_PORT1, 0x00 },
{ ADAU17X1_CONVERTER0, 0x00 },
{ ADAU17X1_CONVERTER1, 0x00 },
{ ADAU17X1_LEFT_INPUT_DIGITAL_VOL, 0x00 },
{ ADAU17X1_RIGHT_INPUT_DIGITAL_VOL, 0x00 },
{ ADAU17X1_ADC_CONTROL, 0x00 },
{ ADAU17X1_PLAY_POWER_MGMT, 0x00 },
{ ADAU17X1_DAC_CONTROL0, 0x00 },
{ ADAU17X1_DAC_CONTROL1, 0x00 },
{ ADAU17X1_DAC_CONTROL2, 0x00 },
{ ADAU17X1_SERIAL_PORT_PAD, 0xaa },
{ ADAU17X1_CONTROL_PORT_PAD0, 0xaa },
{ ADAU17X1_CONTROL_PORT_PAD1, 0x00 },
{ ADAU17X1_DSP_SAMPLING_RATE, 0x01 },
{ ADAU17X1_SERIAL_INPUT_ROUTE, 0x00 },
{ ADAU17X1_SERIAL_OUTPUT_ROUTE, 0x00 },
{ ADAU17X1_DSP_ENABLE, 0x00 },
{ ADAU17X1_DSP_RUN, 0x00 },
{ ADAU17X1_SERIAL_SAMPLING_RATE, 0x00 },
};

tas2505寄存器配置

//tas2505_reg_initials
static const struct reg_default tas2505_reg_initials[] = {
//{ 0x00, 0x00 },
//{ 0x01, 0x01 },
//{ 0x00, 0x01 },
{ 0x80 + 0x02, 0x04 },
//{ 0x00, 0x00 },
{ 0x04, 0x03 },
{ 0x05, 0x94 },
{ 0x06, 0x07 },
{ 0x07, 0x00 },
{ 0x08, 0x00 },
// 15ms delay
{ 0x0B, 0x82 },
{ 0x0C, 0x87 },
{ 0x0D, 0x00 },
{ 0x0E, 0x80 },
{ 0x19, 0x00 },
{ 0x1A, 0x01 },
{ 0x1B, 0x20 },
{ 0x1C, 0x00 },
{ 0x1D, 0x00 },
{ 0x1E, 0x01 },
{ 0x1F, 0x00 },
{ 0x20, 0x00 },
{ 0x21, 0x00 },
{ 0x22, 0x00 },
{ 0x30, 0x00 },
{ 0x31, 0x00 },
{ 0x34, 0x00 },
{ 0x35, 0x12 },
{ 0x36, 0x02 },
{ 0x37, 0x02 },
{ 0x38, 0x02 },
{ 0x3C, 0x01 },
{ 0x3F, 0x91 },
//{ 0x00, 0x01 },
{ 0x80 + 0x01, 0x00 },
{ 0x80 + 0x03, 0x00 },
{ 0x80 + 0x0A, 0x00 },
{ 0x80 + 0x0B, 0x00 },
{ 0x80 + 0x0C, 0x16 },
{ 0x80 + 0x16, 0x75 },
{ 0x80 + 0x18, 0x00 },
{ 0x80 + 0x09, 0x00 },
{ 0x80 + 0x10, 0x40 },
{ 0x80 + 0x2E, 0x00 },
{ 0x80 + 0x30, 0x10 },
{ 0x80 + 0x2D, 0x02 },
//{ 0x00, 0x00 },
{ 0x41, 0x00 },
{ 0x40, 0x04 },
};

Amy Luo:

您好,adau1961是ADI公司的产品,请寻求ADI公司的支持;
tas2505播放的WAV文件本身是不是清晰的没有噪声的?您可以注释一下tas2505寄存器设置吗,这样方便大家阅读

,

Yue Ding:

您好:

我给贴了一下注释,这样您看是否方便

//tas2505_reg_initials
static const struct reg_default tas2505_reg_initials[] = {//{ 0x00, 0x00 },//{ 0x01, 0x01 },//{ 0x00, 0x01 },{ 0x80 + 0x02, 0x04 },//LDO Control Register//{ 0x00, 0x00 },{ 0x04, 0x03 },//Clock Setting Register 1, Multiplexers{ 0x05, 0x94 },//Clock Setting Register 2, PLL P and R Values{ 0x06, 0x07 },//Clock Setting Register 3, PLL J Values{ 0x07, 0x00 },//Clock Setting Register 4, PLL D Values (MSB){ 0x08, 0x00 },//Clock Setting Register 5, PLL D Values (LSB)// 15ms delay{ 0x0B, 0x82 },//Clock Setting Register 6, NDAC Values{ 0x0C, 0x87 },//Clock Setting Register 7, MDAC Values{ 0x0D, 0x00 },//DAC OSR Setting Register 1, MSB Value{ 0x0E, 0x80 },//DAC OSR Setting Register 2, LSB Value{ 0x19, 0x00 },//Clock Setting Register 10, Multiplexers{ 0x1A, 0x01 },//Clock Setting Register 11, CLKOUT M divider value{ 0x1B, 0x20 },//Audio Interface Setting Register 1{ 0x1C, 0x00 },//Audio Interface Setting Register 2, Data offset setting{ 0x1D, 0x00 },//Audio Interface Setting Register 3{ 0x1E, 0x01 },//Clock Setting Register 12, BCLK N Divider{ 0x1F, 0x00 },//Audio Interface Setting Register 4, Secondary Audio Interface{ 0x20, 0x00 },//Audio Interface Setting Register 5{ 0x21, 0x00 },//Audio Interface Setting Register 6{ 0x22, 0x00 },//Digital Interface Misc. Setting Register{ 0x30, 0x00 },//INT1 Interrupt Control Register{ 0x31, 0x00 },//INT2 Interrupt Control Register{ 0x34, 0x00 },//GPIO/DOUT Control Register{ 0x35, 0x12 },//DOUT Function Control Register{ 0x36, 0x02 },//DIN Function Control Register{ 0x37, 0x02 },//MISO Function Control Register{ 0x38, 0x02 },//SCLK/DMDIN2 Function Control Register{ 0x3C, 0x01 },//DAC Instruction Set{ 0x3F, 0x91 },//DAC Channel Setup Register 1//{ 0x00, 0x01 },{ 0x80 + 0x01, 0x00 },//REF, POR and LDO BGAP Control Register{ 0x80 + 0x03, 0x00 },//Playback Configuration Register 1{ 0x80 + 0x0A, 0x00 },//Common Mode Control Register{ 0x80 + 0x0B, 0x00 },//HP Over Current Protection Configuration Register{ 0x80 + 0x0C, 0x16 },//HP Routing Selection Register{ 0x80 + 0x16, 0x75 },//HP Volume Control Register{ 0x80 + 0x18, 0x00 },//AINL Volume Control Register{ 0x80 + 0x09, 0x00 },//Output Drivers, AINL, AINR, Control Register{ 0x80 + 0x10, 0x40 },//HP Driver Gain Setting Register{ 0x80 + 0x2E, 0x00 },//Speaker Volume Control Register{ 0x80 + 0x30, 0x10 },//Speaker Amplifier Volume Control 2{ 0x80 + 0x2D, 0x02 },//Speaker Amplifier Control 1//{ 0x00, 0x00 },{ 0x41, 0x00 },//DAC Channel Setup Register 2{ 0x40, 0x04 },//DAC Channel Digital Volume Control Register
};

,

Amy Luo:

非常抱歉回复这么晚!
感谢您做的注释,您可以附上您的原理图吗,您使用的MCLK, WCLK ,BCLK 值是多少

,

Amy Luo:

您好,您的问题解决了吗,如果还没有解决,您可以提供我上一个帖子所提到的信息吗

,

Yue Ding:

抱歉,最近才看到。

MCLK我们给定的是12.28MHz,但是实际上是浮动的,如下图。

BCLK

WCLK

,

Amy Luo:

您是用电压探头测量的吗,因为我看示波器图中单位是1.00A,并且MCLK是315HZ,请您确认一下

,

sun jin:

是的,用用示波器探头测量的

,

Amy Luo:

您好,MCLK您给定的是12.28MHz,而测得是315HZ,这是不正常的,您有尝试断开tas2505,仅测主控端发出的MCLK是否为12.28MHz?
另外请检查您的示波器设置和探头的使用情况,看是否由示波器的问题引起的

,

sun jin:

您好,其实我刚才的测量点就是又CPU送过来的,正常MCLK应该是固定在12.28MHz是么,如果MCLK不对,Spk也可以出声是么?

,

sun jin:

你好:

我这边调整驱动和设备树,目前MCLK和BCLK还有WCLK的频率都OK了,如下:

MCLK固定在12.288MHz

BCLK固定在1.5MHz

WCLK是48KHz

目前噪音明显改善。

,

Amy Luo:

感谢您的反馈,目前噪音性能是否满足您的设计要求了呢,是否需要我们做进一步的支持?

,

sun jin:

目前看来不需要了,后续如果有再沟通,谢谢!

,

Amy Luo:

好的,感谢您的反馈

赞(0)
未经允许不得转载:TI中文支持网 » 使用adau1961和tas2505芯片录音/播放噪声非常大
分享到: 更多 (0)