F2812的时钟和控制系统.doc

上传人:飞****9 文档编号:137093869 上传时间:2020-07-05 格式:DOC 页数:7 大小:220.01KB
返回 下载 相关 举报
F2812的时钟和控制系统.doc_第1页
第1页 / 共7页
F2812的时钟和控制系统.doc_第2页
第2页 / 共7页
F2812的时钟和控制系统.doc_第3页
第3页 / 共7页
F2812的时钟和控制系统.doc_第4页
第4页 / 共7页
F2812的时钟和控制系统.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《F2812的时钟和控制系统.doc》由会员分享,可在线阅读,更多相关《F2812的时钟和控制系统.doc(7页珍藏版)》请在金锄头文库上搜索。

1、F2812的时钟和控制系统 众所周知,支撑我们身体四肢能够灵活运动的能量来源于心脏,正是心脏不停的有规律的跳动给身体的各个机能供血,我们才能去做任意我们想做的事情。如果我们的身体过度疲劳,或者感染了细菌病毒而生病了,这个时候就会有医生来给我们检查身体,并且进行治疗。其实DSP也一样,需要一个类似于心脏的模块来提供其正常运行的动力和节奏。在这一章里面,我们一起来学习F2812的“心脏”F2812的振荡器、锁相环PLL和时钟机制。除此之外还要学习给DSP做“身体检查”,以维持其正常工作的看门狗模块。1、振荡器OSC(Oscillator)和锁相环PLL(Phase Locked Logic) 为了

2、能够让F2812能够按部就班的执行相应的代码,实现相应的功能,他需要不断的规律的时钟脉冲,而这一功能就由F2812内部的振荡器OSC和基于PLL的时钟模块来实现。在这里简单的介绍一下究竟振荡器OSC和锁相环PLL是什么:振荡器OSC: 一种能量转换装置,将直流电能转换为具有一定频率的交流电能。锁相环PLL: 锁相环也叫相同步逻辑,用途是在收、发通信双方建立载波同步或位同步。因为它的工作过程是一个自动频率(相位)调整的闭合环路,所以叫环。让我们来看一下整体的图:图1 2812芯片内的OSC和PLL模块 如上图所示,F2812上有基于PLL的时钟模块,为器件及各种外设提供时钟信号。锁相环中有4位倍

3、频设置位,以此来提供各种速度的时钟信号。基于PLL的时钟模块可以采用两种操作模式:(1)内部振荡器:在PLL未被禁止的情况下,使用外部晶振给2812提供时钟信号,则必须使用X1/XCLKIN引脚和X2引脚,在这两引脚之间连接一个石英晶体,即外部晶振。(2)外部时钟源:在PLL被禁止的情况下,旁路片内振荡器,由外部时钟源提供时钟信号,这时候讲外部振荡器的信号直接输入到X1/XCLKIN引脚上,此时X2引脚不使用。 外部引脚可以选择系统的时钟源。当为低电平时,系统直接采用时钟或晶振直接作为系统时钟;当为高电平时,外部时钟经过PLL倍频后,为系统提供时钟。系统可以通过锁相环控制寄存器来选择锁相环的工

4、作模式和倍频的系数。下面的表格列出了各种PLL的配置模式下,时钟输入信号XCLKIN和时钟模块输出信号,即送至CPU的信号CLKIN之间的关系:PLL模块功能描述CLKINPLL被禁止上电复位时如果引脚是低电平,则PLL完全被禁止。此时,输入CPU的时钟是由外部振荡器直接通过X1/XCLKIN引脚输入的信号。XCLKINPLL旁路如果PLL未处于不使能的状态,上电默认的PLL配置(PLLCR的值为0)。PLL自身被旁路,从X1/XCLKIN引脚输入的时钟信号先除以2,然后再送去CPU。XCLKIN/2PLL使能通过给PLLCR寄存器写一个不为0的值来实现PLL的使能,时钟信号需要进入PLL模块

5、进行n倍频,然后再除以2,最后送至CPU。(XCLKIN*n)/2 锁相环PLL中有锁相环控制寄存器PLLCR,作用是用来选择锁相环的工作模式和倍频的系数。上面提到过锁相环中有4位倍频设置位DIV,即为03位,往里面写入00001010用来确定倍频的系数,其他为保留。锁相环控制寄存器PLLCR如下:15 4 3 0保留DIV 在PLL模式中,平常使用的是PLL使能模式,从图1可以看到,通常采用30M的晶振来给2812提供时基。当PLLCR的DIV位被置为最大值1010的时候,CPU的时钟将达到150MHz,是2812所能支持的最大时钟频率,这也是为什么我们会选用30M晶振的原因。时钟频率具体的

6、计算如下所示:晶振为30M,PLLCR的DIV位被置为1010时的时钟频率CLKIN=(OSCLKIN*10)/2=(30M*10)/2=150MHz2、2812芯片中各种时钟信号的产生情况 2812芯片内各种时钟信号的产生情况如图2所示。CLKIN是经过PLL模块后送往CPU的时钟信号,进过CPU分发,作为SYSCLKOUT送至各个外设。因此,SYSCLKOUT=CLKIN。图2 2812芯片内各种时钟信号的产生情况 我们在使用2812开发的时候,通常会用到一些外设,例如SCI,EV,AD等,要使得这些外设工作,首先的就是向其提供时钟信号。因此,我们再系统初始化的时候,就需要对使用到的各个外

7、设的时钟进行使能,在这里和时钟使能相关的寄存器是外设时钟控制寄存器PCLKCR。PCLKCR控制各种时钟的工作状态,使能或禁止相关外设时钟,而PCLKCR各位的分配如下所示:15 14 13 12 11 10 9 保留ECANENCLK保留MCBSPENCLKSCIBENCLKSCIAENCLK保留 8 7 4 3 2 1 0SPIENCLK保留ADCENCLK保留EVBENCLKEVAENCLK 对PCLKCR中各种外设时钟有了基本的了解后,那么究竟是如何对项目中所需要的各个外设的时钟进行使能的呢?假设要做的项目中用到了EVA、SCIB、SPI、AD这4个外设,那么就需要按照下面的程序对这4

8、个外设进行时钟的使能。使能外设时钟SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;SysCtrlRegs.PCLKCR.bit.SCIBENCLK=1;SysCtrlRegs.PCLKCR.bit.SPIENCLK=1;SysCtrlRegs.PCLKCR.bit.ADCENCLK=1; 从图2中也能看到,SYSCLKOUT信号经过低速外设时钟预定标寄存器LOSPCP(取值范围07,即000111)变成了LSPCLK,提供给低速外设SCIA、SCIB、SPI、McBSP;SYSCLKOUT信号经过高速外设时钟预定标寄存器HISPCP(取值范围07,即000111)变成了HS

9、PCLK,提供给高速外设EVA、EVB、ADC。他们各位的分配如下:高速外设时钟设置寄存器HISPCP15 3 2 0保留HSPCLK低速外设时钟设置寄存器LOSPCP15 3 2 0保留LSPCLK 在各个外设实际使用时钟的时候,LSPCLK或者HSPCLK需要经过各个外设自己的时钟预定标,如果外设自己的时钟预定标位的值为0的话,则外设实际使用的时钟就是LSPCLK或者HSPCLK。LSPCLK计算公式LOSPCP=0,LSPCLK=SYSCLKOUTLOSPCP=17,LSPCLK=SYSCLKOUT/(2*LOSPCP)HSPCLK计算公式HOSPCP=0,HSPCLK=SYSCLKOU

10、THOSPCP=17,HSPCLK=SYSCLKOUT/(2*HISPCP) 通过上面的2个计算公式,可能会产生疑问,LSPCLK的值有没有可能会比HSPCLK的值大?也就是说提供给低速外设的时钟频率反而比提供给高速外设的时钟频率来的快?从上面的LSPCLK和HSPCLK的计算公式可以看出,这两个时钟信号的频率是独立无关的,各自分别取决于LOSPCP或者HISPCP的值,和其他因素没有关系。当我们给LOSPCP寄存器所赋的值小于给HISPCP寄存器所赋的值时,LOSPCP的值就会大于HSPCP的值。虽然这完全取决于我们对于寄存器的初始化,但是一般情况下,也不会让这样的情况出现的,因为低速外设所

11、需要的时钟毕竟要比高速外设所需要的时钟慢些,否则就没有必要区分高低速了,当然这些定义也都是相对而言的。3、看门狗(Watch Dog) 在学习DSP看门狗之前,先让我们来了解一下MCU(Microprocessor Control Unit 微处理器单元)中看门狗的原理,以便我们能更好的理解DSP中看门狗,因为两者之间的原理是类似的。MCU中看门狗的原理 在有MCU构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行

12、实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”。 看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是:看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平(或低电平),这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在他和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自

13、动复位。 看门狗,又叫watchdog timer,是一个定时器电路,一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到MCU,使MCU复位。防止MCU死机。看门狗的作用就是防止程序发生死循环,或者说程序跑飞。图3 看门狗功能框图 2812中的看门狗原理和上面讲诉的MCU的看门狗原理是类似的,其作用是为DSP的运行情况进行“把脉”,一旦发现程序跑飞或者状态不正常便立即使

14、DSP复位。 为了实现看门狗的各项功能,需要准备设置其内部的3个功能寄存器,而这3个功能寄存器分别是看门狗计数寄存器WDCNTR、看门狗复位寄存器WDKEY、看门狗控制寄存器WDCR。看门狗计数寄存器WDCNTR15 8 7 0保留WDCNTR 在这里可以看到计数器一共有8位,当这个8位的计数器计数达到最大值256时,看门狗模块就会产生一个输出脉冲,脉冲宽度为512个振荡器时钟周期。可能有疑问为什么要产生一个512倍振荡器时钟周期的宽脉冲信号?因为需要是内核复位的信号和要唤醒处理器的中断信号的有效时间远大于振荡器的时钟周期。 为了防止看门狗加法计数器WDCNTR溢出,不想产生脉冲信号,这里我们通常可以采用两种方法:(1)禁止看门狗,也即为屏蔽计数器,使得计数器WDCNTR无效。则下面我们介绍另外一个寄存器。看门狗控制寄存器WDCR15

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 外语文库 > 英语学习

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号