[Cortex-M0技术交流] LPC1225,GPIO输出速度问题

[复制链接]
2840|2
 楼主| pauljoe 发表于 2012-8-15 17:33 | 显示全部楼层 |阅读模式
内部时钟48MHz

用CT32B1的PWM方式可以输出12M的方波

然后

直接用GPIO方式,只能到3MHz

请问纯裸奔的话,GPIO输出能到多高速率,需要额外设置么?

感谢
john_lee 发表于 2012-8-15 18:59 | 显示全部楼层
最高可以到CPU时钟的 1/4。要保证每一条CPU指令都是写GPIO端口才能到达最高速率。
X-Hawk 发表于 2012-8-16 15:34 | 显示全部楼层
这个受代码的影响很大。 除了代码外,就是芯片厂家的IO、执行flash上的指令有没延迟了。
这里是新唐的哥系列数据,从中可以看出,IO翻转速度有CPU时钟频率的 1/4或1/7 两种,大部分是1/4.

楼主的NXP的结果,看起来差许多。当然无意黑NXP,原因是多样的。多写几条指令就会差距很大。
建议抓出汇编看比较保险。




Unconditional branch instruction on flash

; asm code
; 1 branch instruction
B label


write GPIO speed
; asm code
; 2 STR instruction
; r1 = 0x00000000
; r2 = 0xffffffff
; r0 = 0x50004000
STR r1, [r0,#8]
STR r2, [r0,#8]


M051AN
M051BN
NUC102
NUC122
NUC130CN
NUC140CN


If CPU <= 25M and
FATCON.LFOM = 1
3 cpu cycles


Otherwise,
4~5 cpu cycles


4 clocks


NUC100BN
NUC120BN



If CPR.HPE = 0
7 clocks
If CPR.HPE = 1
4 clocks


NUC100AN
NUC120AN


4~5 cpu cycles


7 clocks


Mini51


4 clocks

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

本版积分规则

0

主题

5

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部