TMS320F2802x - Piccolo系列DSC原理及应用 - 图文 下载本文

图 2.10 OSC和PLL模块

下面适用于有X1和X2引脚的器件:

当使用XCLKIN作为外部时钟源时,你必须将X1拉低,使X2保持不连接。

表 2.9 可能的PLL配置模式

PLL模注释 PLLSTS CLKIN和式 [DIVSEL](1) SYSCLKOUT(2) PLL关由用户通过置位PLLSTS寄存器的PLLOFF0,1 OSCCLK/4 闭 位来激活。在这种模式下PLL模块禁用。2 OSCCLK/2 这对于降低系统噪声和低功率操作很有用。3 OSCCLK/1 在进入这个模式之前,PLLCR寄存器必须先被设置成0x0000(PLL旁路)。CPU时钟(CLKIN)直接从X1/X2,X1或XCLKIN上的输入时钟获得。 PLL旁PLL旁路是上电时或一次外部复位(XRS)0,1 OSCCLK/4 路 后默认的PLL配置。当PLLCR寄存器被设2 OSCCLK/2 置成0x0000,或者,在PLLCR寄存器被修3 OSCCLK/1 改之后PLL锁定到一个新的频率时,这个模式被选择。在这个模式下,PLL本身被旁路,但PLL未关闭。 PLL启该模式通过将一个非零值n写入PLLCR寄0,1 OSCCLK*n/4 用 存器来实现。当写PLLCR时,器件将切换2 OSCCLK*n/2 到PLL旁路模式,直至PLL锁定。 (1) PLLSTS[DIVSEL]在写PLLCR之前必须为零,并且,应该只有在PLLSTS[PLLLOCKS] =1之后才能被修改。详见图 2.14。 (2)

选择的输入时钟和PLLCR[DIV]位应该使PLL(VCOCLK)的输出频率是最小值50MHz。

2.2.5 输入时钟故障检测

DSP的时钟源(内部或外部时钟源)可能失效。当PLL未禁用时,主振荡器故障逻辑允许器件检测这个条件,并默认为本节中描述的一个已知状态。

使用2个计数器来监测OSCCLK信号的出现,如图 2.11所示。第一个计数器对来自X1/X2或XCLKIN输入的OSCCLK信号本身进行递增计数。当PLL未关闭时,第二个计数器对来自PLL模块的VCOCLK进行递增计数。这两个计数器这样来配置:当7位的OSCCLK计数器溢出时,清除13位的VCOCLK计数器。在正常的工作模式下,只要OSCCLK存在,VCOCLK计数器就永远不会溢出。

21

图 2.11 振荡器逻辑图

如果缺少OSCCLK输入信号,PLL将输出一个默认的跛行模式(limp mode)频率,VCOCLK计数器将继续递增。由于缺少OSCCLK信号,OSCCLK计数器将不再递增,因此,VCOCLK计数器不再周期性地被清除。最后,VCOCLK计数器溢出,并且,如果需要,器件将CPU的CLKIN输入切换为PLL的跛行模式(limp mode)输出频率。

当VCOCLK计数器溢出时,缺少时钟检测逻辑复位CPU、外设和其它器件逻辑。产生的复位被称为缺少时钟检测逻辑复位(MCLKRS)。MCLKRS只是一个内部复位。器件的外部XRS引脚不被MCLKRS拉低,PLLCR和PLLSTS寄存器不复位。 除了复位器件之外,缺少振荡器逻辑还置位PLLSTS[MCLKSTS]寄存器位。当MCLKCSTS位为1时,表明缺少振荡器检测逻辑复位器件,CPU正以一半的跛行模式(limp mode)频率运行。

22

复位后软件应该检查PLLSTS[MCLKSTS]位来确定器件是否因为一个缺少时钟条件而被MCLKRS复位。如果MCLKSTS置位,固件应当对系统采取一些适当的措施,例如,关断系统。缺少时钟状态可以通过置位PLLSTS[MCLKCLR]位来清除。这将复位缺少时钟检测电路和计数器。如果在写MCLKCLR位之后仍然缺少OSCCLK,那么VCOCLK计数器再次溢出,整个过程将重复发生。

注:对于那些对CPU的正确操作频率要求非常严格的应用,一旦输入时钟出现故障,就应该执行一种机制,在这种机制下DSP将保持复位状态。例如,如果电容被完全充满电,可以使用一个RC电路来触发DSP的XRS引脚。使用一个I/O引脚周期性地对电容进行放电,防止电容被完全充电。这样一个电路还可以帮助检测Flash存储器故障。

请谨记下列预防措施和限制:

? 更改PLL控制寄存器时使用正确的流程。修改PLLCR寄存器时始终遵循图

2.14的流程。

? 不要在器件工作在跛行模式(limp mode)时写PLLCR寄存器。当写PLLCR

寄存器时,器件将CPU的CLKIN输入切换到OSCCLK/2。当检测到跛行模式(limp mode)模式的操作时,OSCCLK可能不存在,系统时钟将停止。在写PLLCR寄存器之前,请检查PLLSTS[MCLKSTS]位确保它的值为0,如图 2.14所示。

? 在没有外部时钟的情况下,看门狗无法工作。当OSCCLK不存在时,看门

狗无法工作,不能产生复位。尚未添加特殊的硬件使看门狗在缺少OSCCLK的情况下切换到跛行模式(limp mode)时钟。

? 不要在器件工作在跛行模式(limp mode)时进入停机低功率模式。如果你尝

试在器件工作在跛行模式(limp mode)时进入停机模式,那么器件可能无法进入停机模式。器件可能改为进入待机模式或者挂起,而且可能无法退出停机模式。由于这个原因,在进入停机模式之前,请检查PLLSTS[MCLKSTS]位确保它的值为0。 下面描述了缺少时钟检查逻辑在各种操作模式下的行为:

? PLL旁路模式

当PLL控制寄存器被设为0x0000时,PLL被旁路。根据PLLSTS[DIVSEL]位的状态,OSCCLK、OSCCLK/2或OSCCLK/4直接与CPU的输入时钟CLKIN相连。如果检测到缺少OSCCLK,器件将启动切换到PLL,设置缺少时钟检测状态位,并产生一次缺少时钟复位。这时,器件将以PLL跛行模式(limp mode)频率或一半的PLL跛行模式(limp mode)频率运行。

? PLL启用模式

当PLL控制寄存器为一个非零值(PLLCR = n,这里n≠0x0000)时,PLL被使能。在这个模式下,OSCCLK*n、OSCCLK*n/2或OSCCLK*n/4连接到CPU的CLKIN。如果检测到缺少OSCCLK,缺少时钟检测状态位将被置位,器件将产生一个缺少时钟复位。这时,器件将以一半的PLL跛行模式(limp mode)频率运行。

? 待机低功率模式

该模式下,CPU的CLKIN停止。如果检测到一个缺少输入时钟,缺少时钟状态位将被置位,器件将产生一次缺少时钟复位。如果发生这种情况时PLL

23

处于旁路模式,一半的PLL跛行模式频率将被引入CPU。这时,器件将以PLL跛行模式(limp mode)频率或PLL跛行模式(limp mode)频率的1/2、1/4运行,由PLLSTS[DIVSEL]位的状态决定。

? 停机低功率模式

在停机低功率模式下,器件的所有时钟都关闭。当器件退出停机模式时,振荡器和PLL上电。只有在上电完成之后,用来检测缺少输入时钟(VCOCLK和OSCCLK)的计数器才被使能。如果VCOCLK计数器溢出,缺少时钟检测状态位将被置位,器件将产生一个缺少时钟复位。如果计数器溢出时PLL处于旁路模式,1/2的PLL跛行模式频率将自动进入CPU。这时,器件将以PLL跛行模式(limp mode)频率或PLL跛行模式(limp mode)频率的1/2、1/4运行,由PLLSTS[DIVSEL]位的状态决定。

2.2.6 NMI中断和看门狗

NMI中断用来监控系统中错误的CLOCKFAIL条件。如果软件未响应使能锁存的故障条件,在设定的时间间隔之后,NMI看门狗触发一个复位。图 2.12所示为包含的中断机制。NMI看门狗和3.4节描述的看门狗不同。

A NMI看门狗模块由SYSCLKOUT计时。由于PLL的跛行模式(limp mode)功能,即使OSCCLK的源时钟出现故障,SYSCLKOUT也会出现。

图 2.12 时钟故障中断

表 2.10列出了NMI中断支持的寄存器,这些寄存器映射到VBus16空间。

表 2.10 NMI中断寄存器

名称 NMICFG NMIFLG NMIFLGCLR NMIFLGFRC 地址范围 0x7060 0x7061 0x7062 0x7063 大小(x16) 1 1 1 1 24

EALLOW yes yes yes yes 描述 NMI配置寄存器 NMI标志寄存器 NMI标志清除寄存器 NMI标志强制设置寄存