SylixOS 基于ZYNQ的时钟频率修改详解
发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,概述本文档以ZYNQ7000平台为例,详细介绍如何去修改ZYNQ的时钟频率。时钟频率修改流程ZYNQ7000的时钟频率修改流程,如图 2.1所示。具体步骤如下:步骤一:解除ZYNQ7000的寄存器写锁
千家信息网最后更新 2024年11月24日SylixOS 基于ZYNQ的时钟频率修改详解
概述
本文档以ZYNQ7000平台为例,详细介绍如何去修改ZYNQ的时钟频率。
时钟频率修改流程
ZYNQ7000的时钟频率修改流程,如图 2.1所示。具体步骤如下:
步骤一:解除ZYNQ7000的寄存器写锁定;
步骤二:向对应寄存器写入我们需要设置的PLL倍频值和PLL配置参数;
步骤三:进行PLL的旁路模式转换和软件重启,使我们刚刚设置的PLL倍频值和PLL配置参数生效;
步骤四:重新使寄存器处于写锁定状态。
图 2.1 ZYNQ7000的时钟频率修改流程图
ZYNQ7000的ARM_PLL_CLK时钟频率修改的具体的代码实现如程序清单 2.1所示。不同平台的解除和锁定写锁定的方式可能不同,对于ZYNQ7000平台,需要写入0xDF0D到SLCR_UNLOCK寄存器解除写锁定,写入0x767B到SLCR_LOCK寄存器可以使相关寄存器的写操作无效。
程序清单 21 ZYNQ7000的时钟频率修改代码
/*********************************************************************************************************** 函数名称: zynqPllFeedBackSet** 功能描述: zynq的ARM_PLL_CLK时钟倍频设置** 输 入 : NONE** 输 出 : NONE** 返 回 : NONE*********************************************************************************************************/VOID zynqPllFeedBackSet (VOID){ UINT32 uiClkCtrl; UINT32 uiFeedBackDiv; UINT32 uiNum; uiNum = read32(ZYNQ_SLCR + SLCR_LOCKSTA); if (0 != uiNum) { write32(SLCR_UNLOCK_MAGIC, ZYNQ_SLCR + SLCR_UNLOCK); /* 写入0xDF0D,解除写锁定 */ uiNum = 0; } /* * 设置ARM_PLL的倍频值 */ uiClkCtrl = read32(ZYNQ_SLCR + ARM_PLL_CTL); uiFeedBackDiv = uiClkCtrl &~ XZYNQ_SLCR_ARM_PLL_CTRL_PLL_FDIV_MASK; uiFeedBackDiv |= (SLCR_FEED_BACK_DIV_VALUE << XZYNQ_SLCR_ARM_PLL_CTRL_PLL_FDIV_OFFSET); write32(uiFeedBackDiv, ZYNQ_SLCR + ARM_PLL_CTL); /* * 设置ARM_PLL的配置参数 */ uiClkCtrl = read32(ZYNQ_SLCR + ARM_PLL_CTL); write32(SLCR_ARM_PLL_CFG, ZYNQ_SLCR + ARM_CLK_CFG); /* * 进行PLL的旁路模式转换和软件重启,使我们刚刚设置的PLL倍频值和PLL配置参数生效 */ write32(SLCR_ARM_PLL_CTRL_BYPASS_FORCE | uiClkCtrl, ZYNQ_SLCR + ARM_PLL_CTL); write32(SLCR_ARM_PLL_CTRL_RESET | uiClkCtrl, ZYNQ_SLCR + ARM_PLL_CTL); read32(ZYNQ_SLCR + PLL_STATUS); write32(uiClkCtrl &~ SLCR_ARM_PLL_CTRL_RESET, ZYNQ_SLCR + ARM_PLL_CTL); write32(uiClkCtrl &~ SLCR_ARM_PLL_CTRL_BYPASS_FORCE, ZYNQ_SLCR + ARM_PLL_CTL); if (0 == uiNum) { write32(SLCR_LOCK_MAGIC, ZYNQ_SLCR + SLCR_LOCK); /* 写入0x760B,打开写锁定 */ uiNum = 1; }}
PLL的频率设置
ZYNQ7000的时钟频率设置的参数列表,如图 3.1所示。其中PLL_FDIV为PLL的倍频值,PLL CP、PLL RES、LOCK CNT为PLL的配置参数。
图 3.1 PLL频率的参数设置列表
免责声明
内部交流文档,仅针对ZNYQ相关平台,若发现相关错误或者建议,请及时联系文档创建者进行修订和更新。
频率
时钟
参数
寄存器
步骤
配置
平台
流程
不同
代码
文档
旁路
模式
清单
程序
软件
如图
函数
创建者
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湛江手机软件开发咨询
万维网服务器与浏览器区别
vb数据库开发教程
人为因素导致的网络安全问题
济南电商软件开发公司
山东硕博软件开发
驻马店捷丰网络技术有限公司
服务器框架设计
近代史思维导图软件开发
刺客信条3服务器自动退出
安卓软件开发后的职业规划
萤石网络安全ppt
数据库怎么查两个顾客的名字
主机安全测评与网络安全测评
公司文件管理服务器配置
obdc找不到数据库文件
网络安全与信息化国家战略摘要
科技通信互联网公司副总裁年薪
新天下无双连接服务器超时
免费图文数据库
通信网络安全调研报告
索尼电视能连接代理服务器吗
材料库数据库设计
绝地求生北美服务器
定制软件开发公司没出路
网络技术人员能力是什么
公司文件管理服务器配置
数据库的特征与优缺点
怎么导出数据库的表
c语言获取端口数据库