2020年1月23日第六章TMS320F2812的时钟及看门狗2020年1月23日主要内容时钟单元时钟单元基本结构锁相环电路时钟单元寄存器看门狗看门狗的基本结构看门狗基本操作看门狗应用2020年1月23日1时钟单元处理器将集成的外设分成高速和低速两组,可方便设置不同模式的工作频率2020年1月23日1.1时钟单元的基本结构F2812内部集成了振荡器、锁相环、看门狗及工作模式选择等控制电路;振荡器、锁相环主要为处理器CPU及相关外设提供可编程的时钟,每个外设的时钟都可以通过相应的寄存器进行编程设置;看门狗可以监控程序的运行状态,提高系统的可靠性。2020年1月23日2.1锁相环电路PLL主要作用:通过软件实时地配置片上外设时钟,提高系统的灵活性和可靠性;晶体振荡器及PLL模块2020年1月23日选择系统时钟源低电平高电平OSC允许2种方式提供时钟:内部振荡器:X1/XCLKIN和X2间连接一个石英晶体外部时钟:输入时钟直接接到X1/XCLKIN,X2悬空2020年1月23日2.2锁相环配置模式具体n值的设定见P101表6.6锁相环控制寄存器功能定义2020年1月23日2.3PLL控制寄存器2020年1月23日2.4PLL模块通过系统时钟输出提供快速和慢速2种外设时钟通过软件改变系统工作频率时,需等待系统时钟稳定后才可以继续完成其他操作为降低功耗,不使用的外设最好将其时钟禁止2020年1月23日voidIntiPll(Uint16val){volatileUint16iVol;if(SysCtrlRegs.PLLCR.bit.DIV!=val){EALLOW;SysCtrlRegs.PLLCR.bit.DIV=val;EDIS;////DisableDog();for(iVol=0;iVol((131072/2)/12);iVol++){}}}等待PLL稳定2020年1月23日voidInitPeripheralClocks(void){EALLOW;SysCtrlRegs.HISPCP.all=0x0001;SysCtrlRegs.LOSPCP.all=0x0002;SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1;……SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;EDIS;2020年1月23日3时钟单元寄存器外设时钟控制寄存器(PCLKCR)高/低速外设时钟寄存器(HISPCP/LOSPCP)锁相环控制寄存器(PLLCR)2020年1月23日时钟、锁相环、看门狗以及低功耗模式寄存器2020年1月23日3.1外设时钟控制寄存器(PCLKCR)PCLKCR控制片上各种时钟的工作状态,使能或禁止相关外设的时钟2020年1月23日作用:使能或禁止相关外设时钟PCLKCR各位功能定义:1:使能0:禁止2020年1月23日2020年1月23日3.2高/低速外设时钟寄存器HISPCP和LOSPCP控制寄存器分别控制高/低速的外设时钟;2020年1月23日2020年1月23日2020年1月23日3.3锁相环控制寄存器(PLLCR)2020年1月23日6.2看门狗看门狗的基本结构看门狗基本操作看门狗寄存器看门狗应用2020年1月23日4.1看门狗的基本结构看门狗定时器是一个独立于CPU的计数单元,若不采用特定的指令周期地使看门狗定时器复位,看门狗单元将会使系统复位;为避免不必要的复位,要求用户软件周期地对看门狗定时器进行复位操作;看门狗可以检测软件和硬件地运行状态,提高了系统的可靠性;2020年1月23日2020年1月23日看门狗内部原理图如图6.92020年1月23日看门狗计数器的工作原理:受WDKEY控制0x55+0xAA控制复位4.2看门狗的基本操作2020年1月23日3.3看门狗寄存器WD禁止位WD校验位WD预定标设置位(1)看门狗控制寄存器2020年1月23日2020年1月23日(2)系统控制和状态寄存器包含看门狗溢出位和看门狗中断屏蔽/使能位2020年1月23日2020年1月23日(3)看门狗计数寄存器2020年1月23日(4)看门狗复位寄存器2020年1月23日4.看门狗应用voidKickDog(void){EALLOW;SysCtrlRegs.WDKEY=0x0055;SysCtrlRegs.WDKEY=0x00AA;EDIS;}2020年1月23日volatile使寄存器的值被外部代码任意改变;如:外设的寄存器的值可以被外部硬件或中断任意改变,若不用volatile,则寄存器的值只能被程序代码所改变。返回2020年1月23日EALLOW&EDISTI的DSP为了提高安全性能,将很多关键寄存器作了保护处理。这些关键寄存器包括器件仿真寄存器、FLASH寄存器、CSM寄存器、PIE矢量表、系统控制寄存器、GPIOMUX寄存器、eCAN寄存器的一部分;DSP由于在上电复位之后,状态寄存器基本上都是清零,EALLOW位也被清除以启用EALLOW保护,在受保护时,CPU对受保护寄存器进行的所有写入被忽略且只允许CPU读取、JTAG读取和JTAG写入。为了能够对这些特殊寄存器进行初始化,所以在对上述特殊寄存器进行改写之前,一定要执行汇编指令asm(“EALLOW”)或者宏定义EALLOW来设置状态寄存器1的C6位。在设置完寄存器之后,一定要注意执行汇编指令asm(“EDIS”)或者宏定义EDIS来清除状态寄存器1的C6位;返回2020年1月23日位定义对寄存器整体赋值,选择.all;对寄存器某位操作,选择.bit,后面加寄存器位名字;如SysCtrlRegs.LOSPCP.all=0x0002;SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;返回2020年1月23日