嵌入式学习---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三者的比例。


相关推荐
dsywws3 小时前
Linux学习笔记之vim入门
linux·笔记·学习
IT B业生4 小时前
51单片机教程(六)- LED流水灯
单片机·嵌入式硬件·51单片机
晨曦_子画4 小时前
3种最难学习和最容易学习的 3 种编程语言
学习
一枝小雨4 小时前
51单片机学习心得2(基于STC89C52):串口通信(UART)
单片机·嵌入式硬件·51单片机
城南vision4 小时前
Docker学习—Docker核心概念总结
java·学习·docker
ctrey_5 小时前
2024-11-1 学习人工智能的Day20 openCV(2)
人工智能·opencv·学习
IT B业生5 小时前
51单片机教程(一)- 开发环境搭建
单片机·嵌入式硬件·51单片机
十年之少5 小时前
由中文乱码引来的一系列学习——Qt
学习
u0101526586 小时前
STM32F103C8T6学习笔记2--LED流水灯与蜂鸣器
笔记·stm32·学习
王俊山IT7 小时前
C++学习笔记----10、模块、头文件及各种主题(二)---- 预处理指令
开发语言·c++·笔记·学习