分类: LINUX
2013-03-12 22:48:55
最近使用ak5702做测试,这是一个音频codec,在初始化的时候需要稍注意一下,看文档时顺便做了总结,放上来保存一下,以备后用。
1.时钟源选择
ak5702/5701的主时钟源mask clock有两种方式产生。通过寄存器中的PMPLL位来决定,当为0时表示使用EXT-mode,当为1时表示使用PLL模式。
一种称为EXT-mode,它是直接通过MCKI引脚使用。
另一种是使用PLL锁相环产生,使用PLL的话还要涉及到一个参考时钟源的问题,就是PLL需要有一个时钟源作为参考时钟,然后通过锁相电路才能产生期望频率的时钟,这个参考时钟可以从MCKI ,BCLK, LRCK这3个地方引入。就是说有3个参考时钟供选择。PLL配置有些繁琐,但不是很繁琐。
同时,除了要确定时钟源的模式外,还需要确定codec工作在master模式还是slave模式,这两种模式的区别就是:master负责向slave产生BCLK和LRCK时钟。在codec和cpu之间,谁负责产生这两种时钟谁就是master,接收的那方就是slave。通过M/S位决定,为0表示slave,为1表示master。
这样的话,通过时钟源的不同和master/slave的不同来排列组合,在ak5701/5702中共有5中工作模式。具体参考下面的说明。
PMPLL=0
M/S=0
这种模式时,codec内部的master clock就直接用MCKI引脚上的时钟。同时内部的PLL电路不再起作用。
对时钟的要求是:
MCKI为256fs 或 512fs 或 1024fs
EXLRCK 为1fs;
EXBCLK 为(>=32fs)
codec的master clock 要和EXLRCK同步。
MCKI的输入频率有FS1-0决定。
当codec上的ADC(PMADL=1 或 PMADR=1)在工作时,外部时钟MCKI,EXLRCK,EXBCLK需要一直有。如果外部时钟不再了,需要把ADC都关上。PMADL=PMADR=0.
连接图:
由DSP提供BCLK和LRCK,ak5701是slave。
PMPLL bit = “0”
M/S bit = “1”
TE3-0 bits =”0101”
TMSTER bit=”1”
这种模式时,codec内部的master clock就直接用MCKI引脚上的时钟。同时内部的PLL电路不再起作用。
对时钟的要求是:
MCKI为256fs 或 512fs 或 1024fs
EXLRCK 为1fs;
EXBCLK 为(>=32fs)
codec的master clock 要和EXLRCK同步。
MCKI的输入频率有FS1-0决定
连接图:
当codec上的ADC(PMADL=1 或 PMADR=1)在工作时,外部时钟MCKI,EXLRCK,EXBCLK需要一直有。如果外部时钟不再了,需要把ADC都关上。PMADL=PMADR=0.
当PMPLL bit = “1”时,将会使用锁相环来产生codec 的master clock,锁相环通过PLL3-0和FS3-0来配置。具体的配置如下图。可见,共有3中PLL reference可供选择,分别是EXLRCK,EXBCLK和MCKI。通过PLL3-0来配置选择,每种配置对应着不同的输入频率。
采样频率的设置通过下图来设置。配置不同的FS3-0使用不同的采样频率。
下图是参考频率来自MCKI时的采样频率设置。
下图是参考频率来自EXLRCK或EXBCLK时的采样频率设置。
PMPLL bit =”1”
M/S bit = “1”
当外部时钟(11.2896MHz , 12MHz, 12.288MHz ,13MHz ,13.5MHz, 19.2MHz , 24MHz, 26MHz或27MHz ) 输入到MCKI时,MCKO ,BCLK, 和LRCK 引脚将会输出由PLL电路产生时钟信号。注意,在PLL-Master模式下,PLL的参考时钟只有从MCKI输入一种方式,不支持从BCLK和LRCK输入。
对应的连接图为:
master模式负责产生 BCLK和 LRCK时钟。
对应MCKO和 BCLK输出 的时钟设置为:
PMPLL bit = “1”
M/S bit = “0”
此种模式下,PLL的参考时钟可以来自MCKI和EXBCLK或EXLRCK。具体的参考时钟来源需要使用下图来确定:
1.2.2.1 PLL参考源为MCKI
EXBCLK和EXLRCK的输入时钟需要与MCKO的输出时钟同步。对相位没有要求。
MCKO的输出频率由下配置。MCKO 位需要使能。
采样频率由下确定:
当codec上的ADC(PMADL=1 或 PMADR=1)在工作时,外部时钟MCKI,EXLRCK,EXBCLK需要一直有。如果外部时钟不在了,需要把ADC都关上。PMADL=PMADR=0.
1.2.2.2 PLL参考源为EXBCLK或EXLRCK
采样频率由下面决定:
参考文档 ak5701_f02e.pdf