TC1728用户手册STM,V1.614-1V1.0,2011-1214系统定时器(STM)系统定时器(STM)本章描述系统定时器(STM)。TC1728STM是专为需要高精度、长周期的全局系统定时应用而专门设计的。14.1概述STM具有下列特性:•可自由运行的56位计数器•可同步读取全部56位•可同步读取56位计数器中的不同32位值•与部分STM内容比较匹配的灵活服务请求的产生•复位操作之后自动启动计数器•若位ARSTDIS.STMDIS清零STM寄存器将会随着应用程序的复位而复位。若ARSTDIS.STMDIS置位,STM寄存器将不会复位1)。•调试/挂起模式下可暂停STM(由STM_CLC控制)特殊STM寄存器可同步查看整个56位计数器的值、或者具有不同分辨率的32位子集(56位计数器的不同32位值)。最大的定时器周期的是256×fSTM。例如,以fSTM=50MHz的频率运行,在发生溢出之前STM可运行计数46.85年。因此,STM能够对一个系统的整个产品预期使用寿命进行定时而不会出现溢出。14.2操作STM为递增计数器,以FPI总线频率fFPI或其分频之后的频率工作。STM的时钟频率fSTM=fFPI/RMC,其中RMC=0-7(复位之后的缺省值fSTM=fFPI/2,RMC=010B)。RMC为寄存器STM_CLC中的位域。在应用程序复位的情况下,若位SCU_ARSTDIS.DIS0被置位,STM复位。复位后,STM被启用并且立即开始递增计数。在TC1728正常运行期间是不能影响定时器内容的。定时器寄存器只可以被读取而不能被写入。利用时钟控制寄存器可选择STM禁止(出于省电目的)或STM挂起(出于调试目的)。TC1728挂起模式下(向STM_CLC寄存器写入合适的值以触发该模式),STM时钟停止但所有寄存器仍可读。1)“STM寄存器”意思是除了STM_CLC、STM_SRC0、STM_SRC1之外的所有寄存器。TC1728用户手册STM,V1.614-2V1.0,2011-12系统定时器(STM)由于STM的宽度为56位,因此不可能通过一条指令读出所有位的内容,需要两条加载指令才能完成。因为在两次加载操作之间定时器继续计数,因此两次的读取值可能不一致(两次读操作之间,定时器有可能从低位部分向高位部分溢出)。STM中由一个捕获寄存器(STM_CAP)来实现同步读取一致的STM内容。每次读取寄存器STM_TIM0至STM_TIM5之一时,捕获寄存器锁存STM的高位部分。因此,在定时器低位部分被读出时,STM_CAP保存此时刻定时器的高位部分。第二次读操作应读出STM_CAP值,从而得到完整的定时器值。也可从7个寄存器STM_TIM0至STM_TIM6中分段读取STM值(它们按递增顺序分别读取32位STM值)。这些寄存器可被看作是独立的、具有不同精度和定时范围的32位定时器。56位系统定时器的值可以和保存在寄存器STM_CMP0和STM_CMP1中的两个值进行比较,若STM与STM_CMP0或STM_CMP1的值比较匹配,可产生服务请求。图14-1给出STM模块的总体框图,还给出读取部分STM的几种选择。TC1728用户手册STM,V1.614-3V1.0,2011-12系统定时器(STM)图14-1STM模块寄存器通用框架图TC1728用户手册STM,V1.614-4V1.0,2011-12系统定时器(STM)14.2.1精度和定时范围表14-1给出各定时器寄存器的精度和定时范围,表中以75MHzSTM输入时钟频率fSTM的值为例。表14-1系统定时器精度和定时范围寄存器STM位精度[s]定时范围[s]精度定时范围fSTM[MHz]STM_TIM0[31:0]1/fSTM232/fSTM13.3ns57.3s75STM_TIM1[35:4]16/fSTM236/fSTM213ns916.2sSTM_TIM2[39:8]256/fSTM240/fSTM3.41μs244.3minSTM_TIM3[43:12]4096/fSTM244/fSTM54.6μs65.1hSTM_TIM4[47:16]65536/fSTM248/fSTM0.874ms43.44天STM_TIM5[51:20]220/fSTM252/fSTM13.98ms1.90年STM_TIM6[55:32]232/fSTM256/fSTM57.3s30.47年STM_CAP[55:32]232/fSTM256/fSTM57.3s30.47年TC1728用户手册STM,V1.614-5V1.0,2011-12系统定时器(STM)14.2.2寄存器比较操作56位STM中的内容可以和保存在STM_CMP0和STM_CMP1寄存器中的比较值进行比较。STM与STM_CMP0或STM_CMP1寄存器之间的比较匹配将会产生服务请求。比较操作的两个参数可编程设置:1.用于进行比较操作的寄存器STM_CMP0/STM_CMP1相关位的宽度(比较宽度MSIZEx),从1到32可选。2.用于进行比较的56位STM中的首位位置,从0到24可选。参数可编程设置的特性使得STM的比较功能非常灵活。通过设置MSIZE=0和MSTART=n,甚至可以检测56位STM值中的单个位n(n=0-24)的跳变。图14-2比较模式操作图14-2给出比较操作的例子。在该例中参数设置如下:•MSIZE0=10001B=17D;MSTART0=01010B=9D•MSIZE1=00111B=7D;MSTART1=00111B=6DTC1728用户手册STM,V1.614-6V1.0,2011-12系统定时器(STM)非零的MSIZE的比较操作始终表明将保存在CMP寄存器中的比较值进行向右零扩展。这意味着图14-2的例中,比较寄存器的内容STM_CMP0[17:0]加上9位向右零扩展值与STM[27:0]进行比较(STM[8:0]=000H);对于寄存器STM_CMP1,STM[14:0](其中STM[5:0]=00H)与STM_CMP1[8:0]加上6位向右零扩展值进行比较。14.2.3比较匹配中断控制图14-3给出比较匹配中断控制的逻辑电路。每个STM_CMPx寄存器具有比较匹配中断请求标志(STM_ICR.CMPxIR),该标志可在发生比较匹配事件时进行硬件置位。软件也可置位(由STM_ISSR.CMPxIRS)或清零(由STM_ISSR.CMPxIRR)中断请求标志。需要注意:通过设置STM_ISSR.CMPxIRS=1来置位STM_ICR.CMPxIR不会在STMIRx上产生中断。来自CMP0和CMP1的匹配中断还可进一步经由STM_ICR.CMPxOS连至输出信号STMIR0或STMIR1。STMIR0和STMIR1输出信号分别连接到中断服务请求控制寄存器STM_SRC0和STM_SRC1。图14-3STM中断控制STM复位之后,因为STM和比较寄存器STM_CMPx的复位值匹配,比较匹配中断标志STM_ICR.CMPxIR被立即置位。由于在STM复位操作之后,比较匹配中断被自动禁止(CMPxEN=0),因此置位CMPxIR标志不能直接产生比较匹配中断。因而,在STM复位之后、使能比较匹配中断之前,应当软件清零CMPxIR标志(置位寄存器TC1728用户手册STM,V1.614-7V1.0,2011-12系统定时器(STM)STM_ISSR的位CMPxIRR)。否则,会触发不需要的比较匹配中断事件。关于STMR0和STMR1的DMA连接的详细信息在页14-21的表14-4给出。14.3STM寄存器该部分叙述STM的STM寄存器。如图14-4所示,STM寄存器可以分成四种类型。STM寄存器概览图14-4STM寄存器TC1728的所有寄存器在挂起模式下可读。STM模块寄存器地址映射的详细描述参见页14-21的表14-5。表14-2寄存器地址空间模块起始地址结束地址注STMF0000200HF00002FFH-TC1728用户手册STM,V1.614-8V1.0,2011-12系统定时器(STM)表14-3寄存器概览-STM寄存器寄存器缩略名寄存器完整名地址偏移量描述见STM_CLC1)STM时钟控制寄存器00H页14-9STM_IDSTM模块ID寄存器08H页14-10STM_TIM0STM定时器寄存器010H页14-11STM_TIM1STM定时器寄存器114H页14-11STM_TIM2STM定时器寄存器218H页14-12STM_TIM3STM定时器寄存器31CH页14-12STM_TIM4STM定时器寄存器420H页14-12STM_TIM5STM定时器寄存器524H页14-13STM_TIM6STM定时器寄存器628H页14-13STM_CAPSTM定时器捕获寄存器2CH页14-14STM_CMP0STM比较寄存器030H页14-14STM_CMP1STM比较寄存器134H页14-14STM_CMCONSTM比较匹配控制寄存器38H页14-15STM_ICRSTM中断控制寄存器3CH页14-17STM_ISRRSTM中断置位/复位寄存器40H页14-19STM_SRC11)STM服务请求控制寄存器1F8H页14-20STM_SRC01)STM服务请求控制寄存器0FCH页14-201)若位ARSTDIS.STMDIS置位,这些寄存器随着应用程序的复位而复位。TC1728用户手册STM,V1.614-9V1.0,2011-12系统定时器(STM)14.3.1时钟控制寄存器STM时钟控制寄存器可控制开启/关闭STM并控制输入时钟频率。上电复位之后,始终使能STM开始计数。位DISR置1可禁止STM运行。STM_CLCSTM时钟控制寄存器(00H)复位值:00000200H符号位序号类型功能说明DISR0rw模块禁止请求位STM模块启用/禁止控制。0B未请求禁止STM模块1B请求禁止STM模块DISS1r模块禁止状态位该位指示STM模块的当前状态。0BSTM模块被使能1BSTM模块被禁止SPEN2rwOCDS模块挂起使能用于使能挂起模式。EDIS3rw休眠模式启用控制用于模块休眠模式控制。SBWE4wOCDS模块挂起位写使能决定SPEN和FSOE是否被写保护。FSOE5rw快速关闭使能在OCDS挂起模式下,用于快速关闭时钟。TC1728用户手册STM,V1.614-10V1.0,2011-12系统定时器(STM)符号位序号类型功能说明RMC[10:8]rw运行模式下的时钟分频000B没有时钟信号fSTM产生001B选择时钟信号fSTM=fFPI010B选择时钟信号fSTM/2(复位缺省值)011B选择时钟信号fSTM/3...111B选择时钟信号fSTM/70[7:6],[31:11]r保留读取返回0;应写入0。STM模块ID寄存器中存放STM模块版本的只读信息。STM_IDSTM模块ID寄存器(08H)复位值:0000C0XXH符号位序号类型功能说明MODREV[7:0]r模块修订版编号MODREV给出模块修订版编号,从01H(第一版)开始编号。MODTYPE[15:8]r模块类型该位域定义模块为32位模块:C0HMODNUM[31:16]r模块编号该位域定义STM模块ID编号:0000HTC1728用户手册STM,V1.614-11V1.0,2011-12系统定时器(STM)14.3.2定时器/捕获寄存器寄存器STM_TIM0至STM_TIM6提供STM计数器中不同精度的32位值。STM_TIM0STM定时器寄存器0(10H)复位值:00000000H符号位序号类型功能说明STM[31:0][31:0]r系统定时器位[31:0]该位域保存56位STM的位[31:0]。STM_TIM1STM定时器寄存器1(14H)复位值:00000000H符号位序号类型功能说明STM[35:4][31:0]r系统定时器位[35:4]该位域保存56位STM的位[35:4]。TC1728用户手册S