嵌入式学习---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)。时钟生成器包含了一个振荡器,其连接外部晶振,可以产生需要的高频,通过引脚OM[3: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三者的比例。


相关推荐
微露清风3 小时前
系统性学习C++-第二十讲-哈希表实现
c++·学习·散列表
国科安芯3 小时前
卫星通讯导航FPGA供电单元DCDC芯片ASP4644S2B可靠性分析
单片机·嵌入式硬件·fpga开发·架构·安全性测试
星火开发设计4 小时前
C++ queue 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识·队列
如果你想拥有什么先让自己配得上拥有5 小时前
近似数的思考学习
学习
易水寒陈5 小时前
单片机实现的工厂模式
单片机
ha20428941946 小时前
Linux操作系统学习记录之----自定义协议(网络计算器)
linux·网络·学习
振华说技能6 小时前
SolidWorks学习大纲-从基础到全面精通,请看详情
学习
曦月逸霜6 小时前
离散数学-学习笔记(持续更新中~)
笔记·学习·离散数学
im_AMBER6 小时前
Leetcode 101 对链表进行插入排序
数据结构·笔记·学习·算法·leetcode·排序算法
Mr -老鬼6 小时前
Rust与Go:从学习到实战的全方位对比
学习·golang·rust