如果系统仅需要一种采样频率,时钟源可以通过外部晶振来实现。如果需要两种以上的采样频率,大部分的芯片就会受到硬件的限制,每个采样频率只能是I2S时钟源分频后的的结果。
以NUC140系列为例,I2S选取12.288Mhz时钟源及16位长度,可以播放的采样频率为96K, 48K, 32K, 24K, 19.2K, 16K, 12K, 9.6K, 8K和 6K。至于44.1K, 22.05K及11.025K,时钟源必须改为5.6448Mhz。
I2S_BCLK = I2S_CLK /(2x(BCLK_DIV + 1)) = SR * Length * 2
|