MC9S12XS128 锁相环配置与寄存器解析
5星 · 超过95%的资源 需积分: 9 10 浏览量
更新于2024-09-20
收藏 251KB PDF 举报
本文主要介绍了MC9S12XS128微控制器中的锁相环寄存器配置,包括时钟分频寄存器(REFDV)、时钟合成寄存器(SYNR)和锁相环控制寄存器(PLLCTL),以及如何初始化这些寄存器来设置锁相环系统。
在MC9S12XS128中,锁相环(PLL)是用于提高系统时钟频率的关键组件。通过调整寄存器的值,可以实现不同频率的系统时钟输出,从而优化系统的性能。
1. 时钟分频寄存器(REFDV):
- REFDV寄存器用于设定参考时钟的分频因子,它的高两位(REFFRQ[1:0])决定了参考时钟的范围,低六位(REFDV[5:0])定义了实际的分频因子。根据不同的设置,可以选择不同频率的参考时钟源,并将其分频,以适应锁相环的需求。
2. 时钟合成寄存器(SYNR):
- SYNР寄存器用于控制压控振荡器(VCO)的频率范围。高两位(VCOFRQ[1:0])决定VCO的工作模式,低六位(SYNR[5:0])用于设定倍频因子,可以将输入时钟倍频1到64倍。通过这个寄存器,我们可以计算出锁相环输出的最终时钟频率。
3. 锁相环控制寄存器(PLLCTL):
- PLLCTL寄存器包含了多个控制位,如CMEN用于开启或关闭锁相环,PLLOEN用于启用或禁用VCO输出,以及FM[1:0]用于选择VCO的频率范围。这些位的设置对锁相环的工作状态至关重要。
初始化步骤通常包括以下部分:
- 设置REFDV,根据应用需求选择合适的参考时钟分频。
- 设置SYNR,选择VCO的工作模式并设定倍频因子。
- 等待锁相环稳定,通过检测LOCK标志位(未给出具体寄存器名称)来确认VCO已稳定。
- 设置POSTDIV,这一步可以进一步调整输出时钟的分频。
- 最后,通过设置CLKSEL_PLLSEL选择由Fpll产生的总线时钟。
锁相环的时钟频率可以通过以下公式计算:
PLLCLK = 2 * OSCCLK * (SYNR + 1) / (REFDV + 1)
其中,OSCCLK是外部晶体振荡器的频率,PLLCLK是锁相环输出的时钟频率。
正确配置这些寄存器对于确保MC9S12XS128微控制器的时钟系统稳定且高效运行至关重要。在设计嵌入式系统时,理解这些寄存器的功能和交互是至关重要的,以优化系统性能并满足特定应用的时钟需求。
2016-06-26 上传
137 浏览量
2011-11-06 上传
2023-05-30 上传
2023-06-01 上传
2023-08-07 上传
2023-10-10 上传
2024-10-31 上传
2023-10-09 上传
liyq3152
- 粉丝: 0
- 资源: 21
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建