收藏 分销(赏)

系统时钟与定时器.pptx

上传人:人****来 文档编号:4187221 上传时间:2024-08-13 格式:PPTX 页数:110 大小:3.94MB
下载 相关 举报
系统时钟与定时器.pptx_第1页
第1页 / 共110页
系统时钟与定时器.pptx_第2页
第2页 / 共110页
系统时钟与定时器.pptx_第3页
第3页 / 共110页
系统时钟与定时器.pptx_第4页
第4页 / 共110页
系统时钟与定时器.pptx_第5页
第5页 / 共110页
点击查看更多>>
资源描述

1、第第1010章章 系系统时钟与定与定时器器2 在前面的几章中,当程序需要延在前面的几章中,当程序需要延时的的时候,我候,我们基本上都基本上都是利用循是利用循环语句来句来实现的,的,这种方法的延种方法的延时虽然然简单,但,但是不是很精确,也就是是不是很精确,也就是说不能得到确切的一段不能得到确切的一段时间的延的延时。在嵌入式系在嵌入式系统中有很多情况都是需要精确的延中有很多情况都是需要精确的延时的,而想的,而想通通过精确延精确延时来来实现的一些操作一般不会通的一些操作一般不会通过循循环语句来句来实现了,一般是利用定了,一般是利用定时器来器来实现。S5PV210的的时钟体系。体系。实时时钟RTC和

2、控制器。和控制器。PWM定定时器。器。WATCHDOG定定时器。器。定定时器的使用器的使用实例。例。本章内容:本章内容:10.1 S5PV210的的时钟体系体系10.1.1 系系统时钟概述概述一般来一般来说,MCU的主的主时钟源主要是外部晶振或外源主要是外部晶振或外部部时钟,而用得最多的是外部晶振。在正确情况,而用得最多的是外部晶振。在正确情况下,系下,系统内所使用的内所使用的时钟都是外部都是外部时钟源源经过一一定的定的处理得到的,由于外部理得到的,由于外部时钟源的源的频率一般不率一般不能能满足系足系统所需要的高所需要的高频条件,所以往往需要条件,所以往往需要PLL进行倍行倍频处理。理。S5p

3、V210包括三个包括三个时钟域,即主要系域,即主要系统MSYS、显示系示系统DSYS和外和外围系系统PSYS。MSYS域包括域包括Cortex-A8处理器、理器、DRAM内存控制内存控制器、器、3D、内部存、内部存储器、芯片配置界面。器、芯片配置界面。Cortex-A8只支持同步模式,因此它必只支持同步模式,因此它必须与与200MHZ AXI总线同步操作。同步操作。DSYS域包含域包含显示相关模示相关模块,包括,包括FIMD、FIMC、JPEG、IPS多媒体。多媒体。PSYS域用于安全子系域用于安全子系统、I/O外外设和低功耗音和低功耗音频播放。播放。每个每个总线系系统操作在操作在200MHZ

4、、166HZ和和133HZ,分分别有异步有异步总线桥梁在两个不同的梁在两个不同的领域。域。S5PV210 时钟域域10.1.2 时钟声明声明下下图显示了示了S5PV210是是时钟的分的分类,S5PV210顶层时钟包括:包括:时钟引脚,即引脚,即XRTCXTI、XXTI、XUSBXTI、XHDMIXTI。时钟管理管理单元(如元(如ARMCLK、HCLK、PCLK等)。等)。USB PHY时钟。GPIO引脚引脚时钟。1.时钟引脚引脚(1)XRTCXTI:指定一个由:指定一个由32.768kHz晶振提供的晶振提供的时钟连接到接到XRTCXTI和和XRTCXTO引脚。引脚。RTC使用使用这个作个作为时

5、钟源来提供源来提供实时时钟。(2)XXTI:指定一个由晶振提供的:指定一个由晶振提供的时钟连接到接到XXTI和和XXTO引脚。当引脚。当USB PHY没有做有价没有做有价值设置置时,CMU和和PLL使用使用这个个时钟生成其他的生成其他的时钟模模块。它。它输入入频率的范率的范围为12-50MHz,推荐使用,推荐使用24MHz晶振,因晶振,因为iROM设计时基于基于24MHz输入入时钟的。的。(3)XUSBXTI:指定一个由晶振提供的:指定一个由晶振提供的时钟连接到接到XUSBXTI和和XUSBXTO引脚。引脚。这个个时钟是提供是提供给APLL、MPLL、VPLL、ELL和和USB PHY。推荐使

6、用。推荐使用24MHZ晶振,晶振,因因为iROM设计时基于基于24MHZ输入入时钟的。的。(4)XHDMIXTI:指定一个由:指定一个由27MHZ晶振提供的晶振提供的时钟连接到接到XHDMIXTI和和XHDMIXTO引脚。引脚。2.时钟管理管理单元元CMU使用使用时钟引脚生成内部引脚生成内部时钟频率,四个率,四个锁相相环,USB PHY 和和HDMI PHY时钟。这些些时钟可以可以选择,并提供,并提供扩展相展相应的模的模块。推荐使用推荐使用24MHZ时钟频率作率作为APLL、MPLL、EPLL和和VPLL的的输入。以下部分生成内部入。以下部分生成内部时钟:APLL使用使用FINPLL作作为输入

7、源来生成入源来生成30MHZ-1GHZ。MPLL 使用使用FINPLL作作为输入源来生成入源来生成50MHZ-2GHZ。使用使用FINPLL EPLL作作为输入源来生成入源来生成10-600MHZ。VPLL使用使用FINPLL或或SCLK_HDMI27M作作为输入源来生成入源来生成10-600MHZ。这个个锁相相环产生生54MHZ视频时钟。USB OTG PHY使用使用XUSBXTI产生生30MHZ和和48MHZ。使用使用XUSBXTI或或XHDMIXTI HDMI PHY 生成生成54MHZ。3.时钟关系关系时钟有以下关系。有以下关系。(1)MSYS时钟域:域:频率(率(ARMCLK)=频率

8、(率(MOUT_MSYS)/n n=1-8频率(率(HCLK_MSYS)=频率(率(ARMCLK)/n n=1-8频率(率(PCLK_MSYS)=频率(率(HCLK_MSYS)/n n=1-8频率(率(HCLK_IDEM)=频率(率(HCLK_MSYS)/2(2)DSYS时钟域:域:频率(率(HCLK_DSYS)=频率(率(MOUT_DSYS)/n n=1-16频率(率(PCLK_DSYS)=频率(率(HCLK_DSYS)/n n=1-8(3)PSYS时钟域:域:频率(率(HCLK_PSYS)=频率(率(MOUT_PSYS)/n n=1-16频率(率(PCLK_PSYS)=频率(率(HCLK_

9、PSYS)/n n=1-8频率(率(SCLK_ONENAND)=频率(率(HCLK_PSYS)/n n=1-8(4)推荐的高性能操作)推荐的高性能操作频率率值:频率(率(ARMCLK)=1000 MHZ频率(率(HCLK_MSYS)=200 MHZ频率(率(HCLK_IMEM)=100 MHZ频率(率(PCLK_MSYS)=100 MHZ频率(率(HCLK_MSYS)=166 MHZ频率(率(PCLK_DSYS)=83 MHZ频率(率(HCLK_PSYS)=133 MHZ频率(率(PCLK_PSYS)=66 MHZ频率(率(SCLK_ONENAND)=133 MHZ166MHZ(5)锁相相环(

10、PLL):):APLL可以可以驱动MSYS和和DSYS域,它可以域,它可以产生生1GHZ的的时钟和和49:51的占空比。的占空比。MPLL可以可以驱动MSYS和和DSYS域,它可以域,它可以产生生2GHZ的的时钟和和40:60的占空比。的占空比。EPLL主要用于生成音主要用于生成音频时钟。VPLL主要用于生成主要用于生成视频系系统操作操作时钟,54MHZ。通常通常APP驱动MSYS域、域、MPLL驱动DSYS域。域。10.1.3 时钟的的产生生下下图显示了框示了框图的的时钟生成生成逻辑。一个外部晶体。一个外部晶体时钟连接接到振到振荡放大器,放大器,S5PV210把把锁相相环输入低入低频率率时钟

11、转换成成高高频时钟,时钟发生器生器还包括一个内置的包括一个内置的逻辑电路来路来稳定定每个系每个系统复位后的复位后的时钟频率。率。同同时图中中显示了两种示了两种类型的型的时钟多路复用。灰色代表无干多路复用。灰色代表无干扰时钟多路复用器,如果多路复用器,如果时钟出出现干干扰不改不改时钟源,白色源,白色代表非无干代表非无干扰时钟多路复用器,当受到干多路复用器,当受到干扰可以改可以改变时钟源,使用每个多路复用源,使用每个多路复用时钟必必须注意。注意。对于无干于无干扰时钟多多路复用器,当路复用器,当时钟从其中一个改从其中一个改变到另一个,它到另一个,它应该保保证这两个两个时钟源都在运行;否源都在运行;否

12、则,时钟将不完全改将不完全改变并且会并且会产生未知状生未知状态的的时钟输出。出。对于非无干于非无干扰时钟多路复用器,多路复用器,当当时钟选择改改变,它可能出,它可能出现干干扰。10.1.4 每个子每个子块最大工作最大工作频率率每个子每个子块最大工作最大工作频率如率如图所示:所示:10.1.5 时钟配置配置过程程更改更改时钟配置要遵循以下配置要遵循以下规则:所有所有输入的无干入的无干扰时钟多路复用器必多路复用器必须运行。运行。当当锁相相环不工作不工作时,不能,不能选择锁相相环的的输出。出。基本的特殊功能寄存器配置流程如下:基本的特殊功能寄存器配置流程如下:(1)打开一个)打开一个锁相相环。一旦打

13、开任何。一旦打开任何锁相相环,不,不要关掉。要关掉。(A,M,E,V)PLL_CON31=1;/打开一个打开一个锁相相环Wait_lock_time;/等到等到锁相相环锁定定(A,M,E,V)PLL_SEL=1;/在在锁相相环输出出时钟稳定后,定后,选择锁相相环输出出时钟代替代替输入参考入参考时钟。(2)改)改变锁相相环的的PMS值。Set PMS values;/设置置PDIV、MDIV和和SDIV值(3)改)改变系系统时钟的分的分频器器值。CLK_DIV0 31:0=target value0;(4)改)改变特殊特殊时钟的分配器的分配器值。CLK_DIV1 31:0=target valu

14、e1;CLK_DIV2 31:0=target value2;10.1.6 系系统时钟相关寄存器相关寄存器1.锁定定时间计数寄存器数寄存器当当输入入频率率变化或分化或分频值改改变时锁相相环需要需要锁定。定。锁相相环锁寄存器指定寄存器指定这个个锁定期定期间,这是基于是基于PLL时钟的来源。在此期的来源。在此期间,输出将低状出将低状态。寄。寄存器的定存器的定义和配置描述如下:和配置描述如下:2.锁相相环控制寄存器控制寄存器(1)APLLCON0寄存器。寄存器。该寄存器寄存器设置置MDIV、PDIV、SDIV三个参数的三个参数的值。这样设置是因置是因为系系统的运行的运行频率将由率将由这三个参数三个参

15、数组成的公式决定:成的公式决定:(2)MPLLCON寄存器。寄存器。MPLLCON寄存器寄存器设置置MDIV、PDIV、SDIV三个参数的三个参数的值。这样设置是置是因因为系系统的运行的运行频率将由率将由这三个参数三个参数组成的公式成的公式决定。公式如下:决定。公式如下:寄存器配置描述如表所示:寄存器配置描述如表所示:(3)EPLLCON0寄存器。寄存器。EPLLCON0寄存器寄存器设置置MDIV、PDIV、SDIV三个参数的三个参数的值。这样设置置时因因为系系统的运行的运行频率将由率将由这三个参数三个参数组成的公成的公式决定:式决定:寄存器配置描述如下:寄存器配置描述如下:(4)VPLL_C

16、ON寄存器。寄存器。VPLL_CON寄存器寄存器设置置MDIV、PDIV、SDIV三个参数的三个参数的值。这样设置置时因因为系系统的运行的运行频率将由率将由这三个参数三个参数组成的公成的公式决定。公式如下:式决定。公式如下:寄存器的配置描述如表所示:寄存器的配置描述如表所示:3.时钟源控制寄存器源控制寄存器S5PV210有有许多多时钟的来源,包括四个的来源,包括四个锁相相环输出、外部振出、外部振荡器,外部器,外部时钟和从和从GPIO获得的其他得的其他时钟源,源,CLK_SRCn寄存器控制源寄存器控制源时钟的每个的每个时钟分分频器。器。时钟源控制寄存器定源控制寄存器定义如表所示:如表所示:4.时

17、钟分分频控制寄存器控制寄存器S5PV210有有8个个时钟分分频控制寄存器,分控制寄存器,分别用来用来获得不同操作下的得不同操作下的时钟频率,分率,分别为CLK_DIVn,n=0,7,如表所示。,如表所示。SCLKAPLL、SCLKMPLL、SCLKA2M、HCLK_MSYS和和PCLK_MSYS分分别得最大操作得最大操作频率率为1GHZ、667MHZ、400MHZ、200MHZ和和100MHZ。这些操作些操作时钟分分别由由CLK_DIVX配置。配置。时钟分分频控制寄存器定控制寄存器定义:5.时钟选通控制寄存器通控制寄存器有两种有两种类型的型的时钟选通控制寄存器位禁用通控制寄存器位禁用/启用操启

18、用操作,即作,即块时钟选通控制寄存器。通控制寄存器。IP时钟选通寄存器。通寄存器。上面的两个寄存器的上面的两个寄存器的值是一起来生成一个最是一起来生成一个最终时钟选通启通启动信号。因此,信号。因此,这两个寄存器如果任何两个寄存器如果任何一方是关一方是关闭的,的,则时钟停止。停止。10.2 实时时钟RTC10.2.1 实时时钟描述描述实时时钟RTC单元在系元在系统电源关源关闭的情况下可以在的情况下可以在备用用电池下工作,池下工作,RTC可以使用可以使用STRB/LDRBARM操作操作传输二二进制制码十十进制数的制数的8位数据位数据给CPU,数据包括秒、分,数据包括秒、分钟、小、小时、日期、天、月

19、、年的、日期、天、月、年的时间信息。信息。RTC单元可以在元可以在32.768KHZ的外部晶振下工作,可以的外部晶振下工作,可以执行行报警功能。警功能。RTC时钟具有以下特点:具有以下特点:BCD数:秒、分数:秒、分钟、小、小时、日期、天、月、年。、日期、天、月、年。闰年生成器。年生成器。报警功能。警功能。滴答滴答计时功能。功能。独立独立电源引脚。源引脚。支持支持对于于实时内核内核时间节拍的毫秒拍的毫秒节拍拍时间中断。中断。10.2.2 实时时钟操作操作闰年年发生器可以基于生器可以基于BCDDATE、BCDMON、BCDYEAR的数据,从的数据,从28、29、30、31中确定每个月的最后一天。

20、中确定每个月的最后一天。为了写了写RTC模模块中的中的BCD寄存器,寄存器,RTCCON寄存器的位寄存器的位0必必须置置1.为了了显示秒、分、小示秒、分、小时、日期、天、月、年,、日期、天、月、年,CPU应该分分别读取在取在RTC模模块中的中的BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON和和BCDYEAR。RTC逻辑可以由可以由备用用电池池驱动,其通,其通过RCTVDD引脚引脚给RTC模模块提供提供电源,即使系源,即使系统电源关源关闭。当系。当系统关关闭时,CPU和和RTC模模块的接口的接口时封封闭的,的,备用用电池池仅驱动振振荡电路和路和BCD计数器

21、以最小化数器以最小化电源消耗。源消耗。RTC在掉在掉电模式或正常操作模式下的特定模式或正常操作模式下的特定时间会会发出出报警信号。在正常模式下警信号。在正常模式下报警中断被激活。警中断被激活。在掉在掉电模式下,模式下,电源管理源管理唤醒信号也如醒信号也如INT_RTC一一样被激活。被激活。RTC报警寄存器决定了警寄存器决定了报警的使能警的使能状状态和和报警警时间设定的条件。定的条件。RTC节拍拍时间是用于中断是用于中断请求。求。TICNT寄存器有寄存器有一个中断使能位和一个中断使能位和对于中断于中断计数器数器值。当。当节拍拍时间中断出中断出现时,计数器的数器的值为0.中断中期中断中期为Peri

22、od=(n+1)/节拍拍时钟源源频率率 second其中,其中,n表示表示节拍拍计数器数器值,范,范围为1-12710.3 PWM定定时器器10.3.1 PWM定定时器概述器概述S5PV210有有5个个32位的脉冲位的脉冲宽度度调制制计时器,器,这些些定定时器器为ARM子系子系统产生内部中断。此外,定生内部中断。此外,定时器器0、1、2和和3包括包括PWM功能,功能,驱动外部外部I/O接口。接口。PWM定定时器器0有一个可有一个可选的死区的死区发生器功能来支生器功能来支持大持大电流流设备。计数器数器4是内部定是内部定时器没有器没有输出出查看。看。计时器使用器使用APB-PCLK作作为源源时钟,

23、定,定时器器0和和1共享一个可共享一个可编程的程的8位位预定定标器。定器。定时器器2、3、4共享另一个共享另一个8位位预分分频器。每个定器。每个定时器有一个器有一个时钟分分频器。另外,器。另外,计时器器还可以从可以从CMU选择一个一个时钟源。源。每个定每个定时器有一个自己的、由定器有一个自己的、由定时器器时钟驱动的的32位位递减减计数器。当数器。当递减减计数器数器为零零时,定,定时器中断器中断请求生成通知求生成通知CPU定定时器操作已器操作已经完成。当定完成。当定时器器计数达到数达到0,相,相应的的TCNTBn的的值也知道装也知道装载到到递减减计数数值中以中以继续下一个操下一个操作。但是如果定

24、作。但是如果定时器停止了,例如在定器停止了,例如在定时器运行模式下通器运行模式下通过对TCONn的定的定时器使能位清零,器使能位清零,则TCNTBn的的值不会装不会装载到到计数器中。数器中。TCMPBn的的值用于脉用于脉宽调制。当制。当递减减计数器的数器的值和定和定时器器控制控制逻辑中的比中的比较寄存器的寄存器的值匹配匹配时,定,定时器控制器控制逻辑改改变输出出电平。因此,比平。因此,比较寄存器决定了寄存器决定了PWM输出的开启出的开启时间。TCNTBn和和TCMPBn寄存器是双寄存器是双缓存的,允存的,允许定定时器参数器参数更新在中更新在中间的任一个周期。新的任一个周期。新值不生效,直到当前

25、的定不生效,直到当前的定时器周期完成器周期完成为止。止。S5PV210的的PWM定定时器具有如下特性:器具有如下特性:5个个32位定位定时器。器。2个个8位位预分分频器和器和5个个时钟分分频器多路复用。器多路复用。独立的可独立的可编程程时钟选择通道。通道。4个独立通道的个独立通道的PWM控制与可控制与可编程任程任务。静静态配置配置时,PWM是停止的。是停止的。动态配置配置时,PWM是运行的。是运行的。自自动重重载模式或模式或单脉冲模式。脉冲模式。1个外部启个外部启动PWM.1个死区生成器,个死区生成器,2个具有死区空个具有死区空间的的输出接口。出接口。可可产生中断。生中断。10.3.2 PWM

26、定定时器操作器操作PWM定定时器器系系统框框图定定时器(除定器(除定时器通道器通道5)有)有TCNTBnTCNTnTCMPBnTCMPn。当定。当定时器器为0,TCNTBn和和TCMPBn可以被装可以被装载到到TCNTn和和TCMPn中。当中。当TCNTn为0,如果中断使能,如果中断使能则一个一个中断中断请求将出求将出现。S5PV210的的PWM定定时器有一个双器有一个双缓冲功能,在不冲功能,在不停止当前定停止当前定时器操作的情况下器操作的情况下对于下一个定于下一个定时器器操作使能重操作使能重载值改改变,所以尽管一个新定,所以尽管一个新定时器器值被被设置,当前定置,当前定时器操作器操作还能成功

27、完成。定能成功完成。定时器器值可以写到定可以写到定时器器计数数缓存寄存器存寄存器TCNTBn,定,定时器的当前器的当前计数器数器值可以从定可以从定时器器计数数观察寄存察寄存器器TCNTn中中读取。取。如果如果TCNTBn被被读取,取,读取取值不指示不指示计数器的当数器的当前状前状态而是下一个定而是下一个定时器期器期间的重的重载值。当。当TCNTn为0,自,自动重重载操作复制操作复制TCNTBn到到TCNTn.仅当当TCNTn到达到达0且自且自动重重载使能,写入使能,写入TCNTBn的的值被装被装载到到TCNTn中。如果中。如果TCNTn变成成0且自且自动重重载位位为0,TCNTn不在不在进一步

28、操作。一步操作。定定时器操作器操作时序序图:双双缓冲函数冲函数实例如例如图所示:所示:当当递减减计数器数器为0时将出将出现定定时器自器自动重重载操作,操作,因此因此TCNTn的初始的初始值必必须由用由用户预选定定义,在,在这种情况下,初始种情况下,初始值必必须由手由手动更新位来装更新位来装载。以。以下步下步骤描述了如何开始一个定描述了如何开始一个定时器。器。(1)写初始)写初始值到到TCNTBn和和TCMPBn。(2)设置相置相应定定时器的手器的手动更新位,推荐配置反更新位,推荐配置反相器开关。相器开关。以下以下过程的程的结果如果如图所示:所示:(1)使能自)使能自动重重载功能。功能。(2)设

29、置开始位,手置开始位,手动更新位更新位为0,反相器关,反相器关闭且自且自动重重载开启,在等待开启,在等待时间后定后定时器开始倒器开始倒计数。数。(3)当)当TCNTn的的值和和TCMPn的的值相同,相同,TOUTn的的逻辑电平从低平从低变为高。高。(4)当)当TCNTn为0,中的,中的请求生成且求生成且TCNTBn的的值装装载到到一个一个临时寄存器中。在下一个定寄存器中。在下一个定时器周期,器周期,TCNTn会用会用该临时寄存器的寄存器的值重重载。(5)在中断服)在中断服务程序中,程序中,TCNTBn和和TCMPBn为下个周下个周期被分期被分别设置置为80和和60.(6)当)当TCNTn的的值

30、和和TCMPn的的值相同,相同,TOUTn的的逻辑电平从低平从低变为高。高。(7)当)当TCNTn为0,TCNTn和和TCNTBn的的值自自动重重载,并触并触发中断中断请求。求。(8)在中断服)在中断服务程序中,自程序中,自动重重载和自和自动请求被求被设无效以停止定无效以停止定时器。器。(9)当)当TCNTn的的值和和TCMPn的的值相同,相同,TOUTn的的逻辑电平从低平从低变为高。高。(10)就算)就算TCNTn为0,因,因为自自动重重载被被设为无无效,效,TCNTn不再被重不再被重载且定且定时器停止。器停止。(11)没有其他的自)没有其他的自动请求生成。求生成。通通过使用使用TCMPBn

31、来来执行行PWM功能。功能。PWM的的频率由率由TCNTBn来决定。如来决定。如图所示,所示,TCMPBn的的值来决定来决定PWM的的值。要得到一个更高的。要得到一个更高的PWM值,则要减少要减少TCMPBn的的值;要得到一个更低的;要得到一个更低的PWM值,则要增加要增加TCMPBn的的值。如果使用了反相器,。如果使用了反相器,则增加和减少可以相反。双增加和减少可以相反。双缓冲功能允冲功能允许对于下于下个个PWM周期在当前周期在当前PWM周期任意周期任意时间点由点由ISR或或其他程序改写其他程序改写TCMPBn。PWM调制制实例例输出出电平控制如平控制如图所示。所示。以下以下过程描述如何保持

32、程描述如何保持TOUT高高电平或低平或低电平。平。(1)关)关闭中断重中断重载位。然后位。然后TOUTn变成高成高电平,平,在在TCNTn为0后定后定时器停止。器停止。(2)对定定时器的开始停止位清零停止定器的开始停止位清零停止定时器。如器。如果果TCNTnTCMP你,你,输出出为低低电平。平。(3)TOUTn可以由可以由TCON中的反相器开启关中的反相器开启关闭位位来翻来翻转。反相器。反相器删除了用于除了用于调节输出出电平的附加平的附加电路。路。死区用于死区用于电源源设备的的PWM控制。下控制。下图是死区特性是死区特性使能情况下的波形使能情况下的波形图,可以看出,可以看出,该功能是使能功能是

33、使能在关在关闭一个开关一个开关设备和开启另一个开关和开启另一个开关设备之之间插入一个插入一个时间间隔,隔,该时间间隔禁止两个开关隔禁止两个开关设备同同时开启即使是在极短的开启即使是在极短的时间内。内。TOUT0是是PWM输出,出,nTOUT0是是TOUT0的倒置。如果死区的倒置。如果死区使能,使能,TOUT0和和TOUT1的的输出波形分出波形分别是是TOUT0_DZ和和nTOUT0_DZ。nTOUT0_DZ被被发生生到到TOUT1引脚。在死区引脚。在死区间隙,隙,TOUT0_DZ和和nTOUT0_DZ不能同不能同时开启。开启。10.3.3 PWM定定时器特殊寄存器器特殊寄存器PWM定定时器特殊

34、寄存器主要有以下器特殊寄存器主要有以下4个。个。定定时器配置寄存器器配置寄存器TCFGn定定时器控制寄存器器控制寄存器TCON定定时器器n计数数缓存寄存器存寄存器TCNTBn,定,定时器比器比较缓存寄存器存寄存器TCMPBn定定时器器n计数数观察寄存器察寄存器TCNTOn10.3.3 PWM定定时器特殊寄存器器特殊寄存器10.3.3 PWM定定时器特殊寄存器器特殊寄存器10.3.3 PWM定定时器特殊寄存器器特殊寄存器注意:注意:(1)定)定时器配置寄存器器配置寄存器TCFG0.定定时器器输出出时钟频率率=PCLK/prescaler value+1/divider value其中,其中,pr

35、escaler value=1-255;divider value=1、2、4、8、16、TCLK。(2)定)定时器配置寄存器。器配置寄存器。定定时器器输出出时钟频=PCLK/prescaler value+1/divider value其中,其中,prescaler value=1-255;divider value=1、2、4、8、16、TCLK。S5PV210共有共有5个个32位的定位的定时器,其中定器,其中定时器器0、1、2、3有有PWM功能,即它功能,即它们都有一个都有一个输出引脚,出引脚,可以通可以通过定定时器来控制引脚周期性的高、低器来控制引脚周期性的高、低电平平变化;定化;定时

36、器器4没有没有输出引脚。出引脚。从从PCLK开始需要开始需要经过两两级分分频,第一,第一级分分频通通过2个个8位位预分分频器分器分频,第二,第二级分分频使用使用输出分出分频,最最终得到定得到定时器器频率。率。这两次两次预分分频都是通都是通过设置置TCFG0寄存器完成的。寄存器完成的。每个定每个定时器工作在哪种器工作在哪种频率下可以通率下可以通过TCFG1寄寄存器来存器来选择的,定的,定时器内部控制器内部控制逻辑的的详细原理原理可参看数据手册。可参看数据手册。定定时器的使用主要涉及两个寄存器。器的使用主要涉及两个寄存器。TCFG0寄存器:位寄存器:位7:0,位位15:8分分别用于控制用于控制预分

37、分频器器0、1,它,它们的的值为0-255.经过分分频器出来的器出来的时钟频率,即率,即PCLK/(TCFG07:0+1或或TCFG015:8+1)TCFG1寄存器:寄存器:设定相定相应定定时器器为经过分分频器出器出来的来的时钟频率的几分率的几分频。定定时器工作器工作频率率=PCLK/(TCFG07:0+1或或TCFG015:8+1)TCNTBn/TCMPBn寄存器:寄存器:TCNTBn中保存定中保存定时器的初始器的初始计数数值,TCMPBn中保存比中保存比较值。它。它们的在启的在启动定定时器器时,被被传到定到定时器内部寄存器器内部寄存器TCNTn,TCMPn中。中。TCNTOn寄存器:寄存器

38、:n为0-4,内部寄存器,内部寄存器TCNTn在其工作在其工作时钟下不断减下不断减1计数,可以通数,可以通过读取取TCNTOn寄存器得知其寄存器得知其值。TCON寄存器:它的功能寄存器:它的功能为第一次启第一次启动定定时器器时,手,手动将将TCNTBn/TCMPBn寄存器的寄存器的值装入内部寄存器装入内部寄存器TCNTn,TCMPn中。中。启启动,停止定,停止定时器。器。决定在定决定在定时器器计数到达数到达0时是否自是否自动装入初装入初值。决定定决定定时器的引脚器的引脚TOUTn输出出电平是否反平是否反转。10.4 WATCHDOG定定时器器S5pv210看看门狗定狗定时器用于当噪声或系器用于

39、当噪声或系统错误引起引起的故障的故障时恢复控制器操作,作恢复控制器操作,作为一个普通的一个普通的16位位时间间隔定隔定时器来器来请求中断服求中断服务。看。看门狗定狗定时器器和和PWM定定时器的区器的区别就是看就是看门狗定狗定时可以可以产生复生复位信号。位信号。WATCHDOG定定时器有如下特点:器有如下特点:有中断有中断请求的普通求的普通间隔定隔定时器模式。器模式。激活内部复位信号如果定激活内部复位信号如果定时器器计数数值到到0.支持水平触支持水平触发中断机制。中断机制。看看门狗定狗定时器功能模器功能模块图看看门狗定狗定时器使用器使用PCLK作作为其源其源时钟。PCLK频率被率被预分分频产生相

40、生相应的看的看门狗定狗定时器器时钟,得到,得到的的频率再次被分配。率再次被分配。预定定标器的器的值和和频率除数因子由看率除数因子由看门狗定狗定时器控器控制寄存器来定制寄存器来定义,有效的,有效的预定定标值的范的范围从从0到到28-1,频率除数因子可以率除数因子可以选择16、32、64或或128.可以使用以下公式来可以使用以下公式来计算看算看门狗定狗定时器的器的时钟频率和每个定率和每个定时器器时钟周期的持周期的持续时间。T_watchdog=1/PCLK/(Prescaler value+1)/(Division_factor)看看门狗定狗定时器特殊寄存器如下:器特殊寄存器如下:1.看看门狗定狗

41、定时器控制寄存器器控制寄存器WTCONWTCON寄存器允寄存器允许用用户使能看使能看门狗定狗定时器,器,选择4个不同的个不同的时钟源,使能中断,使能看源,使能中断,使能看门狗定狗定时器器输出。看出。看门狗定狗定时器用于器用于S5PV210上上电后故障后故障复位。复位。2.看看门狗定狗定时器数据寄存器器数据寄存器WTDATWTDAT寄存器用于确定超寄存器用于确定超时期限,其内容在最初期限,其内容在最初的看的看门狗定狗定时器操作器操作时不能自不能自动加加载到定到定时器器计数器中,但是使用数器中,但是使用0 x8000将将驱使第一次超使第一次超时。在。在这种情况下,种情况下,WTDAT的的值江北自江

42、北自动重重载如如WTCNT中。中。3.看看门狗定狗定时器器计数寄存器数寄存器WTCNTWTCNT寄存器包含在正常操作期寄存器包含在正常操作期间的看的看门狗定狗定时器的当前器的当前计数数值。WTCNT必必须在使能之前在使能之前设定初定初值。(1)工作原理:)工作原理:PCLK2个个8位位预分分频器。器。初始初始计数数值写入写入WTCNTwhile(WTCNT=0)自自动重重载WTCNT=WTDAT,并可以,并可以产生中断信号,生中断信号,可以可以输出复位信号。出复位信号。WATDOG定定时器工作器工作频率率=PCLK/(WTCON15:8+1)/几分几分频(2)其相关寄存器)其相关寄存器WTCO

43、N:用于:用于设置置预分配系数,分配系数,选择工作工作频率,率,决定是否使能中断,是否启用决定是否使能中断,是否启用WATDOG功能等。功能等。WTDAT:用以决定:用以决定WATCHDOG定定时器的超器的超时周周期。期。WTCNT:在启:在启动WATDOG定定时器前,必器前,必须往往这个寄存器写入初始个寄存器写入初始计数数值,启,启动定定时器后,它做器后,它做减减1操作,当操作,当计数数值达到达到0时,如果中断被使能的,如果中断被使能的话,就,就发出中断,如果出中断,如果WATCHDOG功能被使能功能被使能的的话就就发出复位信号,装出复位信号,装载WTDAT寄存器的寄存器的值并并重新重新计数

44、。数。4.看看门狗定狗定时器中断清除寄存器器中断清除寄存器WTCLRINTWTCLRINT寄存器用来清除中断,中断服寄存器用来清除中断,中断服务程序程序负责相关的中断服相关的中断服务完成后清楚中断,完成后清楚中断,对次寄存次寄存器写入任意器写入任意值来清楚中断,来清楚中断,这个寄存器是不允个寄存器是不允许读的。的。10.5 定定时器使用器使用实例例实例一:例一:PWM编程控制程控制实验,实验目的是通目的是通过按按键可以可以设置置PWM输出控制蜂出控制蜂鸣器的器的频率。率。实例二:利用看例二:利用看门狗定狗定时器器产生中断。生中断。10.5.1 PWM编程程实例例首先看一下相首先看一下相应的宏定

45、的宏定义。在上述的宏定。在上述的宏定义中主要中主要设置置PWM控制蜂控制蜂鸣器端口器端口GPD0_1控制寄存器、定控制寄存器、定时器的一些控制寄存器、按器的一些控制寄存器、按键,以及,以及IO接口接口时钟频率的定率的定义。/系系统时钟#define APLLCON0 *(volatile unsigned int*)0 xE0100100)#define MPLLCON *(volatile unsigned int*)0 xE0100108)#define EPLLCON0 *(volatile unsigned int*)0 xE0100110)#define VPLLCON *(vola

46、tile unsigned int*)0 xE0100120)#define CLK_SRC0 *(volatile unsigned int*)0 xE0100200)#define CLK_DIV0 *(volatile unsigned int*)0 xE0100300)#define CLK_DIV1 *(volatile unsigned int*)0 xE0100304)#define CLK_DIV2 *(volatile unsigned int*)0 xE0100308)#define CLK_DIV3 *(volatile unsigned int*)0 xE010030C

47、)/PWM定定时器器#define TCFG0*(volatile unsigned int*)0 xE2500000)#define TCFG1*(volatile unsigned int*)0 xE2500004)#define TCON*(volatile unsigned int*)0 xE2500008)#define TCNTB1*(volatile unsigned int*)0 xE2500018)#define TCMPB1*(volatile unsigned int*)0 xE250001C)#define TCNTO1*(volatile unsigned int*)

48、0 xE2500020)/I/O端口端口#define GPD0CON*(volatile unsigned int*)0 xE02000A0)#define GPD0DAT*(volatile unsigned int*)0 xE02000A4)在程序运行之前首先在程序运行之前首先对系系统时钟进行初始化,行初始化,设置置PCLK为66MHZ,具体代具体代码如下:如下:void clock_init()/*1、设置置PLL_LOCK寄存器(寄存器(这里使用默里使用默认值)*/*2、设置置PLL_CON寄存器(使用芯片手册推荐的寄存器(使用芯片手册推荐的值)*/APLLCON0 =(1 0)|(

49、3 8)|(125 16)|(1 31);/*FOUTAPLL=1000MHz*/MPLLCON =(1 0)|(12 8)|(667 16)|(1 31);/*FOUTMPLL=667MHz*/EPLLCON0 =(2 0)|(3 8)|(48 16)|(1 31);/*FOUTEPLL=96MHz*/VPLLCON =(3 0)|(6 8)|(108 16)|(1 31);/*FOUTVPLL=54MHz*/*3、选择PLL为时钟输出出*/*MOUT_MSYS=SCLKAPLL=1000MHz *MOUT_DSYS=SCLKMPLL=667MHz *MOUT_PSYS=SCLKMPLL=6

50、67MHz */CLK_SRC0&=(1 0)|(1 4)|(1 8)|(1 12);CLK_SRC0=(1 0)|(1 4)|(1 8)|(1 12);/*4、设置系置系统时钟分分频值*/*freq(ARMCLK)=MOUT_MSYS/(APLL_RATIO+1)=1000MHz/(0+1)=1000MHz *freq(HCLK_MSYS)=ARMCLK/(HCLK_MSYS_RATIO+1)=1000MHz/(4+1)=200MHz *freq(PCLK_MSYS)=HCLK_MSYS/(PCLK_MSYS_RATIO+1)=200MHz/(1+1)=100MHz *freq(HCLK_D

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服