当前位置:首页 > 单片机 > 单片机
[导读](时钟体系)时钟概念:★时钟脉冲:一个按一定电压幅度,一定时间间隔连续发出的脉冲信号;★时钟频率:在单位时间(如:1秒)内产生的时钟秒冲数;时钟的作用:时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状

(时钟体系)

时钟概念:

★时钟脉冲:一个按一定电压幅度,一定时间间隔连续发出的脉冲信号;

★时钟频率:在单位时间(如:1秒)内产生的时钟秒冲数;

时钟的作用:

时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状态何时更新。数字芯片中众多的晶体管都工作在开关状态,它们的导通和关断动作无不是按照时钟信号的节奏进行的。

时钟的作用(简洁版)

系统中的设备需要有个时间来和它进行同步—即靠时钟!

时钟的产生-晶振

晶振:晶体振荡器,是用石英晶体精密切割做成。

优点:振荡频率非常稳定;振荡频率很准确;结构简单、噪声低。

缺点:生产成本高,交货周期较长,不利于客户加快产品上市时间,而且难以获得非常标准的频率。

时钟产生-PLL

PLL:(锁相环)合成器是一种更为复杂的系统时钟源。通过PLL合成器需要一个外部晶体并包含一个能够对晶体的特定频率加倍或分频的集成锁相环PLL电路。

S3C2440时钟体系

S3C2440的主时钟晶振来自外部晶振(XTIPLL),或者是外部时钟(EXTCLK)。时钟生成器包含了一个振荡器(振荡放大器),其连接外部晶振,可以产生需要的高频,通过引脚OM[3:2]来决定时钟源时Crystal还是EXTCLK.

S3C2440时钟体系

S3C2440有两个PLL:(1)MPLL和(2)UPLL,

UPLL专用于USB设备。

MPLL用于CPU及其他外围器件。

通过MPLL会产生三个部分的时钟频率:FCLK、HCLK、PLCK.

FCLK:用于CPU核;

HCLK:用于AHB(常用于高速外设)总线的设备,比如:SDRAM;

PCLK:用于APB(常用于低速外设)总线的设备,比如:UART.

时钟启动流程:

1.上电几毫秒后,外部晶振输出稳定,FCLK=外部晶振频率(12MHZ),nRESET

信号恢复高电平后,CPU开始执行命令。

2.在设置MPLL的几个寄存器后,需要等待一段时间(Lock Time),MPLL的输出才稳定。在这段时间(Lock Time)内,FCLK停振,CPU停止工作。

Lock Time的长短由寄存器LOCKTIME设定。

3.Lock Time之后,MPLL输出正常,CPU工作在新的FCLK(如:400MHZ)下。

寄存器:

设置S3C2440的时钟频率就是设置相关的几个寄存器:

1.LOCKTIME寄存器

2.MPLLCON寄存器

3.CLKDIVN寄存器

寄存器-LOCKTIME

MPLL启动后需要等待一段时间(Lock Time),使得其输出稳定。

位[31:16]用于UPLL,

位[15:0]用于MPLL.

使用缺省值0xffff ffff

寄存器-MPLLCON

该寄存器用于设置FCLK(cpu的时钟频率)与Fin的倍数(Fin:输入的时钟频率)

位[19:12]的值称为MDIV

位[9:4]的值称为PDIV

位[1:0]的值称为SDIV

FCLK与Fin的计算关系式如下:

MPLL(FCLK) = (2*m*Fin)/(p*2^s)

其中:m= MDIV+8 ,p=PDIV+2 , s= SDIV

寄存器-CLKDIVN

该寄存器用于设置FCLK、HCLK、PCLK三者的比例

★HDIVN:位[2:1],用来设置HCLK与FCLK比例关系

★PDIVN:位[0],用来设置PCLK与HCLK比例关系

例如:

FCLK:HCLK:PCLK=4:2:1

FCLK=400MHZ(主频)

HCLK=200M

PCLK=100M

巧计,速记2图:

图1:

图2:

S3C2440定时器

S3C2440共有5个16位的定时器。其中定时器0、1、2、3有PWM功能,他们都有一个输出引脚,可以通过定时器来控制引脚周期性的高、低电平变化;

定时器4没有输出引脚。

S3C2440定时器

定时器部件的时钟源为--PCLK,(经过两次分频)

首先通过两个8位的预分频器降低频率:定时器0、1共用第一预分频器,

定时器2、3、4公用第二个预分频器。

再次预分频器的输出将进入第二级分频器,它们输出5种频率的时钟:2分频、4分频、8分频、16分频或者外部时钟TCLK0、TCLK1,每个定时器的工作时钟也可以从这5种频率中选择。

定时器初始化:步骤:

1.定时器时钟频率

(定时器的时钟频率需要经过两次的分频)例如:定时器的时钟频率50--表示:每一秒钟把定时器的初始值减去50;

2.设置定时器计数值;

--即设置定时器的初始值(比较值为0)

3.设置中断处理函数;--即定时器到时间时去处理什么函数

定时器输出时钟频率=PCLK/{prescalervalue+1} /{divider value}

{prescaler value} =0 ~255(第一次预分频通过TCFG0设置)

{divider value} = 2, 4, 8, 16(第二次预分频通过TCFG1设置)

TCMPB0:定时器n的比较值

TCNTB0:初始计数值(放到TCNT0后TCNT0会自动减一直到减到== TCMPB0)

之后设置TCON会自动重新装载TCMPB0和TCNTB0再次重新计数

定时器工作流程

1.程序初始化,设置TCMPBn、TCNTBn这两个寄存器,它们表示定时器n的比较值、初始计数值。

2.设置TCON寄存器定时器n,这时TCMPBn、TCNTBn的值将被装入其内部寄存器TCMPn、TCNTn中。在定时器n的工作频率下,TCNTn开始减一计数,其值可以通过读取TCNTOn寄存器得知。

3.当TCNTn的值等于TCMPn的值时,定时器n的输出管脚TOUTn反转;TCNTn继续减一计数。

4.当TCNTn的值到达0时,器输出管脚TOUTn再次反转,并触发定时器n的中断。

5.当TCNTn的值到达0时,如果TCON寄存器中将定时器n设为“自动加载”,则TCMPB0和TCNTB0寄存器的值被自动装入TCMP0和TCNT0寄存器中,下一个计数流程开始。


#defineGLOBAL_CLK1

#include

#include

#include"def.h"

#include"option.h"

#include"2440addr.h"

#include"2440lib.h"

#include"2440slib.h"

#include"mmu.h"

#include"profile.h"

#include"memtest.h"

voidTimer0_init(void);

staticvoid__irqIRQ_Timer0_Handle(void);

voidSet_Clk(void);

staticvoidcal_cpu_bus_clk(void);

voidLed1_init(void);

voidLed1_run(void);

/*************************************************

Functionname:delay

Parameter:times

Description:延时函数

Return:void

Argument:void

Autor&date:

**************************************************/

voiddelay(inttimes)

{

inti,j;

for(i=0;i

for(j=0;j<400;j++);

}

/*************************************************

Functionname:Main

Parameter:void

Description:主功能函数

Return:void

Argument:void

Autor&date:Daniel

**************************************************/

voidMain(void)

{

Set_Clk();

MMU_Init();

//Uart_Init(0,115200);

//Uart_Select(0);

Led1_init();

Timer0_init();

while(1);

}

/*************************************************

Functionname:Timer0_init(void)

Parameter:void

Description:定时器的初始化

Return:void

Argument:void

Autor&date:Daniel

**************************************************/

voidTimer0_init(void)

{

//Timer0init

rTCFG0=49;//pclk/(49+1)

rTCFG1=0x03;//16分频=62500HZ

rTCNTB0 = 6250

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭