实验三DSK初始化设置和编程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 北京交通大学 国家工科电工电子教学基地 DSP应用技术 * * 实验三 5402 DSK板的初始化设置和编程 一、实验目的 1.学习5402 DSK板的初始化设置和编程方法; 2.学习并掌握DSP片上外设— 时钟发生器的结构及编程方法; 3.学习并掌握5402 DSP片上外设— 等待状态发生器的结构及编程方法; 4.学习I/O端口的C语言编程方法。 主要内容: 5402 DSK板的初始化 时钟发生器的工作原理 时钟发生器的编程 等待状态发生器的工作原理 二、实验原理 1. 5402 DSK板的初始化 必要性:DSP系统在程序的开始都要对硬件进行初始化 内容包括: 关键寄存器(例如处理器工作模式寄存器PMST) CPU工作频率的设置 各个存储空间等待周期的设置 外部端口(例如DSK板上CPLD I/O控制寄存器)的设置 二、实验原理 DSK板的初始化基本流程 5402 DSP的内部有一个时钟发生器,其作用是为5402 DSP提供时钟,它包括内部振荡器和锁相环电路(PLL)两部分。 时钟发生器需要一个参考时钟输入,可以使用晶体与内部振荡器实现,或使用外部晶振提供时钟源。晶体跨接在X1和X2/CLKIN引脚的两端,外部晶振的输出连接到X2/CLKIN引脚(X1引脚悬空) 在SEED-VC5402 DSK板上,外部输入时钟为10MHZ。 2.时钟发生器及其设置 详见:TMS320C54x DSP Reference Set:CPU and Peripherals SPRU131G.pdf Crystal的取值最小10MHz,最大20MHz。 (在SEED-VC5402 DSK板上,外部输入时钟为10MHz。) 内部振荡器和外部晶体构成的振荡电路 时钟发生器有PLL和DIV两种工作方式,通过时钟模式(CLKMD)寄存器进行设置。通过对CLKMD寄存器的设置可以将外部输入的时钟CLKIN进行15、10、5、2、1倍频或2、4分频。 2.时钟发生器及其设置(续) CLKMD寄存器用来定义PLL时钟模块中的时钟配置,它的各位域如下所示 5402 DSK的CLKMD1、CLKMD2、CLKMD3引脚分别接0、0、1 电平,即复位后,CLKMD寄存器根据这3个引脚的状态设置为9007h,即PLLx10方式,CLKOUT的频率为10MHz x10=100MHz。 如果需要对主时钟进行重新设置,则需要对CLKMD寄存器进行编程。 2.时钟发生器及其设置(续) 2.时钟发生器及其设置(续) 时钟模式转换规则 当时钟发生器模式在PLL和DIV这两种工作方式之间进行转换时,需要遵循一定的顺序。 DIV方式转为PLL方式时:需要一定的锁定时间,锁定时间在PLLCOUNT域中进行设置,当PLLCOUNT定时器从设置值减到0时,在6个CLKIN周期加上3.5个PLL周期之后,PLL方式开始起作用,当转换到PLL模式完成之后,CLKMD寄存器中的PLLSTATUS状态为变为1。在PLL未锁定期间,时钟发生器继续工作在DIV方式。 时钟模式转换规则 PLL方式转为DIV方式时:不需要PLLCOUNT延迟时间,只需要很短的过渡时间。转换完成后,CLKMD寄存器中的PLLSTATUS状态位变为0。 ? 当从一种PLL方式转换为另一种PLL方式时:时钟发生器必须首先转换为DIV方式,然后再从DIV方式转换为PLL方式。 不能够在PLL方式之间直接进行转换。 子程序用来设置系统时钟 入口参数plldiv的取值为下列宏定义参数之一 #define PLL15 0x0e007 //15倍频 #define PLL10 0x9007 //10倍频 #define PLL5 0x4007 //5倍频 #define PLL2 0x1007 //2倍频 #define PLL1 0x0f007 //1倍频 #define DIV2 0x0000 //2分频 #define DIV4 0xf000 //4分频 PLLxx表示锁相倍频方式,DIVx表示分频方式 ?void set_clock(u16 plldiv) { if(CLKMD0x0001) //if clock generator is PLL mode {if((plldiv==DIV2)||(plldiv==DIV4))//PLLmode toDIV mode { CLKMD=plldiv; } else //PLL mode

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档