历史上的今天
返回首页

历史上的今天

今天是:2025年05月10日(星期六)

正在发生

2019年05月10日 | ARM时钟体系(S3C2440)

2019-05-10 来源:eefocus

先看S3C2440的时钟发生模块的框图

在这里插入图片描述

从左上开始看,可以看出时钟源有两种分别为 :晶振(通过OSC进入)、外部时钟。

通过设置OM3、OM2的引脚可以设置OM[3:2]的状态,来选择时钟源。具体如何设置如下图。

在这里插入图片描述

继续看框图,通过OM的时钟源进入PLL锁相环,通过设置MPLLCON里的P、M、S 的值,可以设置PLL的输出频率(MPLL)。

MPLL直接提供给FCLK, FCLK经过时钟分频控制(CLKDIVN)寄存器,通过HDIVN分频给HCLK,通过PDIVN分频给PCLK。


再看一下启动过程:

在这里插入图片描述

以外部时钟源为晶振为例,具体过程为:

1 上电,先复位。

2 FCLK根据OM[3:2]的值, FCLK=晶振。

3 等待晶振发出时钟稳定之后再释放nRESET,PLL锁存PLLOM[3:2]的值。

4 然后软件配置PLL,然后进入lock time,等待配置完成。此时的FCLK无输出,CPU停止。

5 配置完成,lock time 时间到,然后FCLK输出按照新配置的频率,CPU运行。


编程

目的:使FCLK=400MHz,HCLK=100MHz,PLCK=50MHz

使用时钟源为12MHz的晶振


根据前面分析可得:

1.OM[3:2]的状态设置为00,即OM3 、OM2引脚都接地。

2.然后就是设置locktime

3.MPLLCON寄存器的P、M、S

4.时钟分频控制(CLKDIVN)寄存器的HDIVN、PDIVN


用到的特殊寄存器

在这里插入图片描述

在这里插入图片描述

在数据手册中还有一点需要注意的:

在这里插入图片描述

所以,要配置为异步模式。

设置locktime 为默认值0xffffffff。

MPLLCON寄存器的P、M、S的设置为92、1、1。

时钟分频控制(CLKDIVN)寄存器的HDIVN、PDIVN设置为10、1.


只在汇编的起始文件start.S中设置时钟就可以了

代码如下:


.text

.global _start


_start:


/* 关闭看门狗 */

ldr r0, =0x53000000

ldr r1, =0

str r1, [r0]

/* 设置locktime(0x4C000000)为0xffffffff */

ldr r0, =0x4C000000

ldr r1, =0xffffffff

str r1, [r0]

/* 设置CLKDIVN(0x4C000014)为0x5 */

ldr r0, =0x4C000014

ldr r1, =0x5

str r1, [r0]

/* 设置异步模式 */

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

orr r0,r0,#0xc0000000

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


/* 设置PLLCON(0x4C000004)的M、P、S */

ldr r0, =0x4C000004

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

str r1, [r0]

ldr sp, =4096 /* nand 启动 */


bl main

halt:

b halt



推荐阅读

史海拾趣

Custom Mmic Design Services Inc公司的发展小趣事

随着市场竞争的加剧,CMDS意识到仅仅依靠技术创新是不够的,还需要提供差异化的服务。于是,公司推出了定制化MMIC设计服务,根据客户的具体需求和应用场景,量身定制解决方案。这种服务模式不仅提高了客户满意度,也增强了CMDS的市场竞争力。通过不断优化服务流程和提高设计质量,CMDS逐渐在定制化服务市场上树立了良好的口碑。

Eclipse Magnetics公司的发展小趣事

近年来,随着电子行业的快速发展和市场竞争的加剧,CMDS也面临着诸多挑战。例如,原材料价格波动、人工成本上升、环保要求提高等都给公司的生产和经营带来了压力。然而,CMDS凭借其强大的技术实力和市场竞争力,积极应对这些挑战。通过优化生产流程、提高生产效率、加强成本管理等措施,CMDS不仅成功克服了这些困难,还实现了稳健的发展。同时,公司还注重环境保护和社会责任,积极推动可持续发展战略的实施。

Dalian Dlicap Corporation公司的发展小趣事

大连达利凯普科技股份公司自成立以来,始终坚持自主创新和技术研发。公司拥有一支专业的研发团队,致力于射频微波磁介电容器(射频微波MLCC)的研发和生产。通过不懈努力,公司成功掌握了射频微波MLCC的关键核心技术,并获得了全部自主知识产权。这一技术突破不仅使达利凯普在行业内树立了技术领先地位,也为公司赢得了广泛的市场认可。

国兴(GOODSKY)公司的发展小趣事

2023年12月29日,大连达利凯普科技股份公司在深圳证券交易所创业板正式挂牌上市,股票代码为301566。这一里程碑式的事件标志着公司进入了一个新的发展阶段。上市融资将为达利凯普提供更多的资金支持和发展机遇,公司将继续加大研发投入和市场拓展力度,不断推动技术创新和产业升级。同时,达利凯普也将积极履行社会责任和义务,为电子行业的发展做出更大的贡献。

请注意,这些故事概要基于现有信息整理而成,具体细节可能因时间、环境等因素而有所不同。

Ericsson公司的发展小趣事

Ericsson公司在早期就非常注重市场拓展和全球布局。通过与各国电信运营商建立合作关系,Ericsson成功将其产品和服务推广到了全球各地。特别是在中国市场,Ericsson早在19世纪90年代就与中国签订了供货合同,成为中国通信网络建设的重要参与者。如今,Ericsson已经在中国扎根130余年,成为了唯一一家从1G到5G全程参与中国通信网络建设的企业。

Crocus Technology公司的发展小趣事

随着技术的不断成熟和市场需求的变化,Crocus Technology开始拓展其产品线。2015年,公司成功推出了首款磁开关产品,这标志着公司在磁传感器领域迈出了重要的一步。随后,公司又陆续推出了位置传感和2D传感器产品,进一步巩固了其在磁传感器市场的地位。

问答坊 | AI 解惑

VC++2005 如何使用sqlce数据库?[急]100分

小弟最近在做嵌入式使用到sqlce,可以不知道如何全用VC++访问Sqlce,从网上看到有人说:         SqlCeConnection conn=new SqlCeConnection(); 没想到就这么着一句也会出错,居然是SqlCeConnection未声明; Error  &n ...…

查看全部问答>

烧写时候启动找不到FLASH ID?

    现象:我们的硬件平台配置是:PXA270+两片Norflsh(intel strata flash 28F256P30B),通过Jflashmm.exe进行烧写,有两块主板烧写出错:一片能读出ID(0x8919),另一片读不对(FFFF)或者(0x0000),都是low part块,是Flash坏了吗 ...…

查看全部问答>

寄存器读写问题

在写驱动的时候,映射好地址后,在操作寄存器过程中,有两种方法,不知道是不是驱动里都可以用呢? 1、通过SETREG32或CLRREG32等来读/写寄存器 如:SETREG32(®,  (1…

查看全部问答>

请教2个函数

1、我定义char a[10];          int i =0; 可以用        _snprintf(a, 10, \"%d\", i); 但使用RtlStringCchPrintfW(a, 10, \"%d\", i)时出错 2、我定义BK_CMD_T tAtCmd;     &n ...…

查看全部问答>

编译wince5.0时怎么把touchpanel关掉啊?

因为我板子上没有接touchpanel,wince启动会等待触摸屏校准,如何关掉这个驱动,跳过校准这一步?…

查看全部问答>

STM32如何实现精确延时

                                 STM32如何实现精确延时到us…

查看全部问答>

关于局部,全局变量(DS18b02温度传感仿真遇到 的问题)

uchar  dsreadebyte() {         uchar dat; uchar i,j;         for (i=0;i>=1;                    _nop_();    ...…

查看全部问答>

求MSP-EXP430F5529的三轴加速度传感器使用方法

想用MSP-EXP430F5529的三轴加速度传感器检测一个人是否跌倒,但没用过三轴加速度传感器,不知有没有大神能够指导一下这个的用法。…

查看全部问答>

用msp430g2553写了一个捕获程序,但怎么进不了中断呢?请各位指点一下,谢谢!

P1DIR |= BIT1;   P1SEL |= BIT1; //捕获端口使能 TACCTL1 |= CM_1 + CAP + SCS + CCIE; //配置控制寄存器   TACTL |= TASSEL_2 + MC_2 + TACLR; TACTL &= ~CCIFG; _EINT(); //中断使能 while (1) { …… } ...…

查看全部问答>

速求Verilog编写的电梯程序

最好是浅显易懂,带有注释的…

查看全部问答>