DSP硬件系统的基本设计中时钟电路的设计.docx
《DSP硬件系统的基本设计中时钟电路的设计.docx》由会员分享,可在线阅读,更多相关《DSP硬件系统的基本设计中时钟电路的设计.docx(9页珍藏版)》请在冰豆网上搜索。
![DSP硬件系统的基本设计中时钟电路的设计.docx](https://file1.bdocx.com/fileroot1/2023-1/21/6432322e-3429-4a86-842b-42caee716f8d/6432322e-3429-4a86-842b-42caee716f8d1.gif)
DSP硬件系统的基本设计中时钟电路的设计
绪论
一个完整的DSP系统通常是由DSP芯片和其他相应的外围器件构成。
DSP硬件系统主要包括电源电路、复位电路、时钟电路等。
DSP的时钟电路用来为TMS320C54x芯片提供时钟信号,由一个内部振荡器和一个锁相环PLL组成,可通过晶振或外部的时钟驱动。
以下我们将着重讨论DSP硬件系统的基本设计中时钟电路的设计。
关键字TMS320C54x时钟产生器软件可编程PLL
第一章时钟产生器
时钟产生器是在实验中为了得到想要的时钟而设计的电路,可驱动时钟器的时钟源有两种:
一个是外部时钟;另一个是带有内部振荡器电路的晶振。
(1)使用外部时钟源的时钟信号,将外部时钟信号直接加到DSP芯片的X2/CLKIN引脚,而X1引脚悬空。
外部时钟源可以采用频率稳定的晶体振荡器,具有使用方便,价格便宜,因而得到广泛应用。
连接方式如图1.1所示。
(2)利用DSP芯片内部的振荡器构成时钟电路,连接方式如图1.2所示。
在芯片的X1和X2/CLKIN引脚之间接入一个晶体,CLKMD引脚必须设置以启动内部振荡器。
图1.1使用外部时钟源图1.2使用内部振荡器
C54x器件的时钟产生器包括一个内部的振荡器和一个锁相环(PLL)电路。
目前,C54x器件上有两种不同类型的PLL,一些器件有硬件配置的PLL电路;而另一些器件有软件配置的PLL电路。
在本设计中,主要对软件配置PLL进行讲解和分析使用。
第二章软件可编程PLL
第一节软件配置PLL介绍
软件可编程PLL的特点是有高度的灵活性,它包括一个用来提供各种时钟乘数因子的时钟标定位、直接开放和禁止PLL的功能和一个PLL锁存定时器,该锁存定时器可以延迟期间PLL时钟模式的切换直到所存操作完成为止。
一时钟模式介绍
带有内部的软件可编程PLL的期间可以设置为下面两种时钟模式:
PLL模式:
输入时钟(CLKIN)乘以31个可能的因子中的一个因子,这些因子取值范围为0.25~15,他们可以通过PLL电路获取。
DIV(分频器)模式:
输入时钟(CLKIN)处以2或4.当用DIV模式时,所有的模拟部分,包括PLL电路,都被禁止以使功耗降到最小。
二时钟模式设置
复位操作之后,时钟操作模式立即由3个外部引脚CLKMD1,CLKMD2,CLKMD3的直来确定。
3个CLKMD引脚所对应的模式如表1所示,复位之后,软件可编程PLL可以被变成设置为所需的模式。
下列时钟模式引脚作何可以在复位时开放PLL:
C5402中是CLKMD(3-1)=000b110b.当这些时钟模式引脚被组合式,内部的PLL锁相定时器不再激活,因此,系统必须延迟释放复位以保证PLL锁存时间的延迟得以满足。
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
1/2(PLL禁止),内部振荡器使用
1
0
1
F0000h
1/4(PLL禁止),内部振荡器使用
0
1
1
-
保留,旁路模式
图表1
用程序设定的的PLL的值装载到16位的存储器映射(地址58h)时钟模式寄存器中(CLKMD)。
CLKMD寄存器用来定义PLL时钟模块的配置。
CLKMD寄存器的各位如图表2所示。
其功能如表3所示。
注意,复位时,CLKMD寄存器由一个预定义的值初始化,这个预定义的值只能由CLKMD(1-3)引脚来确定。
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
图表2
当处于DIV模式时,PLLMUL,PLLDIV,PLLON/OFF不必考虑,此时他们的值无定义。
位
名称
功能描述
15-12
PLLMUL
PLL乘数因子。
它与PLLDIV,PLLNDIV结合起来确定频率的乘数因子(见表4)。
11
PLLDIV
PLL除数因子。
它与PLLMUL,PLLNDIV结合起来去顶频率的乘数因子(见表4)。
10-3
PLLCOUNT
PLL计数器的值。
在PLL启动以后,且在PLL给处理器提供始终以前,该字段用来说明PLL锁存定时器记录的输入时钟周期(16个周期增加1),PLL计数器是递减计数器,有输入时钟16分频来驱动,英雌,每输入16个时钟,PLL计数器件1.PLL计数器可以保证处理器在PLL锁存后才获得的时钟信号,只有有效时钟信号才能送给处理器
2
PLLON/OFF
PLL开/关。
该位与PLLNDIV结合,用来启用或禁止时钟产生器PLL部分。
PLLON/OFF和PLLDIV结合起来强迫PLL进行操作;当PLLON/OFF为高时,PLL的运行不受PLLNDIV状态的影响
PLLON/OFFPLLNDIVPLL状态
00关
01开
10开
11开
1
PLLNDIV
PLL时钟产生器选择。
确定时钟产生器是工作在PLL模式还是工作在除法模式。
因此,该位与PLLMUL和PLLDIV结合起来确定了频率的乘数因子。
0
PLLSTATUS
PLL状态。
它指明时钟产生器运行的模式。
1,除法模式;
1,PLL模式
图表3
下面介绍PLL的成熟比率。
PLLNDIV
PLLDIV
PLLMUL
乘数因子
0
X
0-14
0.5
0
X
15
0.25
1
0
0-14
PLLMUL+1
1
0
15
1
1
1
0或偶数
(PLLMUL+1)/2
1
1
奇数
PLLMUL/4
图表4
在对CLKMD中的PLLCOUNT设初值时,要求值的范围为0-255,它的时钟是CLKIN除以16,因此产生的锁定时间可以被设为0-255*16个CLKIN周期,PLLCOUNT十进制初值为:
其中TCLKIN是输入时钟的周期,锁定时间是所需的PLL锁定时间,PLL锁定时间与CLKOUT频率的关系如图1所示:
图1
第二节程序
一倍频模式向倍频模式的切换
当需要从一种PLL乘数比率转换到另一种乘数比率时,时钟产生器必须在选择新的比率之前先从PLL模式转换到PLL模式,直接从一种PLL乘数比率转换到另一种乘数比率是不被支持的。
要转换这种频率,需要进行下列步骤的操作:
(1)将PLLNDIV位清零,选择DIV模式。
(2)查询PLLSTATUS位直到获得一个0.
(3)修改CLKDM以设置PLLMUL,PLLDIV,和PLLNDIV,获得所需要的乘数因子。
(4)将PLLCOUNT位设置成所需要的锁定时间。
程序如下:
STM#0b,CLKMD;转换成DIV模式
Testststus:
LDMCLKMD,A
AND#01b,A;查询PLLSTATUS位
BCteststatus,ANEQ
STM#0000001111101111b,CLKMD;转换到PLL×1,使PLLDIV位为0,PLLON/OFF为1,状态位为1;开PLLON/OFF;
二倍频模式向分频模式的切换
当从倍频模式向分频模式转换时,PLLCOUNT延迟不会出现,并且在一个短暂的延迟之后两种模式发生切换。
从分频模式向分频模式切换也可通过装载CLKMD来完成。
PLLNDIV位被清零,选择分频模式,而且PLLMUL位被设置已选择所需要的频率乘数因子。
对所有的PLLMUL值(除1111b)而言,向分频模式的转换在6个时钟周期加3.5个PLL周期后生效。
对PLLMUL去1111b而言,向分频模式转换在12个CLKIN周期加3.5个PLL周期后生效。
行分频模式转换完成后,CLKMD中的PLLSTATUS位读取为零,下面为PLL×3模式到除2模式的时钟转换。
程序:
STM#0b,CLKMD;转换成分频模式
TESTSTATUSLDMCLKMD,A
AND#01b,A;查询PLLSTATUS位
BCTESTSTATUS,ANEQ;判断A是否为0
STM#0b,CLKMD;当PLLSTATUS位为0时,复位PLLON/OFF
三分频模式向倍频模式的切换
许多情况下可能需要从分频模式向分频模式的转换。
但要注意的是,如果从分频模式向分频模式转换时PLL没被锁定,那么在模式转换之前一定要有时间延迟,就是设置PLLCOUNT位,以保证只有适当的时钟信号提供给器件,因此,再从分频模式向倍频模式转换时,一定要确定PLL是否被锁定。
在上电时、在PLLMUL或PLLDIV的值修改后、在PLL关闭后(即PLLON/OFF=0是)或在输入参照时钟丢失之后,PLL不被锁定。
从分频模式向倍频模式转换时,把PLLNDIV设置为1,从而激活了PLLCOUNT可编程锁存定时器,并且这个特点可以用于提供一个实现锁存时间延迟的便捷方法。
在PLL没有锁定的情况下,除非用一个复位延时来实现锁存时间延迟,或者PLL不使用。
在分频模式下,一旦PLLDIV位被设置,PLLCOUNT定时器开始从它的预设值递减。
当PLLCOUNT定时器减小到零时,向倍频模式装换在6个CLKIN时钟周期加上3.5个PLL时钟周期后生效。
当从分频模式转换到倍频模式后,CLKMD中的PLLSTATUS位读取为1.
下面为从除2模式向PLL×3模式装换的程序:
STM#010000101001111b,CLKMD:
PLL*3
在程序中,先设置PLLMUL位为2,PLLDIV为0,切换成倍频模式,设置可编程定时器PLLCOUNT,打开PLLON/OFF位,PLLNDIV位为1,状态位PLLSTATUS为1,进入倍频模式,乘数因子为PLLMUL+1,即为3.
四分频模式向分频模式的切换
在实际的应用中,有时候也需要从分频模式向分频模式的转换,以获得所需要的时钟,但在除以2和除以4之间是不能直接转换的。
为了在这两个模式之间转换,时钟产生器必须先设置成一个带有整数比率因子(不能是分数)的倍频模式,然后再设回到带有所需除法因子的DIV模式。
下面为从除以2模式向除以4模式转换的程序:
STM#010000101001111b,CLKMD:
PLL*3;先将除以2模式转换成PLL*3模式
STM#0b,CLKMD;转换成分频模式
TESTSTATUS:
LDMCLKMD,A
AND#01b,A;查询PLLSTATUS位
BCTESTSTATUS,ANEQ;判断A是否为0
STM#0011000101001010b,CLKMD;设置PLLMUL为
奇数,为1,设置PLLNDIV为1,PLLDIV为1,从而确定乘数因子为
1/4,达到4分频的要求,这时,PLLSTATUS状态位为0,PLLON/OFF
位被设置成0,从而关闭倍频。
第三章心得体会
短短一周的DSP课程设计已经结束,通过这一周的的课程设计,不仅使我学到了许多的东西,可以对我们以前所学的知识有所认识,同时还能是我们更进一步了解DSP中锁相环的配置问题,在电路中需要一个时钟而外部有无法提供时,我们可以通过设置DSP的外部管脚CLKMD1,CLKMD2,CLKMD3,从而达到器件所需要时钟频率;但是我们还可以通过软件设置PLL锁相环,从而达到我们所需的频率,在这次设计中,我主要是通过软件配置PLL,从而达到分频模式向分频模式的时钟切换、分频模式向倍频模式的时钟模式转换、倍频模式向倍频模式的时钟模式切换、倍频模式向分频模式的切换这四种程序的编写,在编写的过程中,遇到了许多的问题,特别是从分频模式向分频模式的切换时,但通过问老师和查资料,我一一解决了问题,并且还克服了看英文资料不习惯的的习惯,回顾一周的设计实践,我们弄清了DSP中时钟的设置产生与FPGA中都是通过对锁相环的操作从而达到较高的时钟频率。
在这过程中老师的帮助和同学的帮助使我突破了种种困难。
总之,通过这次的学习,使自己对本专业更有深一步的理解,同时锻炼自己的自学思考能力以及动手能力,为以后跨入社会积累学习经验,工作经验,以及提高了承受困难的能力。
大学是一个学生进入社会的最重要的一次学习的机会,是培养你思维能力和动手能力的场所。
而通过这次的课程设计,使我明白了光理论知识是不行的,必须理论联系实际,理论与实际相结合才能达到最后正确的结果。
第四章参考文献
1、TexasInstrumentsincorporateTMS320C54X系列DSP的CPU与外设北京空大学出版社2006.6
2、胡圣尧DSP原理与应用东南大学出版社2008.3
3、乔瑞平崔涛张芳娟TMS320C54XDSP原理与应用西安电子科技大学出版社2005.2
4、DSP原理及应用电子工业出版社邹彦主