https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1471666/tlv320aic3104-output-noise
器件型号:TLV320AIC3104工具与软件:
尊敬的用户:
我正在使用 TLV320AIC3014进行音频播放。 该编解码器通过 I2S 连接到一个蓝牙模块(基于 CSR8675)。
配置:
- 32位、立体声、48kHz
- 蓝牙是 I2S 主设备
- BCLK 为3.072MHz
- BCLK 用作时钟
- FS ref (48kHz)由来自 BCLK 的 PLL 生成
- L/R LOP/LOM 用作输出
- 如果正在播放音乐、则存在 BCLK。 如果播放停止、蓝牙模块将不会生成时钟
- 使用 DAC_L1和 DAC_R1路径
- 输出增益设置为0dB
- 使用10R+10uF 低通滤波器对模拟电源(3.3V)进行滤波。
问题:如果存在 BCLK、则输出端大约有500mVpp 噪声(似乎是白噪声)。
如果 DAC 未通电或输出混频器被禁用、则输出上没有噪声。 我认为噪声源是 DAC。 我曾尝试在输出端添加低通滤波器、但没有收到任何帮助。 我尝试使用外部振荡器代替 BCLK 作为时钟源、但没有变化。
我的寄存器配置:
writeByteCodec (page_select、0);
writeByteCodec (CODEC_SAMPLE_RATE_SELECT、0);// ADC 和 DAC 的采样速率48kHz
writeByteCodec (clock、0);//codec_CLKIN 使用 PLLDIV_OUT
writeByteCodec (CLOCK_GENERATE_CONTROL、0b10100010);//CLKDIV_IN 使用 MCLK|PLLCLK_IN 使用 BCLK|保留
writeByteCodec (AUDIO_CODEC_overflow_FLAG、1);//PLL R = 1
writeByteCodec (PLL_programming_B、32<<2);//PLLJ=32
writeByteCodec (PLL_programming_A、0b10000001);//PLLEN=1|PLLQ=0000|PLLP=001
writeByteCodec (CODEC_DATA_PATH_SETUP、0b00001010);
writeByteCodec (AUDIO_SERIAL_DATA_INTERFACT_CONTROL_B、0b00110000);//mode=i2s|字长= 32位
writeByteCodec (audio_serial_data_interface_control_C、1);//data offset=1 clock
writeByteCodec (DAC_POWER_AND_OUTPUT_DRIVER_CONTROL、0b11000000);//左 DAC 受电|右 DAC 受电
writeByteCodec (82、0b10000000);
writeByteCodec (92、0b10000000);
writeByteCodec (DAC_OUTPUT_SWITCHING_CONTROL、0b00000001);
writeByteCodec (LEFT_DAC_DIGITAL_VOLUME_CONTROL、0b00000000);//左 DAC 未静音|增益0dB
writeByteCodec (right_DAC_DIGITAL_VOLUME_CONTROL、0b00000000);
writeByteCodec (LEFT_LOPM_OUTPUT_LEVEL_CONTROL、0b00001001);//左侧 LoP 增益0dB|取消静音|全通电
writeByteCodec (right_LOPM_output_level_control、0b00001001);
writeByteCodec (109、0b01000000);//dac 电流至 max
你有什么想法吗?