打印

单片机如何测试IO口的极限翻转速度

[复制链接]
5698|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lijiankun|  楼主 | 2015-3-19 14:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  最近在玩新唐的M451开发板,遇到要测试IO管脚的最大翻转速度,经过一番研究终于测出来了,在这里做一个总结,希望对遇到同样问题的朋友,有所帮助。
新唐的MCU,IO口的翻转速度理论上的最大值是50MHz,但是理论与现实往往是有差距的,因此想要知道一款单片机IO口的真正翻转速度,就需要自己去真实的测试。
测试方法:在程序中配置一个IO口为推挽输出模式,写一个while(1){}  循环,循环里面不停的将IO口拉低,拉高,拉低,拉高......然后用示波器去测试这个管脚的波形,从示波器上读出那个最高的频率是多少。
注意事项: 1.对于IO口的输出波形,正常情况下应该是方波。
            2.写测试程序时,也尽可能的简单,不要有其他的干扰,只需要配置系统时钟,定义IO口,然后就是while循环了。
            3.在IO口翻转速率较低的时候,观察波形,是正常的方波,随着翻转速度的不断加大,波形有可能会失真,而不再是一个方波了。在波形有失真时去观察这时候的频率的最大值,一般就是IO口的最大翻转速率。
            4.在while循环中的拉低,拉高尽量写的多点,这样就更接近真实值。因为对循环条件的判断上也是要占用时间的
          下面是具体的代码,代码基于新唐M451开发板
int main(void)
{

    SYS_Init();
    GPIO_SetMode(PC, BIT5, GPIO_MODE_OUTPUT);

    while(1)
    {
       
      PC5 = 0;
      PC5 = 1;
                       
      PC5 = 0;
      PC5 = 1;
                          
     PC5 = 0;
     PC5 = 1;
                          
     PC5 = 0;
     PC5 = 1;
                          
    PC5 = 0;
    PC5 = 1;
                               
    PC5 = 0;
    PC5 = 1;

    PC5 = 0;
    PC5 = 1;
                       
   PC5 = 0;
   PC5 = 1;
                          
   PC5 = 0;
   PC5 = 1;
                          
  PC5 = 0;
  PC5 = 1;
                          
  PC5 = 0;
  PC5 = 1;
                               
  PC5 = 0;
  PC5 = 1;
                                 
PC5 = 0;
PC5 = 1;
                       
PC5 = 0;
PC5 = 1;
......
      }
}
         

相关帖子

沙发
chunyang| | 2015-3-19 16:55 | 只看该作者
真要知道极限,先使用最高频的本振,一般应该还能超频至少20%。然后用汇编编程,用“复制”、“粘贴”法,将整个存储器容量都填充成置1、置0的直接端口操作,最后一条直接跳转到起始地址即可。这才是极限。

使用特权

评论回复
评论
tianm 2015-3-20 11:44 回复TA
也不用循环 够示波器捕捉就够了 
板凳
gx_huang| | 2015-3-19 17:11 | 只看该作者
闲人做闲事!
这个需要测试吗?其实可以准确计算的。

使用特权

评论回复
地板
songchenping| | 2015-3-19 18:29 | 只看该作者
有必要吗?理论值只是作为一个参考。个人爱好可以研究。

使用特权

评论回复
5
zhangmangui| | 2015-3-19 22:29 | 只看该作者
恩  配置好频率  主函数中进行IO的高低切换   然后用示波器测输出引脚的频率  看看能到多少  
这应该就是他的最大输出频率

使用特权

评论回复
6
lijiankun|  楼主 | 2015-3-20 08:37 | 只看该作者
chunyang 发表于 2015-3-19 16:55
真要知道极限,先使用最高频的本振,一般应该还能超频至少20%。然后用汇编编程,用“复制”、“粘贴”法, ...

恩恩,谢谢你的指点

使用特权

评论回复
7
lijiankun|  楼主 | 2015-3-20 08:40 | 只看该作者
songchenping 发表于 2015-3-19 18:29
有必要吗?理论值只是作为一个参考。个人爱好可以研究。

有必要呀,要最大限度的用好一款单片机,就要了解它自身性能极限的真实值,您也说了,理论值只是个参考,所以需要自己测

使用特权

评论回复
8
songchenping| | 2015-3-20 08:43 | 只看该作者
lijiankun 发表于 2015-3-20 08:40
有必要呀,要最大限度的用好一款单片机,就要了解它自身性能极限的真实值,您也说了,理论值只是个参考, ...

芯片厂商的测试环境,出于成本考虑普通人也搭建不了啊!所以也不一定能测到人家提供的值出来。

使用特权

评论回复
9
lijiankun|  楼主 | 2015-3-20 09:43 | 只看该作者
songchenping 发表于 2015-3-20 08:43
芯片厂商的测试环境,出于成本考虑普通人也搭建不了啊!所以也不一定能测到人家提供的值出来。 ...

恩恩,基本是达不到的,就是测一下,自己用的话,能用到个什么地步,最大的发挥一款单片机的性能

使用特权

评论回复
10
icecut| | 2015-3-20 10:12 | 只看该作者
参考st的测试过程.我发过帖子.有图有真相

使用特权

评论回复
11
lijiankun|  楼主 | 2015-3-20 11:41 | 只看该作者
icecut 发表于 2015-3-20 10:12
参考st的测试过程.我发过帖子.有图有真相

好的,我去学习学习,谢谢了

使用特权

评论回复
12
autopccopy| | 2015-3-20 12:11 | 只看该作者
1L说得对,应该使用汇编。

使用特权

评论回复
13
mmuuss586| | 2015-3-20 20:13 | 只看该作者

那就测试出来后,达到多少呢?
系统的时钟一半左右吗?
如果差太多了,就有点不对哦;

使用特权

评论回复
14
lijiankun|  楼主 | 2015-3-21 19:11 | 只看该作者
mmuuss586 发表于 2015-3-20 20:13
那就测试出来后,达到多少呢?
系统的时钟一半左右吗?
如果差太多了,就有点不对哦; ...

这个翻转速度一般都是系统时钟的一半吗?我系统时钟用的是72M,测出来的最大翻转速度是36MHz,这不是巧合吧

使用特权

评论回复
15
mmuuss586| | 2015-3-21 21:38 | 只看该作者
lijiankun 发表于 2015-3-21 19:11
这个翻转速度一般都是系统时钟的一半吗?我系统时钟用的是72M,测出来的最大翻转速度是36MHz,这不是巧合 ...

那就最快了;
不是巧合;

使用特权

评论回复
16
lijiankun|  楼主 | 2015-3-21 23:13 | 只看该作者
mmuuss586 发表于 2015-3-21 21:38
那就最快了;
不是巧合;

恩恩,我明白了,谢谢您的指点

使用特权

评论回复
17
mmuuss586| | 2015-3-22 08:49 | 只看该作者
lijiankun 发表于 2015-3-21 23:13
恩恩,我明白了,谢谢您的指点

:loveliness:
我也经常测试;

使用特权

评论回复
18
lijiankun|  楼主 | 2015-3-22 22:43 | 只看该作者

  再请教您一个问题,那测超频,是不是就是将晶振源倍频后的PLL时钟作为系统时钟,然后不断的加大倍数,看单片机的系统时钟最大能到多少,还保证单片机在正常工作。 测超频,是不是这样干的呀?

使用特权

评论回复
19
mmuuss586| | 2015-3-23 08:18 | 只看该作者
lijiankun 发表于 2015-3-22 22:43
再请教您一个问题,那测超频,是不是就是将晶振源倍频后的PLL时钟作为系统时钟,然后不断的加大倍数, ...

是的,不过有没有超频成功,你还要自己测试下;

使用特权

评论回复
20
lijiankun|  楼主 | 2015-3-23 09:33 | 只看该作者
mmuuss586 发表于 2015-3-23 08:18
是的,不过有没有超频成功,你还要自己测试下;

恩恩,谢谢您了,我是用串口程序测试的,当系统时钟,增加到141M的时候,串口输出变成乱码了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

94

帖子

3

粉丝