4820|9

9

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

28335的IO口想要输出时钟信号问题 [复制链接]

1芯积分
由于clkout没接,想用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;


}

最新回复

你最好还是根据相关寄存器,计算理论最大频率。粗略估计,不见得达到25.5MHz。 即使达到了。主循环会被频繁打断。其他中断的执行也容易受影响。你可以把别的中断,尽量都关掉。主循环代码简化一下。看看是否有改善。除了这个中断,还需要执行其他内容。简化的程度是有限的。这些都不是真正的解决办法。根据需求,就应该用XCLKOUT。 你非常勉强的用io输出一个频率。代码到后面会非常难改。还是从根本上解决。根据芯片封装,能不能先飞线进行调试。尽快进行硬件改版的工作。  详情 回复 发表于 2017-11-24 09:09
 
点赞 关注
个人签名“保尔,你被捕了”。
“不好意思,保尔住隔壁”。

回复
举报

3471

帖子

13

TA的资源

五彩晶圆(高级)

沙发
 
不太熟悉这个型号。你看一下,定时器工作的时钟频率是多少。是否已达到当前最高速。相关寄存器每个位的含义认真看一下。根据当前配置。你可以计算出中断的频率。得到理论最大值。和实际比对一下。先分析明白计算过程。得到理论极限。另外,你看看能不能通过配置模式之类的。让他不中断就能持续输出。这要看芯片本身是否支持了。1.923MHz,离io本身的最大翻转频率,应该还有一定差距。
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你好,感谢你的回复。定时器的工作频率为150MHz即CPU时钟频率,通过While循环使其不间断翻转,最高达到了10.7MHz的频率,关于1.923MHz这个频率,猜想是因为跳转中断和中断中执行了4个语句。还有一些疑惑:
1、因为板子上一个外设的CLKIN引脚接在了28335的GPIO53上,需要尽可能高的时钟频率,比如25.5MHz,要给这个外设提供时钟的话除了使用IO口的翻转还有其他方法吗?
2、如果没有的话,那么如果通过定时器中断使该外设使用1.923MHz这个频率(即通过Timer0定时器中断能够获得的最大频率),会影响其他函数的执行吗?
期待你的回复。
 
个人签名“保尔,你被捕了”。
“不好意思,保尔住隔壁”。
 
 

回复

435

帖子

1

TA的资源

一粒金砂(高级)

4
 
IO 翻转的频率问题,之前也遇到相似的情况
可以看看这个帖子:
http://bbs.21ic.com/icview-877734-1-1.html
 
个人签名君应有语,渺万里层云,千山暮雪,知向谁边?
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

5
 
我的学号 发表于 2017-11-22 17:27
IO 翻转的频率问题,之前也遇到相似的情况
可以看看这个帖子:
http://bbs.21ic.com/icview-877734-1-1.h ...

嗯这个帖子,我刚看过,谢谢。
 
个人签名“保尔,你被捕了”。
“不好意思,保尔住隔壁”。
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

6
 
ienglgge 发表于 2017-11-22 12:44
不太熟悉这个型号。你看一下,定时器工作的时钟频率是多少。是否已达到当前最高速。相关寄存器每个位的含义 ...

你好,感谢你的回复。定时器的工作频率为150MHz即CPU时钟频率,通过While循环使其不间断翻转,最高达到了10.7MHz的频率,关于1.923MHz这个频率,猜想是因为跳转中断和中断中执行了4个语句其中还有2条多余命令。还有一些疑惑:
1、因为板子上一个外设的CLKIN引脚接在了28335的GPIO53上,需要尽可能高的时钟频率,比如25.5MHz,要给这个外设提供时钟的话除了使用IO口的翻转还有其他方法吗?
2、如果没有的话,那么比如通过定时器中断使该外设使用1.923MHz这个频率(即通过Timer0定时器中断能够获得的最大频率),会影响其他函数的执行吗?
期待你的回复。

点评

你看看芯片是不是有一个XCLKOUT引脚。这个脚可以输出时钟信号。具体配置方法,去看寄存器的说明就行了。 定时器中断频率过高的话,容易对其他函数时序产生影响。最好用XCLKOUT去做。看看输出频率能否满足需求。  详情 回复 发表于 2017-11-23 12:40
 
个人签名“保尔,你被捕了”。
“不好意思,保尔住隔壁”。
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

7
 
kyq___ 发表于 2017-11-22 20:05
你好,感谢你的回复。定时器的工作频率为150MHz即CPU时钟频率,通过While循环使其不间断翻转,最高达到了 ...

你看看芯片是不是有一个XCLKOUT引脚。这个脚可以输出时钟信号。具体配置方法,去看寄存器的说明就行了。
定时器中断频率过高的话,容易对其他函数时序产生影响。最好用XCLKOUT去做。看看输出频率能否满足需求。
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

8
 
ienglgge 发表于 2017-11-23 12:40
你看看芯片是不是有一个XCLKOUT引脚。这个脚可以输出时钟信号。具体配置方法,去看寄存器的说明就行了。
...

感谢你的答复。
只是XCLKOUT这个引脚并没有连接到外设上,设计板子的出了错误。
关于定时器中断频率过高,调试的时候出现了使用step over调试到某一条指令就出现不能再点击Step over的情况(即运行到某一步,就一直运行不能在执行单步调试了)请问会不会是中断频率过高的原因?

点评

你最好还是根据相关寄存器,计算理论最大频率。粗略估计,不见得达到25.5MHz。 即使达到了。主循环会被频繁打断。其他中断的执行也容易受影响。你可以把别的中断,尽量都关掉。主循环代码简化一下。看看是否有改善  详情 回复 发表于 2017-11-24 09:09
 
个人签名“保尔,你被捕了”。
“不好意思,保尔住隔壁”。
 
 

回复

3471

帖子

13

TA的资源

五彩晶圆(高级)

9
 
kyq___ 发表于 2017-11-23 19:38
感谢你的答复。
只是XCLKOUT这个引脚并没有连接到外设上,设计板子的出了错误。
关于定时器中断频率过 ...

你最好还是根据相关寄存器,计算理论最大频率。粗略估计,不见得达到25.5MHz。
即使达到了。主循环会被频繁打断。其他中断的执行也容易受影响。你可以把别的中断,尽量都关掉。主循环代码简化一下。看看是否有改善。除了这个中断,还需要执行其他内容。简化的程度是有限的。这些都不是真正的解决办法。根据需求,就应该用XCLKOUT。 你非常勉强的用io输出一个频率。代码到后面会非常难改。还是从根本上解决。根据芯片封装,能不能先飞线进行调试。尽快进行硬件改版的工作。
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

10
 
ienglgge 发表于 2017-11-24 09:09
你最好还是根据相关寄存器,计算理论最大频率。粗略估计,不见得达到25.5MHz。
即使达到了。主循环会被 ...

嗯,谢谢。确实是硬件设计时的错误限制了程序执行。
 
个人签名“保尔,你被捕了”。
“不好意思,保尔住隔壁”。
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表