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.

[参考译文] LAUNCHXL-CC26X2R1:i2secho 示例在8K 采样率下具有白噪声

Guru**** 2510095 points
Other Parts Discussed in Thread: CC3200AUDBOOST

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/824801/launchxl-cc26x2r1-i2secho-example-has-white-noise-at-8k-sample-rate

器件型号:LAUNCHXL-CC26X2R1
主题中讨论的其他器件:CC3200AUDBOOST

您好,

我们在最新的 SDK 中运行 i2secho 示例、它工作正常。 但是、当我们将采样率更改为8000时、它将产生噪声。

谢谢。

BR

Trevor

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

    尊敬的 Trevor:

    此噪声可能由回声线无限环路中添加的“数据处理”函数产生。 您能否通过注释这部分代码来验证您是否解决了问题?

    此致、

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

     您好、Cl é ment、  

    我已经注释 掉 了这部分代码、它仍然具有8000采样率下的噪声。

    谢谢。

    BR

    Trevor  

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

    您好!

    只需确保:您是否遇到"噪声"、或者由于采样率较低、它基本上是音频质量较低?

    这也可能是由于编解码器设置造成的:您是使用 i2secho 示例“原样”(只是更改采样频率)还是修改了其他内容? (I2S 从器件、编解码器参数…)

    此致、

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

     您好、Cl é ment、

    我看到设置较低的采样率是否会影响音频质量。 但是、对于这种噪声、即使我拔下线路输入电缆、也会始终发生这种情况。 我认为根本原因与 I2S 驱动程序或编解码器设置有关。

    我 没有对 i2secho.c 进行任何修改,我只是评论 了“数据处理”函数。

    谢谢。

    BR

    Trevor

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

    您好!

    我不认为驱动器在特定采样率下会产生噪声。 但是、您可以使用逻辑分析仪验证 WS 和 SCK 信号是否具有预期的频率(您还可以验证是否获得预期的帧格式)。

    我认为编解码器设置不是很好。 您可以尝试修改这些设置以获得更好的音质。 您可以尝试以下设置吗? (您只需将此代码粘贴到 AudioCodec.c 中的 AudioCodec_config()函数的开关中)

    案例8000:// fs = 8kHz、BCLK = PLL 的输入、BCLK = 256kHz
    AudioCodec_pageSelect (TI3254_PAGE_0);
    
    AudioCodec_regWrite (TI3254_CLK_MUX_REG、0x13); // PLL 时钟为 CODEC CLKIN
    AudioCodec_regWrite (TI3254_CLK_PLL_P_R_REG、0x80 | 0x10 | 0x02);// PLL 上电、P=1、R=2
    AudioCodec_regWrite (TI3254_CLK_PLL_J_REG、0x008); // J=8
    AudioCodec_regWrite (TI3254_CLK_PLL_D_MSB_REG、0x00);// D = 0000
    AudioCodec_regWrite (TI3254_CLK_PLL_D_LSB_REG、0x00);// D = 0000
    
    AudioCodec_regWrite (TI3254_CLK_NDAC_REG、0x80 | 0x01); // NDAC 分压器加电,NDAC = 1
    AudioCodec_regWrite (TI3254_CLK_MDAC_REG、0x80 | 0x04); // MDAC 分频器加电,MDAC = 4
    AudioCodec_regWrite (TI3254_DAC_OSR_MSB_REG、0x00);// DOSR = 0x0080 = 128
    AudioCodec_regWrite (TI3254_DAC_OSR_LSB_REG、0x80);// DOSR = 0x0080 = 128
    
    AudioCodec_regWrite (TI3254_CLK_NADC_REG、0x80 | 0x01); // NADC 分压器加电,NADC = 1
    AudioCodec_regWrite (TI3254_CLK_mAdc_REG、0x80 | 0x04); // mAdc 分频器加电、mAdc = 4
    AudioCodec_regWrite (TI3254_ADC_OSR_REG、0x80); // AOSR = 128 ((与 PRB_R1至 PRB_R6配合使用、ADC 滤波器类型 A)
    中断;
    

    此致、

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

     您好、Cl é ment、

    关于您的编解码器设置、它似乎解决了噪声问题。 我将执行更多实验测试。

    关于 I2S 驱动器和编解码器的设置、它能否支持4000采样率???

    谢谢。

    BR

    Trevor

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

    尊敬的 Trevor:

    没有任何因素会阻止驱动器和驱动器在4kHz 频率下工作。

    在驾驶员一侧,您基本上需要将 i2sParams.samplingFrequency 设置为4000。

    在编解码器方面,可能需要调整设置。 第一次尝试时、您可以保留与8KHz 设置相同的设置(我在上一条消息中给出的设置)。 然后、您可以尝试以下设置:

    情况4000:// fs = 4kHz、BCLK = PLL 输入、BCLK = 128kHz
    AudioCodec_pageSelect (TI3254_PAGE_0);
    
    AudioCodec_regWrite (TI3254_CLK_MUX_REG、0x13); // PLL 时钟为 CODEC CLKIN
    AudioCodec_regWrite (TI3254_CLK_PLL_P_R_REG、0x80 | 0x10 | 0x04);// PLL 上电、P=1、R=4
    AudioCodec_regWrite (TI3254_CLK_PLL_J_REG、0x008); // J=8
    AudioCodec_regWrite (TI3254_CLK_PLL_D_MSB_REG、0x00);// D = 0000
    AudioCodec_regWrite (TI3254_CLK_PLL_D_LSB_REG、0x00);// D = 0000
    
    AudioCodec_regWrite (TI3254_CLK_NDAC_REG、0x80 | 0x01); // NDAC 分压器加电,NDAC = 1
    AudioCodec_regWrite (TI3254_CLK_MDAC_REG、0x80 | 0x08); // MDAC 分频器加电,MDAC = 8
    AudioCodec_regWrite (TI3254_DAC_OSR_MSB_REG、0x00);// DOSR = 0x0080 = 128
    AudioCodec_regWrite (TI3254_DAC_OSR_LSB_REG、0x80);// DOSR = 0x0080 = 128
    
    AudioCodec_regWrite (TI3254_CLK_NADC_REG、0x80 | 0x01); // NADC 分压器加电,NADC = 1
    AudioCodec_regWrite (TI3254_CLK_mAdc_REG、0x80 | 0x08); // mAdc 分频器加电、mAdc = 8
    AudioCodec_regWrite (TI3254_ADC_OSR_REG、0x80); // AOSR = 128 ((与 PRB_R1至 PRB_R6配合使用、ADC 滤波器类型 A)
    中断;
    

    我希望这将有所帮助。

    此致、

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

     您好、Cl é ment、

    感谢您的帮助、我尝试了8K 和4K 编解码器设置、它将在4kHz 时产生噪声。  

    BR

    Trevor

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

    尊敬的 Trevor:

    实际上、我们在这里达到了编解码器的极限。 实际上、输入时钟频率(即 BCLK)越低、质量越低。

    我在这里的最佳建议是增加 BCLK 的频率(保持 WCLK 的相同频率以保持4kHz 采样率)。 为此,最好的解决办法是添加“填充后”。 我添加了48位后填充(使 BCLK 大约为512kHz)。 以下是我的代码:

    • 此代码用于修改 I2S 驱动程序的设置

     

    I2S_Params i2sParams;
    I2S_PARAMS_INIT (&i2sParams);
    i2sParams.samplingFrequency = sample_rate;/* 4000 Hz*/
    i2sParams.fterWordPadding = 48;
    i2sParams.fixedBufferLength = BUFSIZE;
    i2sParams.writeCallback = writeCallbackFxn;
    i2sParams.readCallback = readCallbackFxn;
    i2sParams.errorCallback = errCallbackFxn;
    i2sHandle = I2S_open (Board_I2S0、&i2sParams); 

    • 此代码用于修改编解码器的设置

     

    情况4000:// fs = 4kHz、BCLK = PLL 的输入、BCLK = 512kHz (必须添加48位后填充)
    AudioCodec_pageSelect (TI3254_PAGE_0);
    
    AudioCodec_regWrite (TI3254_CLK_MUX_REG、0x13); // PLL 时钟为 CODEC CLKIN
    AudioCodec_regWrite (TI3254_CLK_PLL_P_R_REG、0x80 | 0x10 | 0x04);// PLL 上电、P=1、R=4
    AudioCodec_regWrite (TI3254_CLK_PLL_J_REG、0x036); // J=54
    AudioCodec_regWrite (TI3254_CLK_PLL_D_MSB_REG、0x00);// D = 0000
    AudioCodec_regWrite (TI3254_CLK_PLL_D_LSB_REG、0x00);// D = 0000
    
    AudioCodec_regWrite (TI3254_CLK_NDAC_REG、0x80 | 0x12); // NDAC 分压器加电,NDAC = 18
    AudioCodec_regWrite (TI3254_CLK_MDAC_REG、0x80 | 0x0C); // MDAC 分频器加电,MDAC = 12
    AudioCodec_regWrite (TI3254_DAC_OSR_MSB_REG、0x00);// DOSR = 0x0080 = 128
    AudioCodec_regWrite (TI3254_DAC_OSR_LSB_REG、0x80);// DOSR = 0x0080 = 128
    
    AudioCodec_regWrite (TI3254_CLK_NADC_REG、0x80 | 0x12); // NADC 分压器加电,NADC = 18
    AudioCodec_regWrite (TI3254_CLK_mAdc_REG、0x80 | 0x0C); // mAdc 分频器加电、mAdc = 12
    AudioCodec_regWrite (TI3254_ADC_OSR_REG、0x80); // AOSR = 128 ((与 PRB_R1至 PRB_R6配合使用、ADC 滤波器类型 A)
    中断; 

     注意:这些设置不能在 CC32XX 上使用(不允许在填充之后使用)

    此致、

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

     您好、Cl é ment、  

    抱歉、编解码器的输入时钟频率越低? 您能不能再重放一下。

    对于您的最新设置、噪音仍然存在(但会变小)。

    我们的定制板、输入时钟可以更改为 MCLK、如果我们使用 MCLK 作为输入时钟、我们是否可以解决4kHz 时的噪声问题?

    谢谢。

    BR

    Trevor

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

    您好!

    如果您可以将输入时钟更改为 MCLK (这是不可能的、或者至少在 CC3200AUDBOOST 上不是很容易-在 CC3200AUDBOOST MCLK 和 BCLK 上是短接的)、您肯定可以提高您的音质。 为了将 MCLK 作为一个输入、编解码器已经被设定。 如果不是以下行、则将编解码器设置为 I2S 模式、MCLK 作为输入时钟、16位采样、WCLK 和 BCLK 是编解码器的输入:

    AudioCodec_regWrite (TI3254_AUDIO_IF_1_REG、0x00); 

    现在、您必须在驱动器侧激活 MCLK:为此、您必须为 MCLK 选择引脚(CC26X2R1_LAUNCHXL_I2S_MCLK 必须设置为有效引脚)。 然后、您可以使用 i2sParams.MCLKDivider 选择 MCLK 频率(MCLK 的频率为48MHz/MCLKDivider)。

    如果您有兴趣、我已经为您的编解码器计算了以下参数(假设 MCLK=1MHz):

    情况4000:// fs = 4kHz、MCLK = PLL 的输入、MCLK = 1MHz (MCLKDivider = 48)
    AudioCodec_pageSelect (TI3254_PAGE_0);
    
    AudioCodec_regWrite (TI3254_CLK_MUX_REG、0x13); // PLL 时钟为 CODEC CLKIN
    AudioCodec_regWrite (TI3254_CLK_PLL_P_R_REG、0x80 | 0x10 | 0x04);// PLL 上电、P=1、R=4
    AudioCodec_regWrite (TI3254_CLK_PLL_J_REG、0x020); // J=32
    AudioCodec_regWrite (TI3254_CLK_PLL_D_MSB_REG、0x00);// D = 0000
    AudioCodec_regWrite (TI3254_CLK_PLL_D_LSB_REG、0x00);// D = 0000
    
    AudioCodec_regWrite (TI3254_CLK_NDAC_REG、0x80 | 0x19); // NDAC 分压器加电,NDAC = 25
    AudioCodec_regWrite (TI3254_CLK_MDAC_REG、0x80 | 0x0A); // MDAC 分频器加电,MDAC = 10
    AudioCodec_regWrite (TI3254_DAC_OSR_MSB_REG、0x00);// DOSR = 0x0080 = 128
    AudioCodec_regWrite (TI3254_DAC_OSR_LSB_REG、0x80);// DOSR = 0x0080 = 128
    
    AudioCodec_regWrite (TI3254_CLK_NADC_REG、0x80 | 0x19); // NADC 分压器加电,NADC = 25
    AudioCodec_regWrite (TI3254_CLK_mAdc_REG、0x80 | 0x0A); // mAdc 分频器加电、mAdc = 10
    AudioCodec_regWrite (TI3254_ADC_OSR_REG、0x80); // AOSR = 128 ((与 PRB_R1至 PRB_R6配合使用、ADC 滤波器类型 A)
    中断;
    

    我希望这将有所帮助、

    此致、

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

     您好、Cl é ment、

    我对 CC3200AUDBOOST 做了一些返工、我们已将输入时钟更改为 MCLK。  

    更新测试结果:

    如果我使用以下设置、则它具有较小的噪声(但质量良好)、结果与"48位后填充"相同

    情况4000:// fs = 4kHz、MCLK = PLL 的输入、MCLK = 1MHz (MCLKDivider = 48)
    AudioCodec_pageSelect (TI3254_PAGE_0);
    
    AudioCodec_regWrite (TI3254_CLK_MUX_REG、0x13); // PLL 时钟为 CODEC CLKIN
    AudioCodec_regWrite (TI3254_CLK_PLL_P_R_REG、0x80 | 0x10 | 0x04);// PLL 上电、P=1、R=4
    AudioCodec_regWrite (TI3254_CLK_PLL_J_REG、0x020); // J=32
    AudioCodec_regWrite (TI3254_CLK_PLL_D_MSB_REG、0x00);// D = 0000
    AudioCodec_regWrite (TI3254_CLK_PLL_D_LSB_REG、0x00);// D = 0000
    
    AudioCodec_regWrite (TI3254_CLK_NDAC_REG、0x80 | 0x19); // NDAC 分压器加电,NDAC = 25
    AudioCodec_regWrite (TI3254_CLK_MDAC_REG、0x80 | 0x0A); // MDAC 分频器加电,MDAC = 10
    AudioCodec_regWrite (TI3254_DAC_OSR_MSB_REG、0x00);// DOSR = 0x0080 = 128
    AudioCodec_regWrite (TI3254_DAC_OSR_LSB_REG、0x80);// DOSR = 0x0080 = 128
    
    AudioCodec_regWrite (TI3254_CLK_NADC_REG、0x80 | 0x19); // NADC 分压器加电,NADC = 25
    AudioCodec_regWrite (TI3254_CLK_mAdc_REG、0x80 | 0x0A); // mAdc 分频器加电、mAdc = 10
    AudioCodec_regWrite (TI3254_ADC_OSR_REG、0x80); // AOSR = 128 ((与 PRB_R1至 PRB_R6配合使用、ADC 滤波器类型 A)
    中断; 

    我还尝试了之前的设置、没有噪音、  但质量非常差。

    情况4000:// fs = 4kHz、BCLK = PLL 输入、BCLK = 128kHz
    AudioCodec_pageSelect (TI3254_PAGE_0);
    
    AudioCodec_regWrite (TI3254_CLK_MUX_REG、0x13); // PLL 时钟为 CODEC CLKIN
    AudioCodec_regWrite (TI3254_CLK_PLL_P_R_REG、0x80 | 0x10 | 0x04);// PLL 上电、P=1、R=4
    AudioCodec_regWrite (TI3254_CLK_PLL_J_REG、0x008); // J=8
    AudioCodec_regWrite (TI3254_CLK_PLL_D_MSB_REG、0x00);// D = 0000
    AudioCodec_regWrite (TI3254_CLK_PLL_D_LSB_REG、0x00);// D = 0000
    
    AudioCodec_regWrite (TI3254_CLK_NDAC_REG、0x80 | 0x01); // NDAC 分压器加电,NDAC = 1
    AudioCodec_regWrite (TI3254_CLK_MDAC_REG、0x80 | 0x08); // MDAC 分频器加电,MDAC = 8
    AudioCodec_regWrite (TI3254_DAC_OSR_MSB_REG、0x00);// DOSR = 0x0080 = 128
    AudioCodec_regWrite (TI3254_DAC_OSR_LSB_REG、0x80);// DOSR = 0x0080 = 128
    
    AudioCodec_regWrite (TI3254_CLK_NADC_REG、0x80 | 0x01); // NADC 分压器加电,NADC = 1
    AudioCodec_regWrite (TI3254_CLK_mAdc_REG、0x80 | 0x08); // mAdc 分频器加电、mAdc = 8
    AudioCodec_regWrite (TI3254_ADC_OSR_REG、0x80); // AOSR = 128 ((与 PRB_R1至 PRB_R6配合使用、ADC 滤波器类型 A) 


    BR

    Trevor

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

     您好、Cl é ment、

    您能否帮助为 MCLK 提供8kHz 采样率设置?

    谢谢。

    BR

    Trevor

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

    您好!

    以下是我在 MCLK 作为时钟输入时为8kHz 采样频率计算的设置(MCLK 频率为1MHz)。

    案例8000:// fs = 8kHz、MCLK = PLL 的输入、MCLK = 1MHz (MCLKDivider = 48)
    AudioCodec_pageSelect (TI3254_PAGE_0);
    
    AudioCodec_regWrite (TI3254_CLK_MUX_REG、0x13); // PLL 时钟为 CODEC CLKIN
    AudioCodec_regWrite (TI3254_CLK_PLL_P_R_REG、0x80 | 0x10 | 0x04);// PLL 上电、P=1、R=4
    AudioCodec_regWrite (TI3254_CLK_PLL_J_REG、0x020); // J=32
    AudioCodec_regWrite (TI3254_CLK_PLL_D_MSB_REG、0x00);// D = 0000
    AudioCodec_regWrite (TI3254_CLK_PLL_D_LSB_REG、0x00);// D = 0000
    
    AudioCodec_regWrite (TI3254_CLK_NDAC_REG、0x80 | 0x19); // NDAC 分压器加电,NDAC = 25
    AudioCodec_regWrite (TI3254_CLK_MDAC_REG、0x80 | 0x05); // MDAC 分频器加电,MDAC = 5
    AudioCodec_regWrite (TI3254_DAC_OSR_MSB_REG、0x00);// DOSR = 0x0080 = 128
    AudioCodec_regWrite (TI3254_DAC_OSR_LSB_REG、0x80);// DOSR = 0x0080 = 128
    
    AudioCodec_regWrite (TI3254_CLK_NADC_REG、0x80 | 0x19); // NADC 分压器加电,NADC = 25
    AudioCodec_regWrite (TI3254_CLK_mAdc_REG、0x80 | 0x05); // mAdc 分频器加电、mAdc = 5
    AudioCodec_regWrite (TI3254_ADC_OSR_REG、0x80); // AOSR = 128 ((与 PRB_R1至 PRB_R6配合使用、ADC 滤波器类型 A)
    中断;
    
    

    此致、

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

     您好、Cl é ment、

    感谢你的帮助。

    我总结 了实验结果:

    大约4kHz 和8kHz,我可以听到噪音,我检查了不同的输入时钟(MCLK 和 BCLK)。

    关于4kHz 噪声 , 即使我拔下线路输入电缆,噪音也总是像白噪声一样。

    关于8kHz 的噪声、它仅 在我停止 播放音乐时发生。 噪音持续约2秒。

    你对我有什么建议吗?

    谢谢。

    BR

    Trevor

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

    您好!

    关于您的结果、我想编解码器的设置并不完美。 这可能是因为信号(BCLK、WCLK、MCLK)的频率不完全符合预期。 您能否使用示波器验证 BCLK、WCLK 和 MCLK 的实际频率?

    此致、

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

    您好、Cl é ment、

    我们需要花一些时间准备 示波器、以便为您更新结果。

    谢谢。

    BR

    Trevor

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

    您好、Cl é ment、

    更新测量结果:

    对于8kHz、

    MCLK ~1.007MHz

    BCLK ~8.034KHz

    WCLK ~257KHz

    对于4kHz、

    MCLK ~1.007MHz

    BCLK ~4.029KHz

    WCLK ~129KHz

    你有什么想法吗? 您认为我们需要在"音频论坛"中打开新主题吗?

    BR

    Trevor。

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

    尊敬的 Trevor:

    我假设您切换 BCLK 和 WCLK 频率(BCLK 频率应高于 WCLK 频率)。 这样、您的频率看起来很好(至少您将无法获得更好的精度)。 供参考:我尝试使用您的实际频率进行计算、但结果相同。

    现在、您可以尝试增加 MCLK、看看这是否有帮助。 我为您准备了以下代码:  

    情况4000:// fs = 4kHz、MCLK = PLL 的输入、MCLK = 4.8MHz (MCLKDivider = 10)
    AudioCodec_pageSelect (TI3254_PAGE_0);
    
    AudioCodec_regWrite (TI3254_CLK_MUX_REG、0x13); // PLL 时钟为 CODEC CLKIN
    AudioCodec_regWrite (TI3254_CLK_PLL_P_R_REG、0x80 | 0x30 | 0x02);// PLL 上电、P=3、R=2
    AudioCodec_regWrite (TI3254_CLK_PLL_J_REG、0x028); // J=40
    AudioCodec_regWrite (TI3254_CLK_PLL_D_MSB_REG、0x00);// D = 0000
    AudioCodec_regWrite (TI3254_CLK_PLL_D_LSB_REG、0x00);// D = 0000
    
    AudioCodec_regWrite (TI3254_CLK_NDAC_REG、0x80 | 0x19); // NDAC 分压器加电,NDAC = 25
    AudioCodec_regWrite (TI3254_CLK_MDAC_REG、0x80 | 0x0A); // MDAC 分频器加电,MDAC = 10
    AudioCodec_regWrite (TI3254_DAC_OSR_MSB_REG、0x00);// DOSR = 0x0080 = 128
    AudioCodec_regWrite (TI3254_DAC_OSR_LSB_REG、0x80);// DOSR = 0x0080 = 128
    
    AudioCodec_regWrite (TI3254_CLK_NADC_REG、0x80 | 0x19); // NADC 分压器加电,NADC = 25
    AudioCodec_regWrite (TI3254_CLK_mAdc_REG、0x80 | 0x0A); // mAdc 分频器加电、mAdc = 10
    AudioCodec_regWrite (TI3254_ADC_OSR_REG、0x80); // AOSR = 128 ((与 PRB_R1至 PRB_R6配合使用、ADC 滤波器类型 A)
    中断;
    
    
    情况8000:// fs = 8kHz、MCLK = PLL 输入、MCLK = 4.8MHz (MCLKDivider = 10)
    AudioCodec_pageSelect (TI3254_PAGE_0);
    
    AudioCodec_regWrite (TI3254_CLK_MUX_REG、0x13); // PLL 时钟为 CODEC CLKIN
    AudioCodec_regWrite (TI3254_CLK_PLL_P_R_REG、0x80 | 0x60 | 0x04);// PLL 上电、P=6、R=4
    AudioCodec_regWrite (TI3254_CLK_PLL_J_REG、0x028); // J=40
    AudioCodec_regWrite (TI3254_CLK_PLL_D_MSB_REG、0x00);// D = 0000
    AudioCodec_regWrite (TI3254_CLK_PLL_D_LSB_REG、0x00);// D = 0000
    
    AudioCodec_regWrite (TI3254_CLK_NDAC_REG、0x80 | 0x19); // NDAC 分压器加电,NDAC = 25
    AudioCodec_regWrite (TI3254_CLK_MDAC_REG、0x80 | 0x05); // MDAC 分频器加电,MDAC = 5
    AudioCodec_regWrite (TI3254_DAC_OSR_MSB_REG、0x00);// DOSR = 0x0080 = 128
    AudioCodec_regWrite (TI3254_DAC_OSR_LSB_REG、0x80);// DOSR = 0x0080 = 128
    
    AudioCodec_regWrite (TI3254_CLK_NADC_REG、0x80 | 0x19); // NADC 分压器加电,NADC = 25
    AudioCodec_regWrite (TI3254_CLK_mAdc_REG、0x80 | 0x05); // mAdc 分频器加电、mAdc = 5
    AudioCodec_regWrite (TI3254_ADC_OSR_REG、0x80); // AOSR = 128 ((与 PRB_R1至 PRB_R6配合使用、ADC 滤波器类型 A)
    中断;
    

    如果这不能解决您的问题、那么您一定应该咨询音频专家(通过打开新主题)。 请不要忘记关闭当前主题(使用最有用消息上的按钮"这解决了我的问题")、谢谢。

    此致、

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

    您好、Cl é ment、

    对于您的新设置、1MHz MCLK 的结果是相同的。 但是大约8K 的采样率,我发现我用了另一部手机,噪音  就会消失。

    我将在"音频论坛"上询问4kHz 问题。

    谢谢。

    BR

    Trevor