Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1111265
  • 博文数量: 132
  • 博客积分: 612
  • 博客等级: 中士
  • 技术积分: 1389
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-14 16:06
文章分类

全部博文(132)

文章存档

2015年(2)

2014年(55)

2013年(53)

2012年(2)

2011年(20)

分类: 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中工作模式。具体参考下面的说明。

1.1 EXT-Mode

1.1.1 EXT-Slave

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。

1.1.2 EXT-Master

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.

1.2 PLL-Mode

当PMPLL bit = “1”时,将会使用锁相环来产生codec 的master clock,锁相环通过PLL3-0和FS3-0来配置。具体的配置如下图。可见,共有3中PLL reference可供选择,分别是EXLRCK,EXBCLK和MCKI。通过PLL3-0来配置选择,每种配置对应着不同的输入频率。

采样频率的设置通过下图来设置。配置不同的FS3-0使用不同的采样频率。

下图是参考频率来自MCKI时的采样频率设置。

下图是参考频率来自EXLRCK或EXBCLK时的采样频率设置。

1.2.1 PLL-Master

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输出 的时钟设置为:

1.2.2 PLL-Slave

    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


ak5702_5701说明文档.pdf
阅读(2862) | 评论(0) | 转发(0) |
0

上一篇:vim 安装taglist

下一篇:vim 设置tab空格个数

给主人留下些什么吧!~~