MCLK抖动是I2S DAC底噪的主要来源之一,尤其是使用内部PLL生成MCLK时。首先,建议优先使用ESP32的APLL(Audio PLL)而非主PLL,通过`i2s_set_clk`或`driver/i2s.h`中的`i2s_pll_enable`配置精确频率,减少抖动。其次,硬件上在MCLK引脚串联33-100Ω电阻,并加一个10-22pF对地电容做低通滤波,可抑制高频抖动。若DAC支持,可启用其内部DPLL或去抖动电路(如ES8388的MCLK倍频模式)。软件层面,确保I2S时钟源选择`I2S_CLK_SRC_APLL`,并设置`bits_per_sample`和`sample_rate`与DAC规格严格匹配,避免分频误差。最后,PCB布局上MCLK走线远离电源和数字信号线,并用地线隔离。若抖动仍明显,可考虑外接低抖动晶振(如24.576MHz)直接驱动DAC,绕过ESP32时钟。
mcuku 阿沐 · 2026-08-27