# 1. 时钟原理

APLL： MSYS域
MPLL&EPLL：DSYS　　 PSYS
VPLL：Video视频相关模块

# 3. 时钟配置

### （1）MSYS域(Main System)主时钟：

ARMCLK：给cpu内核工作的时钟，也就是所谓的主频
HCLK_MSYS：MSYS域的高频时钟，给DMC0和DMC1使用（配内存的时候用）
PCLK_MSYS：MSYS域的低频时钟
HCLK_IMEM：给iROM和iRAM（合成iMEM）使用

### （2）DSYS域（Display System)显示时钟：

HCLK_DSYS：DSYS域的高频时钟
PCLK_DSYS：DSYS域的低频时钟

### （3）PSYS域(Peripheral System)外围时钟：

HCLK_PSYS：PSYS域的高频时钟
PCLK_PSYS：PSYS域的低频时钟

### （4）各时钟的典型值：

freq(ARMCLK) = 1000 MHz
freq(HCLK_MSYS) = 200 MHz
freq(HCLK_IMEM) = 100 MHz
freq(PCLK_MSYS) = 100 MHz
freq(HCLK_DSYS) = 166MHz
freq(PCLK_DSYS) = 83MHz
freq(HCLK_PSYS) = 133MHz
freq(PCLK_PSYS) = 66MHz
freq(SCLK_ONENAND) = 133MHz, 166 MHz

# 4. 时钟计算

FOUT = MDIV * FIN / (PDIV × 2SDV-1)

# 5. 部分代码分析

void clock_init(void)
{
/* 设置时钟为:
* ARMCLK=1000MHz, HCLKM=200MHz, HCLKD=166.75MHz
* HCLKP =133.44MHz, PCLKM=100MHz, PCLKD=83.375MHz,
* PCLKP =66.7MHz
*/

/* SDIV[2:0]  : S = 1
* PDIV[13:8] : P = 0x3
* MDIV[25:16]: M = 0x7d
* LOCKED [29]: 1 = 使能锁
* ENABLE [31]: 1 = 使能APLL控制器
* 得出FoutAPLL = 1000MHz    FOUT = MDIV X FIN / (PDIV × 2SDIV-1)
*/
APLL_CON = (1<<31)|(1<<29)|(0x7d<<16)|(0x3<<8)|(1<<0);

/* 时钟源的设置
* APLL_SEL[0] :1 = FOUTAPLL
* MPLL_SEL[4] :1 = FOUTMPLL
* EPLL_SEL[8] :1 = FOUTEPLL
* VPLL_SEL[12]:1 = FOUTVPLL
* MUX_MSYS_SEL[16]:0 = SCLKAPLL
* MUX_DSYS_SEL[20]:0 = SCLKMPLL
* MUX_PSYS_SEL[24]:0 = SCLKMPLL
* ONENAND_SEL [28]:1 = HCLK_DSYS
*/

CLK_SRC0 = (1<<28)|(1<<12)|(1<<8)|(1<<4)|(1<<0);
/* 设置分频系数
* APLL_RATIO[2:0]: APLL_RATIO = 0x0
* A2M_RATIO [6:4]: A2M_RATIO  = 0x4
* HCLK_MSYS_RATIO[10:8]: HCLK_MSYS_RATIO = 0x4
* PCLK_MSYS_RATIO[14:12]:PCLK_MSYS_RATIO = 0x1
* HCLK_DSYS_RATIO[19:16]:HCLK_DSYS_RATIO = 0x3
* PCLK_DSYS_RATIO[22:20]:PCLK_DSYS_RATIO = 0x1
* HCLK_PSYS_RATIO[27:24]:HCLK_PSYS_RATIO = 0x4
* PCLK_PSYS_RATIO[30:28]:PCLK_PSYS_RATIO = 0x1
*/
CLK_DIV0 = (0x1<<28)|(0x4<<24)|(0x1<<20)|(0x3<<16)|(0x1<<12)|(0x4<<8)|(0x4<<4);

/* SDIV[2:0]  : S = 1
* PDIV[13:8] : P = 0xc
* MDIV[25:16]: M = 0x29b
* VSEL   [27]: 0
* LOCKED [29]: 1 = 使能锁
* ENABLE [31]: 1 = 使能MPLL控制器
* 得出FOUTmpll = 667MHz
*/
APLL_CON = (1<<31)|(1<<29)|(0x29d<<16)|(0xc<<8)|(1<<0);
}


# 总结

• 点赞
• 评论
• 分享
x

海报分享

扫一扫，分享海报

• 收藏
• 手机看

分享到微信朋友圈

x

扫一扫，手机阅读

• 打赏

打赏

Schrodinger's Ali

你的鼓励将是我创作的最大动力

C币 余额
2C币 4C币 6C币 10C币 20C币 50C币
• 一键三连

点赞Mark关注该博主, 随时了解TA的最新博文
12-23 603

06-19 1万+
10-31 3107