- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6.2.2 看门狗基本操作 看门狗的预定标寄存器可以用来提高看门狗的计数溢出周期。逻辑校验位(WDCHK)是看门狗的另一个安全机制,所有访问看门狗控制寄存器(WDCR)的写操作中,相应的校验位(位5~3)必须是“101,否则将会拒绝访问并会立即触发复位。 看门狗的内部原理图 6.2.3 看门狗寄存器 1.看门狗控制寄存器 看门狗控制寄存器的各位分配 看门狗控制寄存器功能定义 2.系统控制和状态寄存器 系统控制和状态寄存器各位分配 系统控制和状态寄存器功能定义 盐城工学院 电气工程学院 DSP应用技术 * 第6章 TMS320F2812的时钟及看门狗 DSP TMS320F2812内部结构 CPU 外设 存储器 系统控制 外部接口 G P I O 6.1 时钟单元 6.1.1 时钟单元基本结构 TMS320F2812处理器内部集成了振荡器、锁相环、看门狗及工作模式选择等控制电路。 振荡器、锁相环主要为处理器CPU及相关外设提供可编程的时钟,每个外设的时钟都可以通过相应的寄存器进行编程设置; 看门狗可以监控程序的运行状态,提高系统的可靠性。 F2810和F2812内部的各种时钟和复位电路 6.1.2 锁相环电路 锁相环是一种控制晶振使其相对于参考信号保持恒定相位的电路,在数字通信系统中使用比较广泛。 目前微处理器或DSP集成的片上锁相环,主要作用则是通过软件实时地配置片上外设时钟,提高系统的灵活性和可靠性。此外,由于采用软件可编程锁相环,所设计的系统处理器外部允许较低的工作频率,而片内经过锁相环微处理器提供较高的系统时钟。 好处:可以有效地降低系统对外部时钟的依赖和电磁干扰,提高系统启动和运行的可靠性,降低系统对硬件的设计要求 。 6.1.2 锁相环电路 TMS320F2812处理器的片上晶振和锁相环模块为内核及外设提供时钟信号,并且控制器件的低功耗工作模式。片上晶振模块允许使用2种方式为器件提供时钟,即采用内部振荡器或外部时钟源。 (1) 使用内部振荡器,在Xl/XCLKIN和X2这两个引脚之间连接一个石英晶体,一般选用30 MHz。 (2) 采用外部时钟,将输入的时钟信号直接接到Xl/XCLKIN引脚上,而X2悬空,不使用内部振荡器。 旁路 寄存器 片上 振荡器 晶体振荡器及锁相环模块 锁相环配置模式 处理器内部时钟电路 锁相环模块除了为C28x内核提供时钟外,还通过系统时钟输出提供快速和慢速2种外设时钟,而系统时钟主要通过外部引脚XPLLDIS及锁相环控制寄存器进行控制。 如果XPLLDIS为高电平,使能芯片内部锁相环电路,则可以通过控制寄存器PLLCR软件设置系统的工作频率。 注意:1. 在通过软件改变系统的工作频率时,必须等待系统时钟稳定后才可以继续完成其他操作。 2. 可以通过外设时钟控制寄存器使能外设时钟。 在具体的应用中。为降低系统功耗,不使用的外设最好将其时钟禁止。外设时钟包括快速外设和慢速外设两种,分别通过HISPCP和LOSPCP寄存器进行设置。 改变锁相环倍频系数和外设时时钟的具体应用程序 //---------------------------------------------------------------------------- //初始化锁相环及外设时钟函数InitPll //------------------------------------------------------------------------------ void InitPll(Uint16 val)] { volatile Uint16 iVol; if (SysCtrlRegs.PLLCR.bit.DIV!=val) { EALLOW; SysCtrlRegs.PLLCR.bit.DIV=val; EDIS; //在锁相环时钟频率切换过程中,只有当锁相环稳定后CPU才会切换到新的PLL设置 //因此在设置完PLLCR后需要等待PLL稳定。PLL的切换时间大约等于131072个输入时钟周期 DisableDog( ); for(iVol=0; iVol((131072/2)/12);iVol++) { } } } //为降低系统功耗,不使用的外设时钟需要屏蔽。但如果使用外设必须首先使能相应的外设时钟 void InitPeripheralClocks(void) {
文档评论(0)