历史上的今天
返回首页

历史上的今天

今天是:2025年02月27日(星期四)

正在发生

2020年02月27日 | S3C2440时钟体系及设置方法

2020-02-27 来源:eefocus

这几天一直忙着研究移植U-boot,移植U-boot的过程中有一步很重要,就是要设置s3c2440的时钟,什么 Fin,Fclk,Hclk,Pclk,Mpll,Upll等时钟信号,让初学者看得一头雾水,各种信号混淆不清,本人特意花了一点时间,把这些东东理了理,现整理如下:


首先得弄清一个大的框架,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可知:

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总线(Advanced High performance Bus)用的,比如说SDRAM,PCLK是APB总线(Advanced Peripheral Bus)用的,比如说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。


有了MPLL后,才可以谈对s3c2440的时钟设置,说通俗一点,MPLL就相当于一个工资标准,就拿我们公司做个例子吧,主管就相当于CPU,主管下面有各个项目组,每个项目组都有组长,组长下面有象我一样的员工,呵呵。


主管的工资肯定是最高的,因为CPU工作频率是最高的,所以主管就拿FCLK的标准,就是405MHz,仅次于主管的呢,也就是组长,s3c2440里就是内存了,也就是AHB总线用的,组长就按HCLK的标准,组长的工资肯定是根据主管的工资定的,s3c2440里确定的是HCLK=FCLK/4,普通员工就是PCLK=HCLK/2=FLCK/8,也就是APB总线使用的时钟频率。总的来说分频比为FCLK:HCLK:PCLK=1:4:8.这个分配标准是由谁定的呢,公司里肯定是Boss了,也就是寄存器了,也就是我们的CLKDIVN寄存器,看下datasheet中的介绍大家就清楚了:

组长,和员工的工资都是参照主管的工资而定的,那主管的工资怎么定呢,当然也是寄存器了,看datasheet介绍:

上面这个表,就给出了方法,对于12MHz的晶振,要想经过PLL电路得到405MHz,查表得应该设置MDIV、PDIV、SDIV分别为0x7f、2、1,当然也有计算公式,计算公式我在这里就不贴出来了,datasheet里面有,上面的表就是根据那个公式算来的。那在哪里设置这3个的值呢,还是datasheet:

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

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

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

讲到这里,关于s3c2440的时钟就基本结束了,写得好累啊,本人也是刚工作的菜鸟,由于只是有限,文中难免有错误,还忘浸淫嵌入式多年的大侠指正,小弟不甚感激!

推荐阅读

史海拾趣

General Transistor Corp公司的发展小趣事

为了进一步巩固市场地位和提升竞争力,GTC开始实施并购整合战略。公司通过收购具有技术优势和市场潜力的企业,实现了技术、产品和市场的快速扩张。同时,GTC还积极寻求战略转型,从单一的电子元器件分销商和生产商向综合性电子解决方案提供商转变。这一战略转型为公司带来了新的增长点和发展机遇。

Belkin公司的发展小趣事

随着电子行业的快速发展,贝尔金也紧跟时代步伐,不断进行技术革新和产品线拓展。2002年,贝尔金为苹果Dock连接器研发了一系列产品,包括汽车套件、电池组、读卡器等,这标志着它与苹果公司的深度合作开始。此后,贝尔金逐渐成为苹果官方合作配件制造商,其产品在苹果用户中享有很高的声誉。

ANSHAN [Anshan Suly Electronics]公司的发展小趣事

ANSHAN公司成立于上世纪末,当时正值电子行业的蓬勃发展期。创始人李先生凭借对电子技术的深厚理解和敏锐的市场洞察力,决定投身于这个充满机遇的领域。初创时期的ANSHAN面临资金短缺、人才匮乏和技术壁垒等多重挑战。然而,李先生带领团队日夜兼程,不断研发新产品,拓展市场渠道。他们坚持自主创新,不断攻克技术难题,逐渐在电子行业中崭露头角。

APC (APC by Schneider Electric)公司的发展小趣事

进入21世纪,数据中心成为了企业信息化建设的核心。APC凭借其在UPS电源保护领域的深厚积累,稳步向数据中心市场拓展。通过并购和技术创新,APC不仅成为了首个收入达到十亿美元的以UPS为主营业务的公司,更在数据中心领域推出了多款创新产品,如InfraStruXure®架构。这一架构将电源、制冷、机架和管理无缝集成为一个模块化、可扩展的、预制式解决方案,为数据中心带来了前所未有的效率和可靠性提升。

GE Solid State公司的发展小趣事
由于声音信号的模糊性和主观性,可能无法精确反映曝光量的细微变化。
Dymec公司的发展小趣事

面对数字化浪潮的冲击,Dymec公司积极拥抱变革,推动数字化转型。公司引入了先进的生产管理系统和智能制造技术,提高了生产效率和产品质量。同时,公司还加大了对大数据、云计算等新技术的研究和应用,为未来的发展提供了强有力的技术支撑。

这些故事共同见证了Dymec公司在电子行业中的成长与发展,展现了公司不断创新、追求卓越的精神风貌。

问答坊 | AI 解惑

转一篇学习STM8的好文章哈

第一节: 心情和时钟        说实话我能够使用的单片机不多,我总是以为无论什么单片机都能开发出好的产品。 前些年用51,总是向各位大大学习,无休止的索取,在网上狂览一通。心里感激的同时也想奉献一些,可是我会什么? ...…

查看全部问答>

Keil仿真进不了main

我用Keil写了一个Hello程序,然后进入仿真,可是断点却进不了main,我在startup.s里面看到有执行main的跳转,有没有人了解是什么原因?…

查看全部问答>

snmp MIB如何实现?

MIB文件一般都是从哪里获取的? 要在交换机上实现snmp agent,自己如何实现私有MIB?如何确定哪些功能需要实现? 高手帮忙! …

查看全部问答>

如何读懂WINCE驱动程序

我是大四的一名学生,我是自动化专业,想毕业可从事嵌入式系统这方面的工作,感觉自己智商不高,不敢搞应用程序的开发,因为涉及到许多算法等等.所以现在我想学习驱动编程,我只在书上看了一些WIN CE的基本驱动的结构, 书上说先看看PLATFORM BUILDER中的 ...…

查看全部问答>

高价收购现有MC68EZ328手持嵌入式RFID数据采集产品的方案

我现在有个项目要用手持的数据采集产品,现高价收购 要求如下: 1.提供原理图,PCB Layout 2.提供系统软件原代码 3.使用单片机或嵌入式CPU 4.读写RFID 5.将RFID资料用GRPS发给服务器 6.USB Host 7.4行汉字显示 8.数字键盘输入 价格可以 ...…

查看全部问答>

LC振荡电路的请教

  这个电路怎么分析的??为什么改变L的大小,一点影响都没有啊??…

查看全部问答>

EZ430-RF250汇总

       EZ430-RF2500已经进行了快两个月了,整理完了才感觉大家好像是在一个办公室里完成的任务,基本上没有多少重复帖的,都在完成自己的小模块,最后完成EZ430-RF2500这个大模块。前一段时间大家在一直讨论板子试 ...…

查看全部问答>

关于rom的读写的操作

我想从ROM里面读出我的存储的数据,见下图所示:假如存储器里面数据的地址分别为:0,1,2,3,相应的数据位65,67,67,67,那么读出来的数据顺序也应该是:65,67,67,67,但是我现在读出来的数据为:65,65,67,67,67,就多出来一个65.不知道原因是 ...…

查看全部问答>

CAN通信波形意外展宽

本人最近在调试CAN通信,监控DSP的CAN发送引脚TX,发现通信波形高电平脉宽变宽(低电平脉宽正常),导致不能通信,有碰见类似问题的朋友吗?只要传送的是高电平,脉宽都莫名被加宽,如果忽略高电平变宽问题,CAN发送波形编码一切正常。问题波形如下 ...…

查看全部问答>