5509|9

1297

帖子

2

TA的资源

纯净的硅(中级)

楼主
 

【把玩LPC810 mini】gpio翻转速度测试 [复制链接]

在LPC810的UM中有这么一句,GPIO port registers are located on the ARM Cortex M0+ I/O port for fast access。言下之意就是gpio翻转速度很快咯。但是LPC810控制输出状态的寄存器很多,按官方说法,控制速度不一样哦。

同时对于LPC来讲,貌似有传统直接控制寄存器的传统。因此今天的测试就是比较库函数和各个寄存器的控制gpio的速度。分别是:
Chip_GPIO_SetPinToggle函数
LPC_GPIO_PORT->NOT寄存器
LPC_GPIO_PORT->SET寄存器
LPC_GPIO_PORT->CLR寄存器
其实库函数还是个inline函数,里面就是一句寄存器操作,照道理inline函数就相当于直接运行里面的寄存器操作语句啊,可是测试结果并不支持这个说法哦,不知道为啥,有没有大侠来解释一下。

系统时钟:10M,为了防止while的影响,一个循环翻转6次,具体测试数据如下:都是翻转一次的时间。直接使用函数:7us左右,直接操作寄存器:900ns,无论是NOT、SET还是CLR,3种操作方式都差不多。

结论:直接使用寄存器操作可以实现大概系统频率1/10的GPIO翻转速度,比我想象的要慢点。因为STC12系列的跑在12M也比这个要快啊。还是我哪里没有设好呢?

此帖出自NXP MCU论坛

最新回复

你可以仿真看下他跑一句话占用多少个指令,还有你要反转的话,你多写几条反转指令,因为while占用的时间会比较久,对你测试影响较大  详情 回复 发表于 2015-7-29 21:35
点赞 关注(2)
 

回复
举报

155

帖子

1

TA的资源

一粒金砂(中级)

沙发
 
有没有那你测试IO的示波器截图?
现在有STM32F401 Datasheet写的
– Up to 78 fast I/Os up to 42 MHz
之前通过IO输出系统时钟,发现输出上10Mhz,IO口上翻转的电平信号波形就跟正弦差不多了。
此帖出自NXP MCU论坛
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

板凳
 
测试极限速度的话,用库函数可行吗?
此帖出自NXP MCU论坛
 
个人签名

So TM what......?

 

 

回复

1297

帖子

2

TA的资源

纯净的硅(中级)

4
 
ljj3166 发表于 2015-7-14 14:16
测试极限速度的话,用库函数可行吗?

库函数和寄存器操作都用了。
LPC_GPIO_PORT->NOT[0]= 1<<2;
此帖出自NXP MCU论坛
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

5
 
不知你怎么测的。
此帖出自NXP MCU论坛
 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

6
 
本帖最后由 freebsder 于 2015-7-15 23:09 编辑

你看见那个fast access 是说的针对io口的指令。它是挂在cpu,所以可以单周期操作。前面只是执行可以按mcu频率,可执行和响应是两个概念。io响应,应该看数据手册给的理想数据做参考。
此帖出自NXP MCU论坛
 
 
 

回复

1297

帖子

2

TA的资源

纯净的硅(中级)

7
 
freebsder 发表于 2015-7-15 09:22
不知你怎么测的。

测试条件:LPCxpresso v7.6.2,自建工程,使用LPCopen,sysclock=10M,初始化就不贴了,while里面很简单,就是翻转6次。两种方法


使用库函数,翻转一次7us



使用寄存器操作,翻转一次900ns



顺便贴几张clkout的波形,30M以上没戏,10M以下还好。这个边沿上的振荡叫什么来着?


此帖出自NXP MCU论坛
 
 
 

回复

155

帖子

1

TA的资源

一粒金砂(中级)

8
 
翻转速度的测试是不是要向高频信号的阻抗匹配一样,做一些特殊的处理,如需要根据示波器输入通道特性做匹配什么的。不是道STM32上写的IO Up to 42MHZ是怎么测试的。
此帖出自NXP MCU论坛
 
 
 

回复

420

帖子

0

TA的资源

一粒金砂(高级)

9
 
inline只是对编译器的建议,具体有没有inline还是要反汇编一下看看。不想这样麻烦的话,自己直接操作下寄存器试试,并不难的
此帖出自NXP MCU论坛
 
 
 

回复

164

帖子

0

TA的资源

一粒金砂(中级)

10
 
你可以仿真看下他跑一句话占用多少个指令,还有你要反转的话,你多写几条反转指令,因为while占用的时间会比较久,对你测试影响较大
此帖出自NXP MCU论坛
 
个人签名专业电子方案/zigbee方案设计,毕业设计。QQ:1397905781
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表