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 | |
|
|
|
|