加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
您当前的位置:首页 > 电子发烧 > 单片机学习

DSP 5402时钟与定时器中断FAQ

时间:2013-11-23  来源:123485.com  作者:9stone
时钟
 

VC5402的核电压为1。8V,从DATASHEET上了解到,外部时钟的电平不能超过1。8V,而一般的4脚有源晶振都是5V,请问高人有何解决办法?

1。一般四脚的卧室有源晶振在3。3V可以工作,还可以在输出脚串一100左右的电阻。
2.请用CMOS工艺的晶振(3。3V),市面上常见的晶振为TTL工艺(3。3V)和晶振厂家联系。

 

我的设计中有C51和5402,如何能公用一个晶振吗?

公用一块晶阵,频率选择以C51为准,5402利用片内PLL倍频到100MHZ。5402外设中有时钟生成器,通过设置时钟模式寄存器clkmd,可以将dsp时钟倍频到100MHz。

 

不太明白5402的clkout是输出怎样信号,由那些控制决定的?

5402的CLKOUT引脚输出的是DSP的机器时钟。X1和X2的外部输入时钟经过倍频后得到100M的机器时钟,并可以通过CLKOUT脚输出。

 

1) C3X userguide 上写TMS320C30-40 是"40MFLOPS,20MIPS,50 ns single-cycle
instruction execution time",40MFLOPS好理解,为什么是20MIPS,浮点和整数为什么有两倍的关系?为什么single-cycle instruction execution time是50 ns,
而不是25 ns? 1/40M应该是25ns 啊?

2) 请问C3X的速度最快可以到多快?(指国内市场上芯片支持)我好象看到最快的C3X用的是40M的晶振,还有更快的吗?

C3X的机器时钟为H1/H3,为输入外部时钟的一半。所以一条指令的时间为50ns。 一条浮点运算指令也是1个机器时钟,即50ns。C33有-150的,13ns一条指令。

 

一块晶振是不是带得动四块DSP,若不行,加一个缓冲电路如74F244行不行。

1.加一个74F244或245都可以,我曾经用一个晶振同时驱动过3个芯片,更多则有困难。不过加驱动是注意应该给晶振单独使用一个驱动器。不要和其他信号混用。
2.理论上讲就晶振的负载可以带动15个IC.我刚查的.
3.加一个act244应该可以
4.为保险起见,用专用的时钟驱动器,IDT有,好象是805和806。

 

1. 如果dsp的但周期指令时间是50ns,那么dsp的外部时钟晶振是否应该是根据单周期指令时间来计算,应该是 20MHz

2.dsp的外部时钟电路一般怎么接,c32只有一个CLKIN脚。

3.c32提供了两个外部时钟H1和H2,他们的输出频率是CLKIN的一半。

如果外部一些器件需要时钟源,是否应该接dsp的H1和H2,如果H1和H2的频率不符合外部器件,那么外部器件是否应该再单独接另外的时钟源

1。DSP器件上标著的时钟频率与机器周期频率或指令周期频率不一定一样。你需要具体查阅器件手册。例如‘C32 -40,虽然需要输入40MHZ时钟,但C32内部使用的是H1或H3,为CLKIN的一半,这时C32的指令周期只有50ns。又如 C542-40,表示542的指令周期为25ns,由于542片内有PLL电路,外部输入可以不是40MHZ,可以为10MHZ。

2。一般TI DSP时钟输入脚有CLKIN和X1,X2两种。若使用CLKIN,必须在外部产生时钟信号,通常使用有源的卧式晶阵。若使用X1和X2,可以使用两个脚的晶体。

3。 一般DSP都将内部使用的机器周期频率输出的外部,如C32的H1,H2脚,你可以使用他们作为时钟源。

 

定时器中断
 

请问:如果用'5402的定时器进行定时,如何计算延时时间。

设置PRD寄存器和TCR中的TDDR(bit3-bit0)共20个bit对5402的10ns的机器时钟计数。

 

如何设置定时器?

简单地讲,定时器实际上可以有20个比特的周期寄存器。它对CLKOUT信号计数,先将PSC(TCR中的D6- D9位)减1,直到PSC为0,然后用TDDR(TCR中的低4位)重新装入PSC,同时将TIM减1,直到TIM减为0。这时CPU发出TINT中断,同时在TOUT引脚输出一个脉冲信号,脉冲宽度为CLKOUT一致。然后用PRD重新装入TIM,重复下去直到系统或定时器复位。计算公式:

TINT的频率=1/(tc*(TDDR+1)*(PRD+1)), tc为CLKOUT的周期。

定时器初始化步骤:

1.对TCR的TSS位写一以停止定时器。
2.装载PRD。
3.初始化TCR中的TDDR,并对TCR中的TSS置0,启动定时器。

设置定时器中断:(INTM=1)

1.对IFR中的TINT写1以清除待决的定时器中断。
2.对IMR中的TINT置1,使能定时器中断。
3.使能全部中断,INTM置0.

在RESET后,TIM和PRD被设置为最大值(FFFFh)。TCR中的TDDR置0。定时器启动。

 

F240中中断向量表中只有一个中断向量是定时器中断,但并没有指明是哪个定时器的中断。。。 如何使用?

1.进入定时器中断后,读一个寄存器来判断是哪个定时器。我记不清是哪个寄存器了。

2.There are 12 interrupt flags in EVIFRA and EVIFRB for the three GP timers,EVIFRC is another one. You can find what you needed in those two Registers. But what I know is just as these, Timer interrupts of Group A generate interrupt requests to the core on INT2, Group B and C generate interrupt requests to the core on INT3 and 4. You can mask them by using mask registers, EVIMRA,EVIMRB and EVIMRC. Good Luck


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->单片机学习
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门