当前位置:首页 > 单片机 > 单片机
[导读]s3c2440 cpu的默认工作主频有两种12MHz和16.9344MHz,也就是我们的晶振的频率,但一般12MHz的晶振用的比较多,Fin就是指我们接的晶振频率。大家都知道s3c2440上电正常工作后频率是远远大于12MHz和16.9344MHz的,我们

s3c2440 cpu的默认工作主频有两种12MHz和16.9344MHz,也就是我们的晶振的频率,但一般12MHz的晶振用的比较多,Fin就是指我们接的晶振频率。大家都知道s3c2440上电正常工作后频率是远远大于12MHz和16.9344MHz的,我们的s3c2440的cpu正常工作时的频率就是405MHz,因此这就需要一个电路来提升频率,在s3c2440的datasheet中找到了这个电路,下面这个就是PLL电路:

由图中可以看出,Fin进去后,经过PLL电路,最终输出两个PLL信号频率即MPLL和UPLL,这两个又是什么呢

UPLL是专用于USB设备的,MPLL是用于CPU及外围电路的,不清楚,还是得找s3c2440的datasheet,下面这就是从datasheet中截取的:

图中给出了各种接口设备使用的时钟信号

UPLL是USB专用,这里就不讲了,下面重点讲下MPLL,刚才已经说了MPLL主要用于CPU和外围设备,但外围设备和CPU的工作频率并不一样啊,CPU的工作频率肯定比外设要高,这就必然要对MPLL进行处理,于是FCLK,HCLK,PCLK就登场了

首先讲下FCLK,首先看下datasheet中的介绍:

The Clock control logic in S3C2440A can generate the required clock signals including FCLK for CPU, HCLK for the
AHB bus peripherals, and PCLK for the APB bus peripherals.

相信搞嵌入式的都能看的懂,FCLK是CPU用的,HCLK是AHB总线用的,比如说SDRAM,PCLK是APB总线用的,比如说UART。这三个我们一个个来讲解,首先看FCLK,CPU用的,看datasheet中的关于FCLK的时序图,我们就会看出一些东东。

从上面的图中可以看到FCLK在CPU上电后,过了一段时间就发生了比较大的变化,明显值变大了,从上面这个图中我们可以大致看出s3c2440上电启动过程:

1、上电几毫秒后(power由低变高),晶振输出稳定,此时FCLK=晶振频率,nRESET信号恢复高电平后,CPU开始执行指令。

2、我们可以在程序开头启动MPLL,在设置MPLL的几个寄存器后,需要等待一段时间(Lock Time),MPLL的输出才稳定。在这段时间(Lock Time)内,FCLK停振,CPU停止工作。Lock Time的长短由寄存器LOCKTIME设定。

3、Lock Time之后,MPLL输出正常,CPU工作在新的FCLK下。

现在对FCLK进行总结一下,FCLK,在CPU上电后,晶振开始正常工作,此时FCLK=晶振频率,注意此时不存在MPLL,经过PLL电路后,得到MPLL,UPLL。此时FCLK=MPLL。

总的来说分频比为FCLK:HCLK:PCLK=1:4:8,这个分配标准是由谁定的呢,就是我们的CLKDIVN寄存器,看下datasheet中的介绍大家就清楚了:

S3C2440使用了三个倍频因子MDIV、PDIV和SDIV来设置倍频,通过寄存器MPLLCON&UPLLCON可设置倍频因子。

MPLLCON的输入输出频率间的关系为

FCLK=MPLL=(2*m*Fin)/(p*2^s) ,其中m=(MDIV+8), p=(PDIV+2), s=SDIV。

UPLLCON的输入输出频率间的关系为

UCLK=UPLL=(m * Fin) / (p * 2^s) ,其中m=(MDIV+8), p=(PDIV+2), s=SDIV。

手工计算相对复杂些,我们可以根据欲得到的主频FCLK大小,直接通过查表来获知各倍频因子的设置参数。

对于12MHz的晶振,要想经过PLL电路得到405MHz,查表得应该设置MDIV、PDIV、SDIV分别为0x7f、2、1。

那在哪里设置MDIV、PDIV和SDIV这3个值呢,还是datasheet:

从上图可以看出,我们只需要设置MPLLCON寄存器就可以确定FCLK了,再通过CLKDIVN寄存器我们就可以设置FCLK、HCLK、PCLK三者之间的比例了。

关于时钟设置的还有一个寄存器,就是LOCKTIME,在上面的时序图中可以看到它的身影,datasheet中介绍:

前面说过,MPLL启动后需要等待一段时间(Lock Time),使得其输出稳定。位[31:16]用于UPLL,位[15:0]用于MPLL。使用确省值0x00ffffff即可。

讲到这里,相信大家对s3c2440的时钟配置应该都明白了吧。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

香港2022年7月7日 /美通社/ -- 寿康集团有限公司(“寿康集团”或“本公司”及其附属公司,统称“本集团”;股份代号:0575.HK)旗下全资附属公司、并以香港为基地的人工智能创新公司及衰老与长寿深层生物...

关键字: 时钟 VI GE EV

文章转自知乎[MIPI自学笔记],作者IEEE1364https://zhuanlan.zhihu.com/p/926820471 MIPI概述MIPI是MobileIndustryProcessorInterface的...

关键字: MIPI LAN 数据流 时钟

1、为设计执行综合时使用的各种设计约束是什么?1.1、创建时钟(频率、占空比)。1.2、定义输入端口的transition-time要求1.3、指定输出端口的负载值1.4、对于输入和输出,指定延迟值(输入延迟和输出延迟)...

关键字: 数字芯片 时钟 WIRE CK

如今,SoCs正变得越来越复杂,数据经常从一个时钟域传输到另一个时钟域。上图信号A由C1时钟域触发,被C2时钟域采样。根据这两个时钟之间的关系,在将数据从源时钟传输到目标时钟时,可能会出现不同类型的问题,并且这些问题的解...

关键字: 时钟 触发器 同步器 SETUP

本文主要介绍各种类型的跨时钟域问题。同步时钟是指具有已知相位和频率关系的时钟。这些时钟本质上是来自同一时钟源。根据相位和频率关系,可分为以下几类:具有相同频率和零相位差的时钟具有相同频率和固定相位差的时钟具有不同频率和可...

关键字: 异步 时钟 相位差 SETUP

跨时钟域验证可分为结构验证和功能验证两类。结构验证确保在需要的地方添加了适当的同步逻辑。功能验证确保已添加的逻辑实现了预期的功能。仅通过执行结构验证,就可以检测到许多CDC问题。这些检查比功能验证更简单、更快。因此,验证...

关键字: 时钟 数据传输 信号 TE

来源:射频百花谭规范很重要工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件还是硬件),不按照规范走几乎是不可实现的。逻辑设计也是这样:如果不按规范做的话,过一个月后调试时发现有错,回头再看自己写的...

关键字: VERILOG 时钟 计数器 仿真验证

中断服务程序

关键字: 时钟 中断程序

首先通过按“校时、校分、校星期”等按键,校对好时间。 先检查时钟显示是否当前时间一致,如需重新校准,在按住“时钟”键的同时,分别按住“校星期”、“校时”、“校分”键,将时钟调到当前准确时间。

关键字: 自动开关定时器 时钟

出品21ic论坛qbwww网站:bbs.21ic.com做一个桌面时钟大家好,我是qbwww,今天我们来做一个桌面时钟。淘宝买的套件。首先呢,我们先看一下原理图,简单的了解一下连线方式。简单的了解了一下连线的方式呢,我们...

关键字: 时钟
关闭
关闭