注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

深海精灵

水里的一滴油,透明地飘零在空气中。。。

 
 
 

日志

 
 
关于我

神秘诡谲,令人费解。可以很执着,也可以很破坏。冰冷,沉默。渴望单纯,渴望自由。躲在文字的背后,用心聆听世界,用直觉洞察世情。

网易考拉推荐

DSP时钟发生器及基础设置  

2011-07-01 16:12:26|  分类: DSP笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  TMS320C54x时钟发生器由内部振荡器和锁相环(PLL)两部分组成,时钟输入可以由两种方式提供:

  (1)晶体跨接X1和X2引脚两端。

  (2)外部时钟信号直接加到X2引脚,X1引脚空着不接。

  C540x内部的PLL兼有频率放大和信号提纯的功能,有硬件配置和软件编程两种形式的PLL。

  (1)硬件配置PLL:由CLKMD1、CLKMD2、CLKMD3的引脚设置。不用PLL时,CPU时钟频率等于外部时钟频率的一半。

  (2)软件可编程PLL:包括PLL方式和DIV(分频)方式两种。配置16位存储器映像时钟方式寄存器(CLKMD,地址58H)

  举例:

  外部晶振20M

  asm("  STM #0000h,CLKMD ");
  asm("  STM #40C7h,CLKMD ");   //设置CPU运行频率=100M
                 /*  40C7h:5*clkin  =100M
                     30c7h:4*clkin  =80M
                     20c7h:3*clkin  =60M
                     10C7h:2*clkin  =40M */


  asm("  STM #4240h, SWWSR ");     //等待状态发生器 I/O等待4,数据等待1,程序等待0
  asm("  STM #00a0h, PMST  ");   //IPTR = 001,MP/MC = 0(片内ROM), ovly=0  (片内RAM可映像到程序/数据空间)
  asm("  STM #0802h, BSCR  ");   //分区切换逻辑 分区大小64K,插入一个额外周期,接通总线保持器
  asm("  STM #0h,IMR ");      //中断屏蔽寄存器,关所有中断

 

  // 定时器设置
  asm("  STM #0010h,TCR  ");  //关定时器
  asm("  STM #0186ah,PRD  "); //1ms
  asm("  STM #0C2fh,TCR  ");  //定时器控制寄存器 TDDR=TCR的最后四位=0x0F
                // TSS=0,启动定时器工作
                // TRB=1,当TIM减到0后重新加载PRD
                // Soft=1,Free=1,定时器遇到断点后继续运行
  asm("  STM #0008h,IFR  ");  //清除尚未处理完的定时器中断
  asm("  ORM #0008h,*(IMR) "); //开时间中断
 
  asm("  RSBX  INTM ");      /*开中断*/

  C54x定时器是一个减1计数器。

  定时中断的周期=CLKOUT ×(TDDR+1)×(PRD+1)
         =1/100M × 16 ×(186A+1)
         =1.00016ms

  评论这张
 
阅读(459)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017