DSP芯片硬件系统的基本设计中时钟电路的设计.docx

上传人:b****6 文档编号:6388833 上传时间:2023-01-06 格式:DOCX 页数:10 大小:24.45KB
下载 相关 举报
DSP芯片硬件系统的基本设计中时钟电路的设计.docx_第1页
第1页 / 共10页
DSP芯片硬件系统的基本设计中时钟电路的设计.docx_第2页
第2页 / 共10页
DSP芯片硬件系统的基本设计中时钟电路的设计.docx_第3页
第3页 / 共10页
DSP芯片硬件系统的基本设计中时钟电路的设计.docx_第4页
第4页 / 共10页
DSP芯片硬件系统的基本设计中时钟电路的设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

DSP芯片硬件系统的基本设计中时钟电路的设计.docx

《DSP芯片硬件系统的基本设计中时钟电路的设计.docx》由会员分享,可在线阅读,更多相关《DSP芯片硬件系统的基本设计中时钟电路的设计.docx(10页珍藏版)》请在冰豆网上搜索。

DSP芯片硬件系统的基本设计中时钟电路的设计.docx

DSP芯片硬件系统的基本设计中时钟电路的设计

 

引言

一个完整的DSP系统通常是由DSP芯片和其他相应的外围器件构成。

DSP硬件系统主要包括电源电路、复位电路、时钟电路等。

DSP的时钟电路用来为TMS320C54x芯片提供时钟信号,由一个内部振荡器和一个锁相环PLL组成,可通过晶振或外部的时钟驱动。

以下我们将着重讨论DSP硬件系统的基本设计中时钟电路的设计。

1.时钟信号的产生

为DSP芯片提供时钟信号一般有两种方法:

(1)使用外部时钟源的时钟信号,将外部时钟信号直接加到DSP芯片的X2/CLKIN引脚,而X1引脚悬空。

外部时钟源可以采用频率稳定的晶体振荡器,具有使用方便,价格便宜,因而得到广泛应用。

连接方式如图所示。

(2)利用DSP芯片内部的振荡器构成时钟电路,连接方式如图所示。

在芯片的X1和X2/CLKIN引脚之间接入一个晶体,CLKMD引脚必须设置以启动内部振荡器。

图使用外部时钟源图使用内部振荡器

2.锁相环PLL

锁相环PLL具有功率放大和时钟信号提纯的作用,利用PLL的锁定特性可以对时钟频率进行锁定,为芯片提供高稳定频率的时钟信号。

除此之外,锁相环还可以对外部时钟频率进行倍频,使外部时钟源的频率低于CPU的机器周期,以降低因高速开关时钟所引起的高频噪声。

TMS320C54x的锁相环有两种形式:

(1)硬件配置的PLL:

用于C541、C542、C543、C545和C546芯片。

(2)软件可编程PLL:

用于C54A、C546A、C548、C549、C5402、C5410、和C5420芯片。

硬件配置的PLL

硬件配置PLL,通过设定C54x的3个引脚CLKMD1、CLKMD2和CLKMD3的状态来选定时钟方式。

上电复位时,DSP根据这三个引脚的电平,决定PLL的工作状态,并启动PLL工作。

具体的配置方式如表所示。

表中时钟方式的选择方案是针对不同C54x芯片的。

对于同样的CLKMD引脚状态,使用芯片不同,所对应的选择方案就不同,其选定的工作频率也不同。

因此,在使用硬件配置的PLL时,应根据所选用的芯片型号来选择正确的引脚状态。

由表可见,进行硬件配置时,其工作频率是固定的。

当不用PLL时,CPU的时钟频率等于内部振荡器频率或外部时钟频率的一半;若用PLL,CPU的时钟频率等于内部振荡器频率或外部时钟频率乘以系数N,即对内部或外部时钟倍频,其频率为PLL×N。

在DSP正常工作时,时钟模式不能重新改变和配置。

但DSP进入IDLE3省电模式后,其CLKOUT输出高电平时,时钟模式便可以重新进行配置。

表2.1 时钟方式配置

引脚状态

时钟方式

CLKMD1

CLKMD2

CLKMD3

选择方案1

选择方案2

0

0

0

用外部时钟源,PLL×3

用外部时钟源,PLL×5

1

1

0

用外部时钟源,PLL×2

用外部时钟源,PLL×4

1

0

0

用内部振荡器,PLL×3

用内部振荡器,PLL×5

0

1

0

用外部时钟源,PLL×

用外部时钟源,PLL×

0

0

1

用外部时钟源,频率除以2

用外部时钟源,频率除以2

1

1

1

用内部振荡器,频率除以2

用内部振荡器,频率除以2

1

0

1

用外部时钟源,PLL×1

用外部时钟源,PLL×1

0

1

1

停止方式

停止方式

软件可编程PLL

2.2.1软件可编程PLL的工作方式

软件可编程PLL的特点是具有高度的灵活性。

它利用编程方式对时钟方式寄存器CLKMD的设定,来定义PLL时钟模块中的时钟配置。

它包括一个用来提供时钟乘法器系数的时钟定标器,并能直接接通和关断PLL的功能。

一个PLL锁定定时器,它可以用于延迟器件PLL时钟模式的切换,直到锁定操作完成为止。

通过软件编程,可以实现以下两种工作方式:

)PLL方式。

即倍频方式,芯片的工作频率等于输入时钟CLKIN乘以PLL的比例系数。

其比例系数共31种,取值范围为—15,靠锁相环电路获得。

)DIV方式。

即分频方式,对输入时钟进行2分频或4分频,在此方式下,所有的模拟电路,包括PLL电路将关断,以使芯片功耗最小。

2.2.2复位后时钟模式的设置

复位操作之后,时钟方式寄存器是由3个外部引脚CLKMD1、CLKMD2和CLKMD3的值来设定的。

3个CLKMD引脚对应的模式由表列出。

表 复位时设置的时钟模式(C5402)

CLKMD1

CLKMD2

CLKMD3

CLKMD的复位值

时钟方式

0

0

0

E007H

PLL×15

0

0

1

9007H

PLL×10

0

1

0

4007H

PLL×5

1

0

0

1007H

PLL×2

1

1

0

F007H

PLL×1

1

1

1

0000H

2分频(PLL无效)

1

0

1

F000H

4分频(PLL无效)

0

1

1

保留

从表可以看出,不同的外部引脚状态对应不同的时钟方式。

通常,DSP系统的程序需要从外部低速EPROM中调入,可以采用较低工作频率的复位时钟方式,待程序全部调入内部快速RAM后,再用软件重新设置DSP寄存器的值,使DSP芯片工作在较高的频率上。

复位后软件可编程PLL可以被编程设置为任意所需的模式。

下列时钟模式的引脚的组合可以在复位时开放PLL:

C5402中是CLKMD(3—1)=000B—>110B,其它器件中是CLKMD(3—1)=000B—>101B。

当这些时钟模式引脚组合被使用时,内部的锁存定时器不再激活。

因此,系统必须延迟释放复位以保PLL锁存时间的延迟得到满足。

2.2.3时钟工作方式寄存器CLKMD的应用说明

对PLL的编程就是对16位的存储器映射寄存器——时钟工作方式寄存器CLKMD的编程,其地址为0058H。

其各位的定义如下表所示:

15—12

11

10—3

2

1

0

位定义

PLLMUL

PLLDIV

PLLCOUNT

PLLON/OFF

PLLNDIV

PLLSTATUS

位操作

R/W

R/W

R/W

R/W

R/W

R

表 时钟模式寄存CLKMD的格式

时钟方式寄存器CLKMD各位段的功能见下表:

表CLKMD寄存器各位段的功能表

符号

名称

功能

15~12

PLLMUL

PLL乘法

(读/写位)

与PLLDIV以及PLLNDIV一起定义PLL的乘系数,见表5

11

PLLDIV

PLL除法位

(读/写位)

与PLLMUL以及PLLNDIV一起定义PLL的乘系数,见表5

10~3

PLLCOUNT

PLL计数器值

(读/写位)

PLL计数器是一个减法计数器,每16个输入时钟脉冲CLKIN到来后减1。

对PLL开始工作之后到PLL成为CPU时钟之前的一段时间进行计数定时。

PLL计数器能够确保在PLL锁定之后以正确的时钟信号加到CPU。

2

PLLON/OFF

PLL通/关位

(读/写位)

与PLLNDIV位一起决定PLL部件的通和断。

见下表

PLLON/OFF

PLLNDIV

PLL状态

0

0

断开

0

0

工作

1

0

工作

1

1

工作

1

PLLNDIV

PLL时钟电路选择位(读/写位)

与PLLMUL和PLLNDIV一起定义PLL的乘系数,并决定时钟电路的工作方式。

PLLNDIV=0,采用DIV方式,即分频

PLLNDIV=1,采用PLL方式,即倍频

0

PLLSTATUS

PLL的状态位(只读位)

用来指示时钟电路的工作方式:

PLLSTATUS=0,时钟电路为DIV方式

PLLSTATUS=1,时钟电路为PLL方式

PLL的系数的选择见下表:

表 PLL分频倍频系数配置表

PLLNDIV

PLLDIV

PLLMUL

PLL乘系数

0

0

1

1

1

1

0

0

1

1

0~14

15

0~14

15

0或偶数

奇数

 

PLLMUL+1

1

(PLLMUL+1)÷2

PLLMUL÷4

DSP内部时钟信号CLKOUT=CLKIN×系数。

3.可编程PLL时钟工作模式的切换编程

下面将详细说明软件可编程PLL的编程思想,以及PLL在启动设置时、在不同时钟模式之间转换时以及在IDLE1/IDLE2/IDLE3指令运行前后的正确使用。

从分频模式切换向倍频模式的切换编程

在进行从分频模式向倍频模式的转换时,应当注意如果从DIV模式切换到PLL模式时PLL没有被锁定,那么在模式转换发生之前一定要有PLL锁定时间延迟,以保证只有合适的时钟信号才会被提供给器件。

因此,在从DIV模式切换到PLL模式时了解PLL是否被锁定很重要。

在上电时、在PLLMUL或PLLDIV的值修改后、在PLL关闭后(即PLLON/OFF=0)或在输入参照时钟丢失之后,PLL是不锁定的。

一旦被锁定,它将保持锁定状态,甚至在DIV模式下也保持。

只要PLL前面已被锁定,而且自PLL锁定以来,PLL一直没有被关闭过(PLLON/OFF位保持为1),PLLMUL和PLLDIV的值也没有被改变,那么PLL将一直保持锁定状态。

从DIV模式到PLL模式的切换(把PLLNDIV设置为1)激活了PLLCOUNT可编程锁存定时器(在PLLCOUNT被预先装载了一个非零值时),并且这个特点可以用于提供一个实现定时时间延迟的便捷方法。

PLLCOUNT锁存定时器的特性应当用在前面描述过的PLL没有被锁定的情况下,除非用一个复位延时来实现锁定时间延迟,或者PLL不使用。

从DIV模式到PLL模式的切换是通过对CLKMD的装载来完成的。

后面将说明在PLL未锁定时从DIV模式切换到PLL模式的过程如果在PLL被锁定的条件下进行这个模式转换,效果与从PLL模式切换到DIV时相同,但是顺序相反。

在这种情况下,新时钟模式生效的延迟时间是相同的。

在PLL没有锁定或模式改变后工作在没有锁定的状态下,从DIV模式切换到PLL模式可以同过设置PLLMUL、PLLDIV和PLLNDIV位来选择频率的倍频。

并且PLLCOUNT位将被设置,以选择所需要的锁定时间延迟。

注意,只有在DIV模式中才能改变PLLMUL、PLLCOUNT和PLLON/DOFF位。

一旦PLLDIV置位,PLLCOUNT锁定定时器就从预设值开始递减。

当PLLCOUNT锁定定时器减到0后,需要6个CLKIN周期加上个PLL周期(CLKOUT频率)切换到PLL模式。

完成切换后,CLKMD中的PLLSTATUS位读出为1.。

注意,在PLL锁定期间,C54xDSP仍工作在DIV模式。

下面的指令可以实现从DIV模式切换到PLL×3模式,其中CLKIN频率为13MHz,PLLCOUNT=(18)10,该值包含了一定的安全冗余量。

STM#0010000010010111B,CLKMD

从倍频模式向分频模式的切换编程

从PLL模式切换到DIV模式是,没有PLLCOUNT延时,这种切换经过短暂的延时后即可实现。

从PLL模式切换到DIV模式时也要装载CLKMD寄存器。

将PLLDNIV位清零,选择DIV模式而且PLLMUL位被设置以选择所需要的频率乘数因子。

对所有的PLLMUL值(除了1111B)而言,切换到DIV模式需要6个CLKIN周期加上个PLL周期(CLKOUT频率)。

当PLLMUL的值为1111B,切换过程需要12个CLKIN周期加上个PLL周期。

在完成切换到DIV模式后,CLKMD中的PLLSTATUS位的读出值为0。

下面的程序可以实现从PLL×3(3倍频)模式到二分频模式的切换。

在程序中,通过检测PLLSTATUS位来确定是否已切换到DIV模式,在确认完成切换后,用STM指令关闭PLL。

STM#0B,CLKMD    ;转换到DIV模式

Testb:

LDMCLKMD,A   

AND#01B,A    ;查询STATUS位

BCTstStatu,ANEQ

STM#0B,CLKMD

      ;若STATUS是DIV模式时,复位PLLON/OFF

从倍频模式向倍频模式的切换编程

要改变PLL的倍率,必须先把时钟模式从PLL模式切换到DIV模式,然后在切换到新的PLL模式。

不允许从一种PLL倍率直接切换到另一种PLL倍率。

为了从一种PLL倍率切换到另一种PLL倍率,必须遵从以下步骤:

(1)将PLLNDIV位清0,选择DIV模式。

(2)查询PLLSTATUS位,该标志位为0说明已切换到DIV模式。

(3)按照所要求的倍率,修改CLKMD寄存器中的PLLMUL、OLLDIV和PLLNDIV。

一旦PLLDIV位被置位,PLLCOUNT锁定定时器就从预设值开始递减。

当PLLCOUNT锁定定时器减到0时,在经过6个CLKIN周期加上个PLL周期(CLKOUT频率)的时间后,切换到PLL模式。

下面一段指令可以完成从PLL×(X)模式切换到PLL1的模式

STM#0b,CLKMD     ;先转换到DIV模式

Testb:

LDMCLKMD,A     

AND#01B,A     ;查询STATUS位

BCTstStatu,ANEQ

STM#0000001111101111B,CLKMD

;转换到PLL×1模式

从分频模式向分频模式的切换编程

与从PLL模式到PLL模式切换的情况一样,直接在2分频和4分频之间的切换也是不允许的。

若要在这两个模式之间切换,则必须先切换到PLL的整数(非分数)倍频模式,然后在切换到所要求的分频模式。

下面的程序可实现从DIV÷2模式切换到DIV÷4模式:

STM#0000000010010111B,CLKMD

;先从2分频模式切换到PLL×1模式

STM#0B,CLKMD;再转换到DIV模式

Testb:

LDMCLKMD,A

AND#01B,A;查询STATUS位

BCTstStatu,ANEQ

STM#000110000000010B,CLKMD

;若STATUS=0,则转换到DIV模式,设置相关位,从PLL×1模式—>DIV÷4模式

紧跟在复位之后的PLL操作

在复位之后,时钟模式立即由3个外部引脚CLKMD1、CLKMD2和CLKMD3的值决定。

从初始时钟模式切换到任意其他模式的转换可以很容易地通过改变CLKMD的内容来完成。

如果内部振荡器的使用需要一个外部晶振,那么器件的CLKMD引脚必须在复位时被设置,一启动内部振荡器。

参考表和表中列出的每种器件的外部引脚值和可用模式。

(在C5420中内部振荡器是无效的)

下面的指令可实现从÷2模式到PLL×3的转换:

STM#0010000101001111B,CLKMD

使用IDLE指令时PLL的编程方法

在使用一条IDLE指令来减少能量需求时,对PLL的正确管理是很重要的。

时钟产生器在禁止PLL的DIV模式下消耗的能量是最少的。

因此,如果功耗是一个很重要的考虑时,在执行IDLE1IDLE2或IDLE3指令之前,希望从PLL模式转换到DIV模式并禁止PLL。

在“从PLL模式到DIV模式转换”一节中,已经解释了这个过程。

在器件从IDLE1/IDLE2/IDLE3模式唤醒之后,时钟产生器可以被重新编程到PLL模式,这个过程在“从DIV模式到PLL模式转换”一节中进行了解释。

注意,当PLL在模式IDLE状态下停止,并且C54x器件重新启动且时钟产生器切换回到PLL模式时,PLL锁定延迟会出现,其方式和一般器件启动时的情况一样。

因此,在这种情况下,必须考虑锁定延迟,可以是外部延迟或是用PLL锁存定时器延迟。

下面一段代码序列使时钟产生器从PLL×3模式切换到÷2模式,并关闭PLL,进入IDLE3状态。

当器件从IDLE3模式唤醒后,用一条STM指令将时钟产生器从DIV模式转换到PLL×3模式,此时,为锁存定时器PLLCOUNT所设的初值为(64)10。

STM#0B,CLKMD;转换到DIV模式

Testb:

LDMCLKMD,A;(CLKMD)—>(A)

AND#01B,A;查询STATUS位

BCTstStatu,ANEQ

;若STATUS=1,未转换到DIV模式,跳转到Testb处继续检测

STM#0B,CLKMD

;当STATUS=0,转换到DIV模式时复位PLLON/OFF

IDLE3

(在IDLE3唤醒之后,将PLL从DIV模式切换到PLL×3模式)

STM#0010001000000111B,CLKMD;PLLCOUNT=64(十进制)

5参考文献

1.DSP原理及应用电子工业出版社邹彦主

2.C54xApplications

3.C54xMnemonicInstruction

4.TMS320C54x系列DSP的CPU与外设[美]TexasInstrumentsIncorporated著梁晓雯裴小平李玉虎编译

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1