28.6.2.1 主时钟,串行时钟,和帧同步产生
I2S的通用时钟描述如图所示
从机模式
在从机模式,串行时钟和帧同步(字选择在I2S模式和TDM模式的帧同步)是由一个外部主机驱动。
SCKn和FSn管脚是输入并且I2S没有通用时钟需求。
主机模式和控制模式
在主机模式,主机时钟(MCKn),串行时钟(SCKn),和帧同步信号(在I2S模式和TDM模式中帧同步)使用
时钟控制寄存器(CLKCTRLn)。MCKn,SCKn,和FSn管脚输出并且一个通用时钟用来驱动I2S时钟。
在一些应用中,音频编解码器连接到I2S管脚需要一个带有音频采样频率倍频的频率主时钟信号
。如256fs.
在控制模式,只有时钟产生单元需要在CTRLA和CLKCTRLn寄存器被配置如时钟分频因子,时隙数量
,时隙长度,帧同步信号,时钟使能。
MCKn时钟频率
当I2S是主机模式,写一个1到CLKCTRLn.MCKEN将输出GCLK_I2S_n作为主机时钟到MCKn管脚。主机时
钟到MCKn管脚通过CLKCTRLn.MCKSEL和CLKCTRLn.MCKOUTOUT分频配置。主机时钟(MCKn)频率是GCLK_I2S_n
频率分频,除以(MCLKOUTDIV+1)。
SCKn时钟频率
当串行时钟(SCKn)是从GCLK_I2S_n产生的,通过设置CLKCTRLn.MCKSEL和CLKCTRLn.SCKSEL为零。串
行时钟(SCKn)频率是GCLK_I2S_n频率通过MCKDIV+1分频。如:f(SCKn)=f(GCLK_I2S_n)/(MCKDIV+1)
MCKn,SCKn和采样频率(fs)之间的关系
以采样频率(fs)为基础,SCKn频率的需求可以通过下列公式算出:
SCKn频率应该等于每帧的总比特数*采样频率
作为每一个配置的时隙数和时隙长度,每帧的总比特数=时隙数*时隙长度
作为每一个寄存器配置CLKCTRLn.NBSLOTS和CLKCTRLn.SLOTSIZE,时隙和时隙长度被配置为
SLOTSIZE值将要是0x00到0x03配置8,16,24,32比特时隙并且每个帧由(NBSLOTS+1)时隙组成。
考虑上述公式:
现在,MCKn频率在采样队列里是:
如果一个主时钟输出不被需要,GCLK_I2S通用时钟被用作SCKn,通过写一个零到CLKCTRLn.MCKDIV.
另外,如果通用时钟频率被使用,它是所需SCKn频率的倍频。
MCKn到SCKn驱动可以用到在CLKCTRLn.MCKDIV字段定义的速率。
FSn管脚用于字选择在I2S模式中,并且在TDM模式中作为帧同步。
|