第8章__PWM定时器_第1页
第8章__PWM定时器_第2页
第8章__PWM定时器_第3页
第8章__PWM定时器_第4页
第8章__PWM定时器_第5页
已阅读5页,还剩137页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第8 8章章 PWMPWM定时器、定时器、 实时时钟实时时钟 及看门狗定时器及看门狗定时器本章重点本章重点: S3C2410A PWM(脉宽调制)定时器概述; S3C2410A RTC(实时时钟)概述; S3C2410A看门狗定时器(WDT)概述;2022-6-303PWMPWM定时器定时器脉宽调制PWM基本原理PWM定时器的结构及特性PWMPWM的基本原理的基本原理第一部分2022-6-305PWMPWM控制的引入控制的引入模拟电压和电流虽然可以对模拟信号进行直接控制,但是由于模拟电路容易随时间漂移,且精密模拟电路的实现很庞大,功耗也很严重PWM的引入可以有效的解决上边所述的问题2022-

2、6-306什么是什么是PWM?PWM?脉宽调制(PWM)一种是利用微处理器的数字输出对模拟电路进行控制的非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。 2022-6-307PWMPWM的基本原理的基本原理PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体的模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电或者完全有(ON),或者完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列倍加到模拟负载上去的2022-6-308脉宽调制脉宽调制PWMPWM的优点的优点

3、从处理器到被控系统信号都是数字式的,无须进行数/模转换。抗干扰能力强。噪声只有在强到足以将逻辑1改变为逻辑0,或将逻辑0改变为逻辑1时,才能对数字信号产生影响。2022-6-309PWMPWM中的重要参数中的重要参数占空比占空比是指在一个周期内,接通信号与周期的比值调制频率周期的倒数2022-6-3010上图显示了三种不同的PWM信号。一个占空比为10%的PWM输出,即在信号周期中,10%的时间通(高电平),其余90%的时间断。另外两个显示的分别是占空比为50%和70%的PWM输出。这三种PWM输出的编码分别是强度为满度值的10%及50%和70%的3种不同模拟信号值。例如,假设供电电源为9V,

4、占空比为10%,则对应的是一个幅度为0.9V的模拟信号。1050702022-6-3011上图显示了一可以使用PWM进行驱动的简单电路。图中使用9V电池给一个白炽灯泡供电。如果将连接电池和灯泡的开关闭合50ms,则灯泡在这段时间中将得到9V供电,如果在下一个50ms中将开关断开,灯泡得到的供电将为0V。如果在1s内将此过程重复10次,灯泡将会点亮,并像连接到了一个4.5V电池(9V的50%)上一样。此时占空比是50%,调制频率为10Hz。灯 开关PWMPWM定时器定时器第二部分2022-6-3013PWMPWM定时器概述定时器概述PWM定时器具有6个16位定时器,每个定时器可以按照中断模式或D

5、MA模式工作。定时器0,1,2,3和4具有PWM输出功能。定时器5是一个内部定时器不具有对外输出口线。定时器0具有死区发生器,通常用于大电流设备应用2022-6-30146个16 位定时器可以工作在中断模式或 DMA模式;3个8 位预分频器和2个5位分割器和1个4位分割器;输出波形的占空比可编程控制(PWM)自动加载模式或单触发脉冲模式;死区产生器;2022-6-3015预分频器和分割器预分频器和分割器定时器0和定时器1分享同一个8位的预分频器定时器2和3分享一个8位预分频器,定时器4和5分享一个8位预分频器。除了定时器4和5,其它每个定时器还拥有一个具有5个不同的分频信号输出(1/2, 1/

6、4, 1/8, 1/16, 1/32)的时钟分割器。定时器4和5 则具有4个分频信号输出(1/2, 1/4, 1/8,1/16)的时钟分割器和一个输入信号线 TCLK/EXTCLK。 2022-6-3016PWMPWM定时器的输入定时器的输入每个定时器从时钟分割器的输出得到它们自己的时钟源,时钟分割器则从对应的8位预分频器得到时钟源。8位预分频器是可编程的,它的频率通过MCLK除以保存在TCFG0和 TCFG1寄存器中除数的结果设定。8位预分频器和一个独立的4位分割器组合起来可以产生不同的频率定时器时钟源输出。2022-6-3017定时器配置寄存器定时器配置寄存器0 0(TCFG0TCFG0)

7、 定时器输入时钟频率 MCLK/预分频值+1/分割值 其中预分频值为0255 分割值为2,4, 8,16,32。 定时器配置寄存器TCFG0主要是配置3个8位预分频器值和死区长度值。2022-6-3018定时器配置寄存器定时器配置寄存器 1 1(TCFG1TCFG1)如TCFG1表所示TCFG1主要是配置6-MUX 和DMA模式。通过TCFG0的设置和TCFG1 的组合,定时器可获得的输入精度如表所示。2022-6-3019基本定时器操作基本定时器操作TCNTBn,TCNTn,TCMPBn和TCMPn存在于除定时器5的定时器中。当定时器为0时,TCNTBn和TCMPBn被装载到TCNTn和TC

8、MPn。如果中断使能,则产生中断请求。TCNTn和TCMPn是内部寄存器, TCNTn可从TCNTOn寄存器中读出。2022-6-3020定时器定时器n n计数缓冲区寄存器和比较缓冲区计数缓冲区寄存器和比较缓冲区寄存器(寄存器(TCnTBn,TCMPBnTCnTBn,TCMPBn)TCMPBn是16位定时器Timer0Timer4比较缓冲器寄存器;TCNTBn是16位定时器Timer0Timer5计数缓冲寄存器;TCNTOn是16位定时器Timer0Timer5观察寄存器.在以上的寄存器中,定时器n计数/比较缓冲寄存器可读写寄存器,定时器n计数观察寄存器为只读寄存器。2022-6-3021TC

9、MPBnBitDescriptionInitial State定时器比较缓冲区寄存器15:0 Setting compare buffer value for Timer(0.4)0 x00000000TCNTBnBitDescriptionInitial State定时器计数缓冲区寄存器15:0 Setting compare buffer value for Timer(0.5)0 x00000000TCMPBnBitDescriptionInitial State定时器观察寄存器15:0 Setting count observation value for Timer0 x000000

10、00注:定时器注:定时器5不具有比较缓冲区寄存器不具有比较缓冲区寄存器定时器定时器n计数观察寄存器(计数观察寄存器(TCNTOn)2022-6-3022自动装载自动装载自动装载操作是当TCNTn为0时,复制TCNTBn到TCNTn中。写到TCNTBn中的值只有在TCNTn为0且自动装载使能的时候装载到TCNTn中。如果TCNTn为0,自动装载位为0,则TCNTn不再工作。2022-6-3023双缓冲双缓冲PWM的双缓冲特性可以在不停止当前定时器操作的前提下,为下一次定时器操作改变其预装载值。此时,虽重新设定了定时期的装载值,但当前的定时器的操作仍能完成。定时器计数值可以写入TCNTBn,而当前

11、计数器的计数值可以通过TCNTOn(定时计数观察寄存器)读取。如果读取TCNTBn,那么读出的数值不一定是当前定时器的计数值,但肯定是下一个定时周期的计数值。2022-6-3024定时器的启动定时器的启动定时器初始化时,必须使用手动更新位和转换位来装载初值。定时器的启动步骤1将初始值写入TCNTBn和TCMPBn2设置对应定时器的手动更新位3设置对应定时器的启动位来启动定时器(同时清除手动更新位)如果定时器被强制关闭,TCNTn就保持计数值而不从TCNTBn重新装载计数值。新的计数值必须被手动更新2022-6-3025PWMPWM脉宽调制脉宽调制PWM特性可通过使用TCMPBn来实现,PWM频

12、率由TCNTBn决定降低PWM的输出值,需减少TCMPBn的值;获得更高的PWM输出值,需要增加TCMPBn的值。若输出转换器使能,增减是相反的TCMPBn中的值应小于TCNTBn中的值,当TCNT中的值小于等于TCMP中的值时,输出高电平2022-6-3026 以下的办法用来保持TOUT为高或低(假设反转器为OFF)关闭自动载入位。然后TOUTn变为高电平,定时器在TCNTn倒数到0时停止。推荐采用这个模式。通过将定时器的启动/停止位清0来停止定时器。如果TCNTnTCMPn,输出电平为低。在TCMPBn中写入比TCNTBn大的值,这样就禁止TOUTn变高。因为TCMPBn不能与TCNTn有

13、相同的值。TOUTn可以通过设置寄存器TCON中的反转器的ON/OFF位来反转。输出电平控制输出电平控制2022-6-3027死区发生器死区发生器死区发生器用于对大功率设备进行PWM控制。该特性用于在开关设备的断开和另一个开关设备的闭合之间插入一个时间缺口。这个时间缺口阻止两个开关设备处于同时闭合的状态,即使是非常短的时间。2022-6-3028TOUT0是一个PWM输出。NTOUT0是TOUT0的一个反转输出。如果死区能被使能, TOUT0和nTOUT0的输出波形将会是TOUT0_DZ和nTOUT0_DZ。在死区间隔中, TOUT0_DZ和nTOUT0_DZ肯定不会同时闭合的。?2022-6

14、-3029DMADMA请求模式请求模式PWM在任何时间都可以产生一个DMA请求定时器接收到应答信号AC前,保持DMA请求信号为0,收到ACK时,产生已停止请求信号6个定时器中同时只能有一个产生DMA请求,通过设置得DMA模式位决定。若定时器配置位DMA请求方式,则其不能产生中断请求,其他的可以产生中断请求。DMA模式和DMA请求的配置表2022-6-3030RTCRTCS3c2410中RTC相关知识点概述S3C2410的RTC结构2022-6-3031一、概一、概 述述 RTC(实时时钟)功能:通常采用(实时时钟)功能:通常采用RTC 来提供可靠的系来提供可靠的系统时间,包括时、分、秒、和年、

15、月、日等;而且要求在系统时间,包括时、分、秒、和年、月、日等;而且要求在系统处于关机状态下它也能够正常工作(后备电池供电),它统处于关机状态下它也能够正常工作(后备电池供电),它的外围也不需要太多的辅助电路,典型的就是只需要一个高的外围也不需要太多的辅助电路,典型的就是只需要一个高精度的精度的32.768KHz 晶振和电阻电容等。晶振和电阻电容等。 RTC应用:现在很多电子产品都有应用:现在很多电子产品都有RTC功能,如电子日历功能,如电子日历(台式、壁式等)、手持数码产品(手机、电子词典、各种(台式、壁式等)、手持数码产品(手机、电子词典、各种学习机、照相机、摄像机等)、电子计量仪表(电度表

16、、燃学习机、照相机、摄像机等)、电子计量仪表(电度表、燃气表、水表等)、家用电器(电视机、机顶盒、气表、水表等)、家用电器(电视机、机顶盒、DVD等)等,等)等,应用非常广泛。应用非常广泛。2022-6-3032 RTC芯片:在上面所说产品,都有芯片:在上面所说产品,都有RTC功能的芯片,有的功能的芯片,有的产品使用独立的产品使用独立的RTC芯片,如壁式电子日历、电子计量仪表芯片,如壁式电子日历、电子计量仪表等;有的产品使用的不是独立的等;有的产品使用的不是独立的RTC芯片,而是芯片,而是RTC功能集成功能集成到了其它的芯片中,如手持数码产品等。到了其它的芯片中,如手持数码产品等。S3C241

17、0的的RTC的特点:的特点:时钟数据采用时钟数据采用BCD 编码编码时钟数据有:秒、分、时、日、月、年、星期时钟数据有:秒、分、时、日、月、年、星期能够对闰年的年月日进行自动处理能够对闰年的年月日进行自动处理具有报警功能,当系统处于关机状态时,能产生告警中断具有报警功能,当系统处于关机状态时,能产生告警中断具有独立的电源输入具有独立的电源输入提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内提供毫秒级时钟中断,该中断可用于作为嵌入式操作系统的内核时钟核时钟2022-6-3033二、二、S3C2410的的RTC结构结构1、S3C2410的的RTC结构结构S3C2410的的RTC主要有主要有5

18、部分构成:时钟发生器、节拍发部分构成:时钟发生器、节拍发生器、时间与日期计数器(时分秒年月日星期)、报警发生器、时间与日期计数器(时分秒年月日星期)、报警发生器、控制逻辑等部分。如下图所示。生器、控制逻辑等部分。如下图所示。2022-6-30342022-6-30352、S3C2410 RTC的振荡电路的振荡电路S3C2410 RTC的只需外接的只需外接2个个20P左右的小电容、左右的小电容、32.768KHz的晶振即可。如下图所示。的晶振即可。如下图所示。2022-6-3036三、三、RTC专用寄存器专用寄存器S3C2410的的RTC有有17个专用寄存器,均需用字节读写。下个专用寄存器,均需

19、用字节读写。下表为前表为前10个,有个,有4个为控制寄存器,个为控制寄存器,6个为报警寄存器。个为报警寄存器。RegisterAddress R/W Description Reset Value RTCCON0 x57000040/3 R/W RTC控制寄存器控制寄存器0 x0TICNT0 x57000044/7 R/WRTC节拍计数器节拍计数器0 x00RTCALM 0 x57000050/3R/W RTC报警控制寄存器报警控制寄存器0 x00RTCRST0 x5700006C/FR/WRTC循环复位寄存器循环复位寄存器0 x0ALMSEC0 x57000054/7R/W 报警秒数寄存器报

20、警秒数寄存器0 x00ALMMIN0 x57000058/BR/W 报警分钟数寄存器报警分钟数寄存器0 x00ALMHOUR0 x5700005C/FR/W报警小时数寄存器报警小时数寄存器0 x00ALMDAY0 x57000060/3R/W 报警天报警天(日日)数寄存器数寄存器0 x01ALMMON0 x57000064/7R/W 报警月数寄存器报警月数寄存器0 x01ALMYEAR0 x57000068/BR/W报警年数寄存器报警年数寄存器0 x002022-6-3037三、三、RTC专用寄存器专用寄存器S3C2410的的RTC有有17个专用寄存器,均需用字节读写。个专用寄存器,均需用字节

21、读写。下表为下表为4个控制寄存器。个控制寄存器。RegisterAddress R/W Description ResetValue RTCCON0 x57000040/3 R/W RTC控制寄存器控制寄存器0 x0TICNT0 x57000044/7 R/WRTC节拍计数器节拍计数器0 x00RTCALM 0 x57000050/3R/W RTC报警报警控制寄存器控制寄存器0 x00RTCRST0 x5700006C/FR/WRTC秒循环秒循环复位寄存器复位寄存器0 x02022-6-3038本表本表6个寄存器:个寄存器:为报警日期、时间寄存器为报警日期、时间寄存器Register Addr

22、ess R/W Description ResetValue ALMSEC0 x57000054/7R/W 报警秒数寄存器报警秒数寄存器0 x00ALMMIN0 x57000058/BR/W 报警分钟数寄存器报警分钟数寄存器0 x00ALMHOUR0 x5700005C/FR/W报警小时数寄存器报警小时数寄存器0 x00ALMDAY0 x57000060/3R/W 报警天报警天(日日)数寄存器数寄存器0 x01ALMMON0 x57000064/7R/W 报警月数寄存器报警月数寄存器0 x01ALMYEAR0 x57000068/BR/W报警年数寄存器报警年数寄存器0 x002022-6-30

23、39后后7个寄存器:个寄存器:为日期、时间寄存器。为日期、时间寄存器。Register Address R/W Description ResetValue BCDSEC0 x57000070/3R/W 秒当前值寄存器秒当前值寄存器0 xXXBCDMIN0 x57000074/7R/W 分钟分钟当前值当前值寄存器寄存器0 xXXBCDHOUR0 x57000078/BR/W小时小时当前值当前值寄存器寄存器0 xXXBCDDAY0 x5700007C/FR/W 日日当前值当前值寄存器寄存器0 xXXBCDDATE0 x57000080/3R/W 星期当前值星期当前值寄存器寄存器0 xXXBCDM

24、ON0 x57000084/7R/W 月月当前值当前值寄存器寄存器0 xXXBCDYEAR0 x57000088/BR/W年当前值寄存器年当前值寄存器0 xXX2022-6-3040RegisterAddress R/W Description ResetValue RTCCON0 x57000040(L)0 x57000043(B)R/W(字节字节) RTC控制寄存器控制寄存器0 x01、RTC控制寄存器(控制寄存器(RTCCON)字段名字段名 位位意意 义义 初值初值 CLKRST3 RTC时钟计数复位。时钟计数复位。 0:不复位;:不复位;1 = BCD计数复位。计数复位。0CNTSEL

25、2 BCD计数选择。计数选择。0:合并:合并BCD计数;计数; 1 = 保留(单独的保留(单独的BCD计数器)计数器)0CLKSEL1 BCD时钟选择。时钟选择。 0:XTAL32768 1:用:用XTAL原值(但只用于测试)原值(但只用于测试)0RTCEN0 RTC控制使能。控制使能。 0:失能;:失能; 1:使能:使能 指指BCD时间计数和读取操作可以被执行时间计数和读取操作可以被执行02022-6-3041RegisterAddress R/W Description Reset Value TICNT0 x57000044(L)0 x57000047(B)R/W(字节字节) RTC节拍

26、时间节拍时间计数器计数器0 x002、RTC节拍时间计数器(节拍时间计数器(TICNT)字段名字段名 位位意意 义义 初值初值 TICK INTENABLE7 节拍中断使能。节拍中断使能。 0:失能,:失能,1:使能:使能 。0TICK TIME COUNT6:0 节拍时间计数值(节拍时间计数值(1127)。)。0000000说明:说明:这个计数器的值在内部减少,用户不能在工作时读取这个计数器的值。这个计数器的值在内部减少,用户不能在工作时读取这个计数器的值。 2022-6-3042RegisterAddress R/W Description Reset Value RTCALM0 x570

27、00050(L)0 x57000053(B)R/W(字节字节) RTC报警报警控制寄存器控制寄存器0 x03、RTC报警控制寄存器(报警控制寄存器(RTCCON)2022-6-30433、RTC报警控制寄存器(报警控制寄存器(RTCCON)字段名字段名 位位意意 义义 初值初值 Reserved7 保留(为保留(为0)0ALMEN6 报警总使能位。报警总使能位。0:失能;:失能;1:使能:使能 0YEAREN5 年报警使能位。年报警使能位。0:失能;:失能;1:使能:使能0MONEN4 月报警使能位。月报警使能位。0:失能;:失能;1:使能:使能0DATEEN3 日报警使能位。日报警使能位。0

28、:失能;:失能;1:使能:使能0HOUREN2 时报警使能位。时报警使能位。0:失能;:失能;1:使能:使能0MINEN1 分报警使能位。分报警使能位。0:失能;:失能;1:使能:使能0SECEN0 秒报警使能位。秒报警使能位。0:失能;:失能;1:使能:使能02022-6-3044RegisterAddress R/W Description Reset Value ALMSEC0 x57000054(L)0 x57000057(B)R/W(字节字节) 报警秒数报警秒数寄存器寄存器0 x004、RTC报警秒数寄存器(报警秒数寄存器(ALMSEC)字段名字段名 位位意意 义义 初值初值 Res

29、erved7 保留(为保留(为0)0ALMSECH6:4 报警时间秒十位,报警时间秒十位,BCD值。值。0 5000ALMSECL3:0 报警时间秒个位,报警时间秒个位,BCD值。值。0 900002022-6-3045RegisterAddress R/W Description Reset Value ALMMIN0 x57000058(L)0 x5700005B(B)R/W(字节字节) 报警分钟数报警分钟数寄存器寄存器0 x005、报警时间分钟数寄存器(、报警时间分钟数寄存器(ALMMIN)字段名字段名 位位意意 义义 初值初值 Reserved7 保留(为保留(为0)0ALMMINH6

30、:4 报警时间分钟十位,报警时间分钟十位, BCD值。值。0 5000ALMMINL3:0 报警时间分钟个位,报警时间分钟个位, BCD值。值。0 900002022-6-3046RegisterAddress R/W Description Reset Value ALMHOUR0 x5700005C(L)0 x5700005F(B)R/W(字节字节) 报警小时报警小时寄存器寄存器0 x006、报警时间小时数寄存器(、报警时间小时数寄存器(ALMHOUR)字段名字段名 位位意意 义义 初值初值 Reserved7:6 保留(为保留(为0)00ALMHOURH5:4 报警时间小时十位,报警时间

31、小时十位, BCD值。值。0 200ALMHOURL3:0 报警时间小时个位,报警时间小时个位, BCD值。值。0 900002022-6-3047RegisterAddress R/W Description Reset Value ALMDATE0 x57000060(L)0 x57000063(B)R/W(字节字节) 报警日期报警日期天数寄存器天数寄存器0 x017、RTC报警天数寄存器(报警天数寄存器(ALMDATE)字段名字段名 位位意意 义义 初值初值 Reserved7:6 保留(为保留(为0)00ALMDATEH5:4 报警日期天数十位,报警日期天数十位, BCD值。值。0 3

32、00ALMDATEL3:0 报警日期天数个位,报警日期天数个位, BCD值。值。0 900012022-6-3048RegisterAddress R/W Description Reset Value ALMMON0 x57000064(L)0 x57000067(B)R/W(字节字节) 报警日期报警日期月数寄存器月数寄存器0 x018、报警时间月数寄存器(、报警时间月数寄存器(ALMMON)字段名字段名 位位意意 义义 初值初值 Reserved7:5 保留(为保留(为0)000ALMMONH4 报警日期月数十位,报警日期月数十位, BCD值。值。0 10ALMMONL3:0 报警日期月数

33、个位,报警日期月数个位, BCD值。值。0 900012022-6-3049RegisterAddress R/W Description Reset Value ALMYEAR0 x57000068(L)0 x5700006B(B)R/W(字节字节) 报警年数报警年数寄存器寄存器0 x009、报警时间年数寄存器(、报警时间年数寄存器(ALMYEAR)字段名字段名 位位意意 义义 初值初值 ALMYEARH7:4 报警日期年数十位,报警日期年数十位, BCD值。值。0 90000ALMYEARL3:0 报警日期年数个位,报警日期年数个位, BCD值。值。0 90000说明:说明:年数的千位和百

34、位应该是年数的千位和百位应该是20。2022-6-3050RegisterAddress R/W Description Reset Value RTCRST0 x5700006C(L)0 x5700006F(B)R/W(字节字节) 秒循环复位秒循环复位寄存器寄存器0 x0010、秒循环复位寄存器(、秒循环复位寄存器(RTCRST)字段名字段名 位位意意 义义 初值初值 Reserved7:4 保留(为保留(为0)000SRSTEN3 秒循环复位控制位。秒循环复位控制位。 0:禁止;:禁止;1:允许:允许0SECCR2:0 秒循环进位边界。秒循环进位边界。 011:30秒;秒; 100:40秒

35、;秒;101:50秒。秒。 00说明:说明:对于秒循环进位边界设为其它值,到设定值只复位,但不会向对于秒循环进位边界设为其它值,到设定值只复位,但不会向分钟进位。分钟进位。2022-6-3051RegisterAddress R/W Description Reset Value BCDSEC0 x57000070(L)0 x57000073(B)R/W(字节字节) 当前时间当前时间秒数寄存器秒数寄存器-11、当前时间秒数寄存器(、当前时间秒数寄存器(BCDSEC)字段名字段名 位位意意 义义 初值初值 Reserved7 保留(为保留(为0)-NOWSECH6:4 当前时间秒十位,当前时间秒

36、十位, BCD值。值。0 5-NOWSECL3:0 当前时间秒个位,当前时间秒个位, BCD值。值。0 9-2022-6-3052RegisterAddress R/W Description Reset Value BCDMIN0 x57000074(L)0 x57000077(B)R/W(字节字节) 当前时间当前时间分钟寄存器分钟寄存器-12、当前时间分钟寄存器(、当前时间分钟寄存器(BCDMIN)字段名字段名 位位意意 义义 初值初值 Reserved7 保留(为保留(为0)-NOWMINH6:4当前时间分钟十位,当前时间分钟十位, BCD值。值。0 5-NOWMINL3:0当前时间分钟

37、个位,当前时间分钟个位, BCD值。值。0 9-2022-6-3053RegisterAddress R/W Description Reset Value BCDHOUR0 x57000078(L)0 x5700007B(B)R/W(字节字节) 当前时间当前时间小时寄存器小时寄存器-13、当前时间小时数寄存器(、当前时间小时数寄存器(BCDHOUR)字段名字段名 位位意意 义义 初值初值 Reserved7:6 保留(为保留(为0)-NOWHOURH5:4 当前时间小时十位,当前时间小时十位, BCD值。值。0 2-NOWHOURL3:0 当前时间小时个位,当前时间小时个位, BCD值。值。

38、0 9-2022-6-3054RegisterAddress R/W Description Reset Value BCDDATE0 x5700007C(L) 0 x5700007F(B)R/W(字节字节) 当前日期当前日期天数寄存器天数寄存器-14、当前日期天数寄存器(、当前日期天数寄存器(BCDDATE)字段名字段名 位位意意 义义 初值初值 Reserved7:6 保留(为保留(为0)-NOWDATEH5:4 当前日期天数十位,当前日期天数十位, BCD值。值。0 3-NOWDATEL3:0 当前日期天数个位,当前日期天数个位, BCD值。值。0 9-2022-6-3055Regist

39、erAddress R/W Description Reset Value BCDDAY0 x57000080(L)0 x57000083(B)R/W(字节字节) 当前星期当前星期寄存器寄存器-15、当前星期寄存器(、当前星期寄存器(BCDDAY)字段名字段名 位位意意 义义 初值初值 Reserved7:3 保留(为保留(为0)-NOWDAY2:0 当前星期值。当前星期值。1 7-1:星期日;:星期日;2:星期一;:星期一;3:星期二;:星期二;4:星期三;:星期三;5:星期四;:星期四;6:星期五;:星期五;7:星期六:星期六2022-6-3056RegisterAddress R/W D

40、escription Reset Value BCDMON0 x57000084(L)0 x57000087(B)R/W(字节字节) 报警日期报警日期月数寄存器月数寄存器0 x0116、当前日期月数寄存器(、当前日期月数寄存器(BCDMON)字段名字段名 位位意意 义义 初值初值 Reserved7:5 保留(为保留(为0)000NOWMONH4 当前日期月数十位,当前日期月数十位, BCD值。值。0 10NOWMONL3:0 当前日期月数个位,当前日期月数个位, BCD值。值。0 900012022-6-3057RegisterAddress R/W Description Reset Va

41、lue BCDHOUR0 x57000088(L)0 x5700008B(B)R/W(字节字节) 当前日期当前日期年数寄存器年数寄存器0 x0017、当前日期年数寄存器(、当前日期年数寄存器(BCDYEAR)字段名字段名 位位意意 义义 初值初值 NOWYEARH7:4 当前日期年数十位,当前日期年数十位, BCD值。值。0 90000NOWYEARL3:0 当前日期年数个位,当前日期年数个位, BCD值。值。0 90000说明:说明:年数的千位和百位应该是年数的千位和百位应该是202022-6-3058四、四、S3C2410 RTC使用方法使用方法1、读、读/写寄存器写寄存器(1)设置允许读

42、写:)设置允许读写:对寄存器对寄存器RTCCON 的的0 位写位写1 。(2)显示时间、日期方法:)显示时间、日期方法:需要不断地从需要不断地从BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON、和、和BCDYEAR 寄存器读取数寄存器读取数据,然后显示出来。据,然后显示出来。 2022-6-3059(3)可能会引起显示错误。)可能会引起显示错误。例如,假设用户在例如,假设用户在2006 年年12 月月31 日日23 点点59 分分59秒读取寄存器秒读取寄存器BCDYEAR 到到BCDSEC,在用户读取,在用户读取BCDSEC 寄存器时,如果结果是寄存器时,

43、如果结果是0,那么,那么很有可能年、月、日、时、分已经变成了很有可能年、月、日、时、分已经变成了2007 年年1 月月1 日日0 时时0 分了,数分了,数据组合在一起可能是错的。据组合在一起可能是错的。读取的数据可能是:读取的数据可能是:1) 2006 年年12 月月1 日日0 时时0分分2) 2006 年年1 月月1 日日0 时时0 分分,等,等解决的方法:解决的方法:当读取到的当读取到的BCDSEC 等于等于0 时,用户应该再读取一次时,用户应该再读取一次BCDYEAR到到BCDSEC 的值。的值。 2022-6-30602、报警功能、报警功能RTC的报警寄存器的报警寄存器(RTCALM)

44、决定了报警的使能、禁止、以及报)决定了报警的使能、禁止、以及报警时间设定的条件。警时间设定的条件。在在RTC报警的使能情况下:报警的使能情况下:(1)在正常工作模式下)在正常工作模式下,报警中断报警中断(ALMINT)是激活状态是激活状态的。的。(2)在掉电模式下)在掉电模式下(PWDN信号有效),信号有效),电源管理唤醒电源管理唤醒信号信号(PMWKUP)与)与报警中断报警中断(ALMINT)都是激活状态。)都是激活状态。2022-6-30613、节拍中断、节拍中断RTC 节拍用于中断请求。节拍用于中断请求。TICNT 寄存器:有中断使能位、节拍时间位。寄存器:有中断使能位、节拍时间位。当节

45、拍计数值到达当节拍计数值到达0 时,就会触发节拍中断。节拍中断的间隔时时,就会触发节拍中断。节拍中断的间隔时间计算如下:间计算如下:Period=(n+1)/128 秒秒n :节拍时间计数值(:节拍时间计数值(1127)说明:说明:RTC 节拍中断可以作为节拍中断可以作为RTOS(实时操作系统)内核的时间(实时操作系统)内核的时间节拍。节拍。2022-6-3062RegisterAddress R/W Description ResetValue RTCCON0 x57000040(L)0 x57000043(B)R/W(字节字节) RTC控制寄存器控制寄存器0 x01、RTC控制寄存器(控制

46、寄存器(RTCCON)字段名字段名 位位意意 义义 初值初值 CLKRST3 RTC时钟计数复位。时钟计数复位。 0:不复位;:不复位;1 = BCD计数复位。计数复位。0CNTSEL2 BCD计数选择。计数选择。0:合并:合并BCD计数;计数; 1 = 保留(单独的保留(单独的BCD计数器)计数器)0CLKSEL1 BCD时钟选择。时钟选择。 0:XTAL32768 1:用:用XTAL原值(但只用于测试)原值(但只用于测试)0RTCEN0 RTC控制使能。控制使能。 0:失能;:失能; 1:使能:使能 指指BCD时间计数和读取操作可以被执行时间计数和读取操作可以被执行02022-6-3063

47、五、应用举例五、应用举例例:编写一程序,对例:编写一程序,对S3C2410的的RTC进行设置,使用节拍中断,每进行设置,使用节拍中断,每1秒中断一次,中断后显示出当前的日期和时间。初始日期、时间设置秒中断一次,中断后显示出当前的日期和时间。初始日期、时间设置为正确值。为正确值。解:解:1、设置控制寄存器、设置控制寄存器 : RTCCON=0 x0 0 0 1 = 0 x01含义:含义:RTC不复位、不复位、正常正常BCD计数计数、BCD时钟选择为时钟选择为1/32768、允许读出允许读出RTC值值2022-6-30642、设置节拍时间寄存器、设置节拍时间寄存器 :TICNT=0 x1 1 1

48、1 1 1 1 1 = 0 xFF含义:含义:允许节拍中断允许节拍中断、节拍计数值为、节拍计数值为127,每,每1秒钟中断一次。秒钟中断一次。BIT_TICK EQU (0 x18)BIT_ALLMSK EQU (0 xffffffff) BIT_RTC EQU (0 x130)#include 2410addr.h#include 2410lib.hvoid Test_Rtc_Tick(void);void _irq Rtc_Tick(void);2022-6-3065void Test_Rtc_Tick(void) Uart_Printf(RTC Tick interrupt test f

49、or S3C2410!n); pISR_TICK = (unsigned)Rtc_Tick;/设置中断服务程序地址设置中断服务程序地址 rINTMSK & = (BIT_TICK); / (0 x18)/开时钟节拍中断开时钟节拍中断 2022-6-3066/设置日期与时间设置日期与时间 rBCDYEAR = 0 x07; rBCDMON = 0 x05; rBCDDAY = 0 x03; /SUN:1 MON:2/ TUE:3 WED:4 / THU:5 FRI:6 SAT:7 rBCDDATE = 0 x22; rBCDHOUR = 0 x08; rBCDMIN = 0 x38; rBCDS

50、EC = 0 x25;2022-6-3067rTICNT = (17) + 127; /设置节拍值设置节拍值/Period = (n + 1) / 128 =1secrRTCCON = 0 x01; /启动计时、允许读写启动计时、允许读写Uart_Printf(Press any key to exit.n);Uart_Getch();/等待按键等待按键rINTMSK | = BIT_TICK;/(1tp,在程序,在程序运行一周期后就修改(再重新设定看门狗的定时周期)定运行一周期后就修改(再重新设定看门狗的定时周期)定时器的计数值(俗称时器的计数值(俗称“喂狗喂狗”),只要程序正常运行,定时,

51、只要程序正常运行,定时器就不会溢出。若由于干扰等原因使系统不能在器就不会溢出。若由于干扰等原因使系统不能在tp时刻修时刻修改定时器的计数值,定时器将在改定时器的计数值,定时器将在ti时刻溢出,引发系统复时刻溢出,引发系统复位,使系统得以重新运行,从而起到监控作用。位,使系统得以重新运行,从而起到监控作用。2022-6-3084在一个完整的嵌入式系统或单片机最小系统中通常都有看门在一个完整的嵌入式系统或单片机最小系统中通常都有看门狗定时器,且一般集成在处理器芯片中,看门狗实际上就是狗定时器,且一般集成在处理器芯片中,看门狗实际上就是一个定时器,只是它在定时时间到时将自动引起系统复位。一个定时器,

52、只是它在定时时间到时将自动引起系统复位。 S3C2410的看门狗控制的看门狗控制S3C2410的看门狗定时器有两个功能:的看门狗定时器有两个功能:1. 作为常规定时器使用,并且可以产生中断;作为常规定时器使用,并且可以产生中断;2. 作为看门狗定时器使用,定时时间到时,它可以产生作为看门狗定时器使用,定时时间到时,它可以产生128个时钟周期的复位信号。个时钟周期的复位信号。图图12-1为为S3C2410看门狗电路的示意图。输入时钟为看门狗电路的示意图。输入时钟为MCLK(该该时钟频率等于系统的主频时钟频率等于系统的主频),它经过两级分频,最后将分频,它经过两级分频,最后将分频后的时钟作为该定时

53、器的输入时钟,当定时器溢出后可以产后的时钟作为该定时器的输入时钟,当定时器溢出后可以产生中断或者复位信号。生中断或者复位信号。2022-6-3085 看门狗定时器计数值的计算公式如下:看门狗定时器计数值的计算公式如下:输入到计数器的时钟周期:输入到计数器的时钟周期:t_watchdog=1/( PCLK/(Prescaler value+1)/Division_ factor)其中,其中, PCLK为系统时钟频率;为系统时钟频率;Prescaler value为预分频值为预分频值(值(值0255 ););Division_ factor为四分频值,可以是为四分频值,可以是16、32、64或或1

54、28。看门狗的定时周期看门狗的定时周期:T = WTCNTt_Watchdog其中其中WTCNT是看门狗定时器的计数器,它的值表示该是看门狗定时器的计数器,它的值表示该定时器的当前计数值。定时器的当前计数值。图图12-1 S3C2410看门狗电路示意看门狗电路示意图图2022-6-3086 看门狗定时器寄存器看门狗定时器寄存器1. 看门狗定时器控制寄存器看门狗定时器控制寄存器WTCON通过该寄存器,可以使能通过该寄存器,可以使能/禁止看门狗、选择输入禁止看门狗、选择输入时钟源、使能时钟源、使能/关闭中断、使能关闭中断、使能/关闭输出。该寄关闭输出。该寄存器及其控制位的定义如表存器及其控制位的定

55、义如表12-1和和12-2所列。所列。 2. 看门狗定时器数据寄存器看门狗定时器数据寄存器WTDAT该数据寄存器用于设置看门狗定时器的初值。在该数据寄存器用于设置看门狗定时器的初值。在初始的操作中,该值不会自动加载到定时器中,初始的操作中,该值不会自动加载到定时器中,首次定时器初始值是首次定时器初始值是0 x8000,以后该寄存器的值,以后该寄存器的值会被自动加载到会被自动加载到WTCNT寄存器中。一般是该定时寄存器中。一般是该定时器工作在通用定时器模式下时使用。该寄存器及器工作在通用定时器模式下时使用。该寄存器及其各位的定义如表其各位的定义如表12-3和和12-4不清所列。不清所列。2022

56、-6-3087表表12-2 看门狗定时器控制寄存器看门狗定时器控制寄存器WTCON各位的定义各位的定义 表表12-1 看门狗定时器控制寄存器看门狗定时器控制寄存器 2022-6-30883. 看门狗定时器看门狗定时器/计数器寄存器计数器寄存器WTCNT该寄存器为看门狗定时器的计数器,它的值表示该寄存器为看门狗定时器的计数器,它的值表示该定时器的当前计数值,即到下一次溢出还需要该定时器的当前计数值,即到下一次溢出还需要经历的时钟数。当该定时器工作在看门狗模式时经历的时钟数。当该定时器工作在看门狗模式时使用该寄存器,每次溢出前需要重新设置其值,使用该寄存器,每次溢出前需要重新设置其值,以防止发生复

57、位。该寄存器及其各位的定义如表以防止发生复位。该寄存器及其各位的定义如表12-5和表和表12-6所列。所列。表表12-3 看门狗定时器数据寄存器看门狗定时器数据寄存器2022-6-3089表表12-4 看门狗定时器数据寄存器看门狗定时器数据寄存器WTDAT各位的定义各位的定义表表12-5 看门狗定时器看门狗定时器/计数器寄存器计数器寄存器 表表12-6 看门狗定时器看门狗定时器/计数器寄存器计数器寄存器WTCNT各位的定义各位的定义2022-6-309012.2 看门狗电路的编程看门狗电路的编程看门狗电路编程较简单,首先看门狗电路初始化,即看门狗电路编程较简单,首先看门狗电路初始化,即使能使能

58、/禁止看门狗、选择输入时钟源、使能禁止看门狗、选择输入时钟源、使能/关闭中断、给关闭中断、给看门狗电路设初值;第二是在本系统程序完整运行一周期看门狗电路设初值;第二是在本系统程序完整运行一周期的时间后,再重新设定看门狗的定时周期、俗称的时间后,再重新设定看门狗的定时周期、俗称“喂狗喂狗”。如看门狗初始化程序:如看门狗初始化程序:/-/看门狗初始化看门狗初始化/-void watchdog_init(void) rWTCNT=8448*2; /看门狗电路设初值看门狗电路设初值rWTCON=WDT_ENABLE|WDT_RST_ENABLE|WDT_CLK+SEL|WDT_PRE_SCALER;2

59、022-6-3091/使能看门狗使能看门狗/-/喂狗,利用时钟滴哒中断模拟系统程序完整运行一周喂狗,利用时钟滴哒中断模拟系统程序完整运行一周期的时间,在中断服务程序中喂狗期的时间,在中断服务程序中喂狗/-void rtc_tick_isr(void)Isr_Clear(IRQ_TICK);/清清TICK中断中断rWTCNT=8448*2;2022-6-30928.1 PWM8.1 PWM定时器定时器8.1.1 PWM定时器概述 定时器模块 参见图8.1,S3C2410A有5个16位的定时器。 定时器03带有脉宽调制(Pulse Width Modulation,PWM)功能,这4个定时器的输出

60、信号连接到S3C2410A的TOUT0TOUT3引脚,输出波形的频率和占空比可编程控制。 定时器4是一个内部定时器,没有PWM功能,输出信号不连接到S3C2410A引脚。 定时器0有一个死区发生器(dead zone generator),能够用于对大电流设备进行控制。2022-6-3093 定时器0和1共用一个8位预分频器(prescaler), 定时器24共用另一个8位预分频器。 定时器计数时钟信号来源于时钟分频器(clock divider),通过编程能够选择时钟分频器的1/2、1/4、1/8、1/16分频信号或选择使用TCLK0、TCLK1。 8位预分频器是可编程的,根据保存在定时器配

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论