MCLK缺失是ESP32 I2S外接DAC时的常见问题,因为多数DAC(如PCM5102、CS4344)需要MCLK作为系统时钟来生成内部时钟树,否则采样率会偏移。解决方案:1) 使用支持从模式(Slave Mode)的DAC,如PCM5102,它可接受外部BCLK和LRCK,但需确保BCLK频率是采样率的64倍(如48kHz时BCLK=3.072MHz),ESP32的I2S外设可配置为Master模式输出BCLK和LRCK,但需检查是否满足DAC的MCLK要求;2) 若DAC必须MCLK,可外接有源晶振(如24.576MHz)直接供给MCLK,同时将ESP32配置为Slave模式,同步BCLK和LRCK;3) 利用ESP32的APLL或PLL生成精确时钟,但需注意I2S外设的时钟源选择,可尝试配置I2S时钟源为APLL并设置分频系数,使BCLK和LRCK与外部MCLK同步。实操建议:优先选用支持从模式的DAC,简化硬件;若必须MCLK,建议使用外部晶振,并确保ESP32的I2S配置为Slave模式,避免时钟抖动。
mcuku 阿沐 · 2026-08-27