现在的位置: 首页 > 综合 > 正文

Qt210时钟学习笔记

2013年11月28日 ⁄ 综合 ⁄ 共 1985字 ⁄ 字号 评论关闭

                           
Qt210
时钟学习笔记

1.首先看下图

从这幅图就可知到210的时钟分为三个域,分别为MSYS 
Domain,  DSYS Domain , PSYS Domain.
每个域一般又分几部等如下2.每个域的分频关系

MSYS clock domain

− freq(ARMCLK)  
= freq(MOUT_MSYS) / n, where n = 1 ~ 8

− freq(HCLK_MSYS) 
= freq(ARMCLK) / n, where n = 1 ~ 8

− freq(PCLK_MSYS) 
= freq(HCLK_MSYS) / n, where n = 1 ~ 8

− freq(HCLK_IMEM)  
= freq(HCLK_MSYS) / 2

 

DSYS clock domain

− freq(HCLK_DSYS)  
= freq(MOUT_DSYS) / n, where n = 1 ~ 16

− freq(PCLK_DSYS)  
= freq(HCLK_DSYS) / n, where n = 1 ~ 8

 

PSYS clock domain

− freq(HCLK_PSYS)  
= freq(MOUT_PSYS) / n, where n = 1 ~ 16

− freq(PCLK_PSYS)  
= freq(HCLK_PSYS) / n, where n = 1 ~ 8

− freq(SCLK_ONENAND) 
= freq(HCLK_PSYS) / n, where n = 1 ~ 8

3.配置时钟我们一般要以下的频率的值配出来

freq(ARMCLK)  
= 1000 MHz

freq(HCLK_MSYS)  
= 200 MHz

freq(HCLK_IMEM)  
= 100 MHz

freq(PCLK_MSYS)  
= 100 MHz

freq(HCLK_DSYS)  
= 166 MHz

freq(PCLK_DSYS)  
= 83 MHz

freq(HCLK_PSYS)  
= 133 MHz

freq(PCLK_PSYS)  
= 66 MHz

freq(SCLK_ONENAND) 
= 133 MHz, 166 MHz

4.首先我们要把每个域的最大的频率配置出来,然后根据他的分频关系在分频配置出其他值。但是每个域的最大哪个分频源头是哪个呢,那就要下面那幅图找了

 

上图画出了两个域的具体路线,其中圆圈代表选择那路勾代表分频下面就举个例子是怎么配置时钟的

5.ARMCLK的实例配置

最源头是XXTI(这是硬件原理图OM0决定的)àFINpll
24MàAPLL(在这会变频)à(经过MUXapll选择是FINpll还是变频后的FOUTapllàMUXmsys选择)àDIVapll分频)àARMCLK(然后由ARMCLK分频配置MSYS
domain
的个频率),其他域的配置也类似这个(其中每个域的PCLK一等于HCLK2),然后把各域的值配置成3的值就行了

6.具体寄存器配置

APLL_CON0 =(1<<0)|(0x06<<8)|(0xfa<<16)|(1<<29)|(1<<31);//这是APLL变频的

        
CLK_SRC0  =(1<<0)|(1<<4)|(1<<12)|(1<<8)|(0<<16)|(0<<20)|(1<<28);//
这是管理MUX

        
MPLL_CON  =(1<<0)|(0x0c<<8)|(0x29b<<16)|(1<<29)|(1<<31);//
这是MPLL变频的

        
CLK_DIV0  =(0<<0)|(0x4<<8)|(0x1<<12)|(0x03<<16)|(0x1<<20)|(0x04<<24)|(0x1<<28);//
这是分频

7.变频参考例子

APLL

MPLL

#define APLL_CON0  (*(volatile unsigned int *)0xE0100100)
#define MPLL_CON   (*(volatile unsigned int *)0xE0100108)
#define CLK_SRC0   (*(volatile unsigned int *)0xE0100200)
#define CLK_DIV0   (*(volatile unsigned int *)0xE0100300)

void clock_init()
{
	APLL_CON0 =(1<<0)|(0x06<<8)|(0xfa<<16)|(1<<29)|(1<<31);
	CLK_SRC0  =(1<<0)|(1<<4)|(1<<12)|(1<<8)|(0<<16)|(0<<20)|(1<<28);
	MPLL_CON  =(1<<0)|(0x0c<<8)|(0x29b<<16)|(1<<29)|(1<<31);
	CLK_DIV0  =(0<<0)|(0x4<<8)|(0x1<<12)|(0x03<<16)|(0x1<<20)|(0x04<<24)|(0x1<<28);
	return ;
}

QQ:790706648 4M小水管

抱歉!评论已关闭.