SOC时钟配置

SOC时钟配置

1 锁相环工作原理

Soc的时钟产生单元(CGU)通过外部输入时钟和内部相位锁相环(PLL)和分频选择逻辑产生用于片内的不同频率的时钟。片内时钟频率的改变通过配置AHB总线全局控制模块单元内部锁相环寄存器实现。

CGU单元内部包含三个锁相环,分别产生系统主时钟、DDR物理层时钟、以太网物理层时钟,其配置寄存器位于AHB总线全局控制模块。CGU模块还产生1553模块时钟与UART时钟。

锁相环采用65nm工艺库中的PLLSM65LLFRAC锁相环,其最高输出频率为1.6GHz,包含小数配置模式和整数配置模式,该时钟管理单元内部的锁相环采用整数配置模式,用户可配置引脚如表1所列。

表1 普通锁相环可配置引脚

引脚名称

方向

位宽

说明

REFDIV(分频器)

I

6

锁相环分频系数

FBDIV(倍频器)

I

12

锁相环倍频系数

锁相环时钟用FOUTVCO表示,晶振输入时钟用CLKIN表示,倍频器系数用FBDIV表示,分频器系数用REFDIV表示,主时钟用MAINPLL表示,DDR3时钟用DDRPLL表示,以太网时钟用ENETPLL表示。锁相环配置公式如下:

锁相环时钟:FOUTVCO = CLKIN * FBDIV / REFDIV;

主时钟:MAINPLL = CLKIN * FBDIV / (2*REFDIV);

DDR3时钟:DDRPLL = CLKIN * FBDIV / (2*REFDIV);

以太网时钟:ENETPLL = CLKIN * FBDIV / (6*REFDIV);

需要注意的地方:输出时钟的范围为400MHz ≤ FOUTVCO ≤ 1600MHz;对于配置信号REFDIV、FBDIV的要求:1 ≤ REFDIV ≤ 63;16 ≤ FBDIV ≤ 1600;通过检查锁相环状态寄存器获知锁相环是否锁定,此时再对锁相环进行配置操作。

2 配置流程

主锁相环的配置:

主锁相环产生系统主时钟,对于主时钟锁相环的原理分析知道其满足:

MAINPLL = CLKIN * FBDIV / (2*REFDIV)。

配置步骤:

  1. 读取全局控制模块主锁相环寄存器,查看锁相环状态寄存器LOCK位信息(0x40c00008寄存器的第21),直到读出该位为0x1
  2. 对主锁相环寄存器的BYPASS位写0x1操作(0x40c00008寄存器的第20),对主锁相环寄存器的LOCK位写0x1操作(0x40c00008寄存器的第21);
  3. 配置主锁相环寄存器的主时钟倍频系数(FBDIV)和主时钟分频系数(REFDIV),MAINPLL = CLKIN * FBDIV / (2*REFDIV),配置主频为400MHz,则FBDIV = 0xA0,REFDIV = 0x5(FBDIV为寄存器的19-8位,REFDIV为寄存器的5-0位);
  4. 等待主锁相环寄存器频率锁存完成,通过循环读取LOCK可知,如果LOCK位读出为0,表示频率锁存完成;
  5. 向主锁相环寄存器的BYPASS位写入0,表示时钟为锁相环模式,非旁路模式。

DDR锁相环配置:

DDR锁相环产生系统DDR3时钟,对于DDR锁相环的原理分析知道其满足:

DDRPLL = CLKIN * FBDIV / (2*REFDIV)。

配置步骤:

  1. 读取全局控制模块DDR锁相环寄存器,查看锁相环状态寄存器LOCK位信息(0x40c0000c寄存器的第21),直到读出该位为0x1
  2. 对DDR锁相环寄存器的BYPASS位写0x1操作(0x40c0000c寄存器的第20),对主锁相环寄存器的LOCK位写0x1操作(0x40c0000c寄存器的第21);
  3. 配置DDR锁相环寄存器的DDR时钟倍频系数(FBDIV)和DDR时钟分频系数(REFDIV),DDRPLL = CLKIN * FBDIV / (2*REFDIV),配置主频为533MHz,则FBDIV = 0x215,REFDIV = 0x32(FBDIV为寄存器的19-8位,REFDIV为寄存器的5-0位);
  4. 等待DDR锁相环寄存器频率锁存完成,通过循环读取LOCK可知,如果LOCK位读出为0,表示频率锁存完成;
  5. 向DDR锁相环寄存器的BYPASS位写入0,表示时钟为锁相环模式,非旁路模式。

3 数据结构封装

根据时钟模块寄存器地址在内存分配图中的分布,将其地址定义为整型宏定义,将寄存器定义为各位各个功能位域的结构联合体。这样子将整型地址转换成寄存器的结构联合体指针,就能够通过寄存器位域去编写底层驱动了,图1表示宏定义寄存器的定义和类型转换,图2表示寄存器结构联合体定义。

soc时钟1

 

图1

soc时钟2

 

图2

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值