51IO翻转速率最大能到多少?
如果超出了范围会出现什么现象?我的实验是IO处在高电平。请大侠指教指教 如何超出? stc 1T 系列,22.1184M晶振,全速翻转,C语言,试过,大约1.2MHz xinfa190 发表于 2013-1-17 20:46 static/image/common/back.gifstc 1T 系列,22.1184M晶振,全速翻转,C语言,试过,大约1.2MHz
这个,这个,和理论计算相差非常巨大啊……
这个程序,估计是使用指令翻转最快的了(不考虑时钟输出和PCA):CY=1;
P1_0 = 0; // CLR P1.0,4个时钟周期
P1_0 = CY; // MOV P1.0, C,3个时钟周期
P1_0 = 0;
P1_1 = CY;
...计算得到22.1184M晶振时翻转速率为22.1184/(4+3) = 3.16MHz,差别巨大啊
PCA高速脉冲输出模式中,f =Fosc / (4 * CCAPnL_Value )
则fmax = 22.1184 / 4 = 5.5296MHz
T0、T1的时钟输出模式中:按1T模式,输出频率 = SysClk / (256 - TH0) / 2
fmax = 22.1184 / 1 / 2 = 11.0592MHz
BTW:以上结果均未经过实际验证,仅仅是理论计算,因为我不用STC。不知道实际和理论之间到底有多少差距。 试过40Mhz然后2分频输出。。20Mhz,波形已经失真,输出的低电平达不到0V,在1v那样。 手册上给出的IO最大翻转速度为15Mhz,四分频后输出10Mhz,波形还算ok,但是也不是矩形波了,上升沿和下降沿有点圆滑了。而且带负责能力差,用示波器1:10测的。1:1的时候波形就变成正弦波了。 takashiki 发表于 2013-1-17 21:28 static/image/common/back.gif
这个,这个,和理论计算相差非常巨大啊……
这个程序,估计是使用指令翻转最快的了(不考虑时钟输出和PC ...
不知道你的代码是不是最快的,我是这么写的
sbitclk=P1^0;
main()
{
while(1)
{
clk=~clk;
}
}
直接翻转IO就不要想了,stm32系列ARM,72MHz主频,类似上面的代码,不到2.5MHZ xinfa190 发表于 2013-1-18 10:03 static/image/common/back.gif
不知道你的代码是不是最快的,我是这么写的
sbitclk=P1^0;
main()
嗯,我知道了,你这个的确不是最快的,看来STC官方手册还是没错的。
因为clk=~clk;并不是占用时间最短的指令(4个周期,clk=~clk, clk=1, clk=0都是4个周期,但是clk=CY只要三个周期),while在这里占用了大量的时间,因为需要进行跳转。
测试最大IO速度时一定不能打断程序固有的流程,否则就人为的降低了速度。
72M的STM32是可以达到18MHz的,我测试过,不管是直接对ODR赋值,还是对BSRR赋值,还是通过位带方式,都是18MHz。 不妨试试:
P1 ^= 0x01; CPL BIT
有没试过
填满ROM,不用循环 Louis_Bright 发表于 2013-1-18 10:40 static/image/common/back.gif
不妨试试:
P1 ^= 0x01;
这条指令2个字节,在stc10,11,12上是4个时钟周期。
最短的是
while:
CPL P1^0 ;2B4T
SJMP while ;2B3T
一共7个时钟周期。35Mhz晶振的时候 IO翻转就有5M,最高也是5M了。
wx85105157 发表于 2013-1-18 11:37 static/image/common/back.gif
这条指令2个字节,在stc10,11,12上是4个时钟周期。
算法有误哦。翻过去了还要翻回来才能算作一个周期,因此你的方案是35/7/2=2.5MHz,而我的方案在25M时钟下则是真实的5MHz。SETB C
CLR P1.0 ;翻了一次了,2字节,4周期
MOV P1.0, C ;再翻一次,2字节,3周期
CLR P1.0
MOV P1.0, C
... takashiki 发表于 2013-1-18 13:19 static/image/common/back.gif
算法有误哦。翻过去了还要翻回来才能算作一个周期,因此你的方案是35/7/2=2.5MHz,而我的方案在25M时钟下 ...
哈哈,我是忘记了,不过你也说错了,应该是在35M的时钟下。
而且你这个没跳转。。
如果只是要输出1~5个脉冲的话,用串口的方式0同步移位输出,选用syckl/2,在35M的情况下,能做到8.75Mhz的翻转。 试过,STC的I/0翻转最快是13.5MHZ
页:
[1]