TI中文支持网
TI专业的中文技术问题搜集分享网站

关于28335GPIO口翻转速率的问题

想用IO口输出时钟频率,想知道IO口最高翻转频率是多少,我使用定时器Timer0通过中断实现IO口的翻转,使用的是TOGGLE寄存器,为什么最高频率只能达到1.923MHz,请问影响这个频率的上限因素有哪些,还有如果通过中断实现输出时钟频率最高可以到多少MHz

以下是中断中的代码

interrupt void cpu_timer0_isr()
{
PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;
CpuTimer0Regs.TCR.bit.TIF=1;
CpuTimer0Regs.TCR.bit.TRB=1;
GpioDataRegs.GPBTOGGLE.bit.GPIO53 = 1;

}

笨鸟:

这样测试受限于定时器,不能这么干,你直接使用寄存器进行IO的翻转,放在while中,然后用逻辑分析仪或者示波器抓波形就好了。

想用IO口输出时钟频率,想知道IO口最高翻转频率是多少,我使用定时器Timer0通过中断实现IO口的翻转,使用的是TOGGLE寄存器,为什么最高频率只能达到1.923MHz,请问影响这个频率的上限因素有哪些,还有如果通过中断实现输出时钟频率最高可以到多少MHz

以下是中断中的代码

interrupt void cpu_timer0_isr()
{
PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;
CpuTimer0Regs.TCR.bit.TIF=1;
CpuTimer0Regs.TCR.bit.TRB=1;
GpioDataRegs.GPBTOGGLE.bit.GPIO53 = 1;

}

yq k:

回复 笨鸟:

你好 谢谢你的回复。

1、又重新测试了,使用while循环能达到10.7MHz,那么这就是它的最高速率吗?

2、因为板子上一个外设的CLKIN引脚接在了28335的GPIO53上,要给这个外设提供时钟的话除了使用IO口的翻转还有其他方法吗,需要尽可能高的时钟频率,比如25.5MHz。

想用IO口输出时钟频率,想知道IO口最高翻转频率是多少,我使用定时器Timer0通过中断实现IO口的翻转,使用的是TOGGLE寄存器,为什么最高频率只能达到1.923MHz,请问影响这个频率的上限因素有哪些,还有如果通过中断实现输出时钟频率最高可以到多少MHz

以下是中断中的代码

interrupt void cpu_timer0_isr()
{
PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;
CpuTimer0Regs.TCR.bit.TIF=1;
CpuTimer0Regs.TCR.bit.TRB=1;
GpioDataRegs.GPBTOGGLE.bit.GPIO53 = 1;

}

笨鸟:

回复 yq k:

1.还是可以速度更高的,因为STM32主频72M,IO翻转速度都可以达到12M的,根据手册上的说法,最大是25M。

2.针对你的情况,我觉得单独用专门的时钟芯片好点。手册上说,最大可以达到25M,但是IO翻转要想达到这个稳定输出是比较难得。或者你可以试试XCLKOUT这个引脚,可以输出一半或者四分之一SYSCLKOUT的。

想用IO口输出时钟频率,想知道IO口最高翻转频率是多少,我使用定时器Timer0通过中断实现IO口的翻转,使用的是TOGGLE寄存器,为什么最高频率只能达到1.923MHz,请问影响这个频率的上限因素有哪些,还有如果通过中断实现输出时钟频率最高可以到多少MHz

以下是中断中的代码

interrupt void cpu_timer0_isr()
{
PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;
CpuTimer0Regs.TCR.bit.TIF=1;
CpuTimer0Regs.TCR.bit.TRB=1;
GpioDataRegs.GPBTOGGLE.bit.GPIO53 = 1;

}

yq k:

回复 mangui zhang:

十分感谢你的解答。

嗯,就是这样很纠结,设计板子时外设的时钟引脚接在了28335的GPIO53上,该引脚复用了eQEP的索引端口,好像只能使用IO口翻转了。

赞(0)
未经允许不得转载:TI中文支持网 » 关于28335GPIO口翻转速率的问题
分享到: 更多 (0)