SylixOS 基于ZYNQ的时钟频率修改详解
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,概述本文档以ZYNQ7000平台为例,详细介绍如何去修改ZYNQ的时钟频率。时钟频率修改流程ZYNQ7000的时钟频率修改流程,如图 2.1所示。具体步骤如下:步骤一:解除ZYNQ7000的寄存器写锁
千家信息网最后更新 2025年02月08日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安全错误
数据库的锁怎样保障安全
培训软件开发学费多少钱
软件开发竞争压力大吗
阿里云服务器中的数据库
有大屏也有监控需要流媒体服务器
常州软件开发制作公司
漳州软件开发裙
数据库怎么连接财务服务器
抚州个人服务器哪家好点
南瑞网络安全隔离装置正向型
安卓购物商城数据库
郑州计算机软件开发报价
sql 排除相同的数据库
部署小程序服务器价格
java软件开发书籍
重生互联网科技
网络安全教育日活动总结
rrd数据库下载
河北科技网络安全
服务器安全狗 禁止远程连接
角逐网络安全攻防对抗
网络安全法主要任务
启动网络安全审查的前提
Tra服务器
计算机网络技术专升本分值
邮件服务器创建
如何显示数据库建立的数据表文件
陕西随小生网络技术公司
从事危害网络安全的活动受到刑事
vul 服务器
上海服务器风扇诚信推荐