历史上的今天
返回首页

历史上的今天

今天是:2025年04月02日(星期三)

正在发生

2020年04月02日 | S3C2440芯片的时钟体系结构

2020-04-02 来源:eefocus

下图是S3C2440芯片的整体架构图:

其中,


AHB BUS为高速设备的总线,H即为high的意思。


APB BUS为低速设备的总线,P为英文单词peripheral(外围设备)。


不同的总线,挂载在上面的设备运行的频率肯定是不一样的,在我们这款S3C2440芯片中:

Fclk就是CPU的运行频率,最高可达400MHz


Hclk为高速设备的运行频率,最高可达136MHz


Pclk为低速设备的运行频率,最高可达68MHz


那么这三种时钟频率是怎么得到的,他们又是什么关系呢?


S3C2440这款芯片的时钟源为一个12M的晶振,再配合PLL(锁相环)就可以获得相应的频率。这里我们不对PLL的工作原理做详细,有兴趣的可以自查(好吧,我承认我不会)。下面给出一个时钟频率生成的结构图:

图中有些名词我们先解释一下:


OSC是晶振的意思

OM为选择器,可以设置它选择不同的时钟源                                                       

其中,OM[3:2]的设置可以获得不同的时钟来源,晶振(crystal)或者外部的时钟源(EXTCLK)

MPLL:main PLL

UPLL:USB PLL(用于usb设备)

上面的时钟频率生成图虽然看起来画了很多的东西,但是我们可以总结为一个简单的流程,就是:


晶振 ->  MPLL  -> FCLK  -> CPU


      |            |


      |            |(HDIV) -> HCLK ->AHB总线->nand flash控制器、


      |            |


      |            |(PDIV)->PCLK ->APB总线->I2C、GPIO、SPI等


      |


      | -> UPLL -> USB  


我们可以得到,Fclk是由晶振和MPLL得到的,而Fclk是用于CPU运行的频率。Fclk再经过分频器(HDIV和PDIV)之后就可以得到Hclk和Pclk。


下面我大概说明一下获得Fclk的一个过程:

当power变成高电平,也就是上电后:


复位引脚nRESET先维持一段时间(n代表低电平有效),等各种状态稳定后,才被拉高


上电后初始阶段,FCLK=晶振频率


nRESET被拉高后,CPU开始运行,PLL锁存OM[3:2]的值


在lock time期间,CPU停止运行。PLL开始工作


Lock time后,FCLK等于PLL输出的新时钟,CPU也开始工作


到这里,我们就大概知道这三种频率是怎么来的,以及他们的关系是什么样的了。虽然原理讲了一大堆,但是在实际的编程中,也就是设置一些寄存器的工作,了解原理只是为了我们更好的读懂芯片手册并设置寄存器。


这里我们举个例子,看一下怎么去设置寄存器,得到我们想要的时钟频率。假如我们想得到的时钟频率比是:


FCLK:HCLK:PCLK = 400MHz : 100MHz : 50MHz


(1)时钟频率比为1:4:8,所以我们要设置CLKDIVN寄存器为b0101=0x5(默认CAMDIVN[9]=0)

(2)由芯片给出的Fclk计算公式是:

Mpll就是我们要求的Fclk,Fin是晶振的频率12MHz,那么MDIV、PDIV和SDIV的值怎么得到呢?我们看下面的表格可以看出来,要得到12MHz的输入和400MHz的输出时,MDIV=92, PDIV=SDIV=1。那么MOLLCON寄存器的值就是(92<<12) | (1<<4) | (1<<0)

(3)至于locktime的设置,我们用默认值就好了(一般不确定怎么设置的时候。用默认值就好了)

根据上面的三个步骤,我们汇总一下可以到下面的代码:


/* 2.设置时钟 */

/*设置MPLL, FCLK:HCLK:PCLK = 400MHz : 100MHz : 50MHz*/

/*为了保险先初始化一下locktime*/

ldr r0, =0x4C000000

ldr r1, =0xFFFFFFFF

str r1, [r0]

 

/*设置CLKDVIN:

  *HDIVN[2:1] :    10  -  HCLK=FCLK/4

  *PDVIN[0]    :     1   -   PCLK=HCLK/2

  */

ldr r0, =0x4C000014

ldr r1, =0x5

str r1, [r0]

 

/*设置CPU为异步模式*/

mrc p15,0,r0,c1,c0,0

orr r0,r0,#0xc0000000  //R1_nF:OR:R1_iA 

mcr p15,0,r0,c1,c0,0

 

/*

  *Mpll = (2 * m * Fin) / (p * 2S) 

  *m = (MDIV + 8), p = (PDIV + 2), s = SDIV

  *当Fin=12MHz,若要 Mpll=400MHz,则有MDIV=92, PDIV=SDIV=1

  */

ldr r0, =0x4C000004

ldr r1, =(92<<12) | (1<<4) | (1<<0)

str r1, [r0]

 

/*一旦设置了PLL,就会锁定locktime直到PLL输出稳定

  *然后CPU工作于新的频率

  */

推荐阅读

史海拾趣

Cobham Semiconductor Solutions公司的发展小趣事

Cobham Semiconductor Solutions深知人才是企业发展的核心。因此,公司一直注重人才的引进和培养。公司积极招聘业界精英,为团队注入新的活力。同时,公司还建立了完善的培训体系,为员工提供持续的学习和发展机会。这种人才战略的实施,使得Cobham的团队素质不断提升,为公司的持续发展提供了有力保障。

DOMINANT公司的发展小趣事

随着公司业务的不断发展,统明亮开始积极拓展全球市场。它通过与国内外知名企业的合作,不断提升自身的品牌影响力和市场竞争力。同时,统明亮还积极参加各类国际展会和交流活动,与全球各地的客户建立了紧密的合作关系。这些努力使得统明亮在全球LED市场中的份额不断扩大,其品牌影响力也得到了进一步提升。

请注意,由于篇幅限制,以上仅为三个简要故事。如果需要更多关于DOMINANT公司的发展故事,建议查阅相关报道和资料。

超音(CY)公司的发展小趣事

品质是超音一直以来的追求。公司注重产品质量管理,建立了完善的质量检测体系,确保每一件产品都符合高标准的质量要求。同时,超音还加强了品牌建设,通过广告宣传、赞助活动等方式提升品牌知名度和美誉度。这些努力使得超音在消费者心中树立了良好的品牌形象,为公司的长期发展奠定了坚实的基础。

Hi-Optel Technologly Co Ltd公司的发展小趣事

品质是超音一直以来的追求。公司注重产品质量管理,建立了完善的质量检测体系,确保每一件产品都符合高标准的质量要求。同时,超音还加强了品牌建设,通过广告宣传、赞助活动等方式提升品牌知名度和美誉度。这些努力使得超音在消费者心中树立了良好的品牌形象,为公司的长期发展奠定了坚实的基础。

Firadec公司的发展小趣事

背景:假设Firadec公司(此处为虚构名称)成立于20世纪90年代初,正值半导体技术快速发展的时期。公司创始人是一位在半导体领域有深厚造诣的科学家,他带领团队研发出了一种新型低功耗、高性能的集成电路技术。

发展:这项技术迅速获得了市场的认可,Firadec公司凭借这一创新产品迅速在电子行业崭露头角。公司不断加大研发投入,持续优化产品性能,逐渐在智能手机、平板电脑等消费电子领域占据了一席之地。

影响:随着技术的不断成熟和应用领域的拓展,Firadec公司的市场份额逐年提升,成为了电子行业中的佼佼者。其技术创新不仅推动了公司自身的发展,也为整个电子行业的进步做出了重要贡献。

Cornerstone Sensors公司的发展小趣事

品质是Cornerstone Sensors的生命线。公司建立了严格的质量管理体系,从原材料采购、生产制造到产品测试等各个环节都进行严格把控。同时,公司还注重品牌建设,通过参加行业活动、发布技术文章、提供专业培训等方式提升品牌影响力。Cornerstone Sensors的产品逐渐成为行业内公认的高品质代表,赢得了广泛的口碑和市场份额。

问答坊 | AI 解惑

分析LM3S8962串口使用学习心得

LM3S8962串口模块特点;       1. 支持数据5~8位可配置;最高波特率3.125MHZ;       2. 起始位,停止位宽带可配置;       3. 校验方式可以配置,支持偶 ...…

查看全部问答>

一个专门给在杭软件硬件工作者开的群23267630

一个专门给在杭软件硬件工作者开的群23267630,欢迎在杭州从事软件,硬件开发的朋友加入…

查看全部问答>

请教PowerPC + CT69030显卡的问题

我在我们的PowerPC主板上,使用CT69030显卡。设置为1024x768,RGB565,刷新60hz. 图像能够显示,但颜色对不上,Red,green,blue都对不上,这个会是什么问题呢,我用的是vxWorks操作系统。     会不会是因为大小端的原因 ...…

查看全部问答>

华为生产计划手册,看到有人需要

【资料名称】:华为生产计划手册 \'|:S:A\'j$y;`\"d&xmscbsc 移动通信论坛拥有30万通信专业人员,超过50万份GSM/3G等通信技术资料,是国内领先专注于通信技术和通信人生活的社区。;A#K3^9o8R3L%F.{4h#` 【资料作者】:华为移动通信,通信工程师 ...…

查看全部问答>

有关USB总线数据包的问题,在线等,谢谢

我从总线上捕获的USB信号为:令牌包(省略)EOP KJKJKJKK KKJKJKKK(PID) JKJKJKJK JKJKJK EOP ACK(省略)环境说明:这个包是一个IN包(从device 发往主机的),用的是中断端点我现在不知道为什么PID后面 ...…

查看全部问答>

电烙铁拆卸QFP芯片方法

用电烙铁拆: 步骤1、用直径0.15mm左右的漆包线从第一排引脚下穿过,一头固定,一头拉在手里。 2、用电烙铁从漆包线动端加热,同时用手将漆包线向下拉,注意手和烙铁的配合。 3、然后用上述方法拆其余三排引脚。OK! 对印制板无任何损伤!…

查看全部问答>

铁电存储器无应答

STM32中模拟了一个I2C,与铁电通信时发现铁电无应答。因此读铁电的功能也不能用!!!! 有没有人碰到过这样的问题啊?大家给点意见嘛。        再对问题做点补充。模拟I2C中,PB.9做的SDA脚。在接受应答时,PB.9若设置成 ...…

查看全部问答>

音频信号分析仪完整资料(包含各种论文、方案)

本帖最后由 paulhyde 于 2014-9-15 09:10 编辑  …

查看全部问答>

DS18B20初始化

sbit sbit_D18B20_DQ = P3^7; bit b_DS18B20_is_reset = 0; int int_temperature = 0; uchar uc_DS18B20_dat_buf[9] = {0};         b_DS18B20_is_reset = 0;         sbit_D18B20_DQ = 1;   & ...…

查看全部问答>

招聘PCB工程师

一、任职要求: 1、电子相关专业大专以上学历,熟悉电子硬件知识、原理,精通电子电路知识; 2、 具有2年以上PCB Layout的设计经验; 3、 熟悉PCB单板工艺、PCB检验标准,熟练使用Pads软件进行多层PCB设计; 4、 有良好数/模电路知识者优先 ...…

查看全部问答>