嵌入式学习---ARM时钟体系

目录

时钟相关概念

时钟脉冲

  • 按一定电压幅度 ,一定时间间隔连续发出的脉冲信号。它是一个周期性的信号,每个周期内包含一个上升沿和一个下降沿。时钟脉冲的上升沿和下降沿通常用于触发和同步各个电子元件的操作,例如CPU的指令执行、数据传输、寄存器更新等。

时钟频率

  • 时钟频率是指时钟脉冲的频率,即单位时间内时钟脉冲的数量。它通常以赫兹(Hz)为单位表示,表示每秒钟发生的时钟脉冲的次数。时钟频率决定了计算机系统的运行速度和性能,较高的时钟频率意味着更快的数据处理能力。

时钟的作用

  • 时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状态何时更新。数字芯片中的众多晶体管的导通和关断动作都是按照时钟信号的节奏进行的。

时钟信号的生成

  • 晶体振荡器(Crystal Oscillator):晶体振荡器是使用晶体的谐振特性来产生稳定时钟信号的元件,与晶振类似,但通常包含更复杂的电路和调谐元件,可以提供更高的频率稳定性和精度。
  • MEMS振荡器(MEMS Oscillator):MEMS振荡器是利用微机电系统(MEMS)技术制造的振荡器,通过微小的机械结构振动来产生时钟信号。它具有小尺寸、低功耗和抗震动等优点,适用于移动设备和嵌入式系统。
  • RC振荡器(RC Oscillator):RC振荡器是使用电阻(R)和电容(C)构成的振荡电路,通过RC元件的充放电过程来产生时钟信号。它简单、成本低廉,但频率稳定性较差,适用于一些低要求的应用场景。
  • PLL锁相环(Phase-Locked Loop):PLL是一种反馈控制系统,通过比较输入信号和参考信号的相位差,并调整输出信号的频率和相位,使其与参考信号同步。PLL可以提供稳定的时钟信号,并具有频率合成和时钟倍频等功能。
  • GPS接收器(GPS Receiver):全球定位系统(GPS)接收器可以接收卫星发射的精确时间信号,并用作时钟参考。GPS接收器可以提供高精度的时钟信号,适用于需要高精度时间同步的应用,如通信基站和科学实验。
    典型的系统时钟振荡器源通常采用石英晶振,而更复杂的系统时钟振荡器则是由PLL合成器提供。

S3C2440的时钟体系

主时钟晶振

  • S3C2440的主时钟晶振来自于外部晶振(XTIPLL)或者是外部时钟(EXTCLK)。时钟生成器包含了一个振荡器,其连接外部晶振,可以产生需要的高频,通过引脚OM3:2来决定时钟源是Crystal还是EXTCLK。

两个PLL

  • MPLL用于CPU及其他外围器件。通过MPLL会产生三个部分的时钟频率:FCLK【用于CPU核】、HCLK【用于AHB总线的设备】、PCLK【用于APB总线的设备】。
  • UPLL专用于USB设备。

时钟启动流程

  • 上电几毫秒后,外部晶振输出稳定,FCLK=外部晶振频率(12MHz),nRESET信号恢复高电平后,CPU开始执行命令。
  • 在设置MPLL的几个寄存器后,需要等待一段时间(Lock Time),MPLL的输出才稳定。在这段时间(Lock Time)内,FCLK停振,CPU停止工作。Lock Time的长短由寄存器LOCKTIME设定。
  • Lock Time之后,MPLL输出正常,CPU工作在新的FCLK(如400MHz)下。

相关的寄存器

设置S3C2440的时钟频率就是设置相关的几个寄存器:

  • LOCKTIME寄存器:用于设置Lock Time。
  • MPLLCON寄存器:用于设置FCLK和Fin的倍数。
  • CLKDIVN寄存器:用于设置FCLK、HCLK、PCLK三者的比例。


相关推荐
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
不悔哥4 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
XiHongShi20164 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本4 天前
离散数学第六课
学习·离散数学
AI职业加油站4 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
深圳老胡4 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
旖旎夜光4 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊4 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
霍霍的袁4 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio