打印
[ZLG-ARM]

LPC2131的IO不至于这么慢吧

[复制链接]
1698|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tubie|  楼主 | 2008-3-2 20:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
外接的晶振是11M,PLLCFG=0x24,应该是55M的CPU频率。

测试了一下IO,就是发一个方波,结果发现把一根IO线变低再变高花了将近600ns,这是怎么回事?虽然不是/01型号的快速引脚,那也不能这么慢啊,是不是我哪里没有搞对?

代码如下:

while(1)
{
    IO1CLR |= 0x00040000;    //lit LED1
    IO1SET |= 0x00040000;    //clear LED1
}

相关帖子

沙发
MicroMMU| | 2008-3-2 22:29 | 只看该作者

改成这样可能快些

while(1)
{
    IO1CLR = 0x00040000;    //lit LED1
    IO1SET = 0x00040000;    //clear LED1
}

使用特权

评论回复
板凳
hotpower| | 2008-3-2 23:59 | 只看该作者

IO1CLR/IO1SET就不应该|=,&~=

使用特权

评论回复
地板
zlgarm| | 2008-3-3 12:37 | 只看该作者

lpc2131

tubie 您好:

   LPC213x系列ARM的I/O口最快也就3MHz左右,现在已经到极限了。您可以到数据手册中查看其详细说明。
                                           on duty:zlgarm_zhanghuping

使用特权

评论回复
5
tubie|  楼主 | 2008-3-3 12:39 | 只看该作者

为啥呀?

嗯,是不是直接赋值就可以啊,反正其它各位设置0值也没有影响。

但是我还是觉得速度不够快,就这么简单的指令还要300ns,我的AVR的单片机都比这个快啊,是不是有其它的地方没有考虑到?

使用特权

评论回复
6
tubie|  楼主 | 2008-3-3 12:47 | 只看该作者

To zlgarm_zhanghuping:

如果是3M的频率,周期是300ns,那信号变换一次需要的时间应该是在150ns左右啊,否则一个负脉冲的脉宽就是300ns,就无法实现3M的频率了。

我看了一下NXP的手册,里面给了一个对比的例子,其中的IO变化的时间应该是小于150ns的,是不是因为我用的是C语言,而不是汇编(需要几条指令才能实现“IO1CLR = 0x00040000;”这样的语句),所以用的时间多了一倍?

使用特权

评论回复
7
tubie|  楼主 | 2008-3-3 12:50 | 只看该作者

想在Keil的C语言里加入汇编,但是不知道该怎么用

看到网上说是 #pragma asm 和#pragma endasm来说明是汇编语言,但是试了一下,keil似乎不认#pragma asm这个编译选项。

使用特权

评论回复
8
dld2| | 2008-3-3 13:04 | 只看该作者

编译器和链接器的手册

使用特权

评论回复
9
tubie|  楼主 | 2008-3-11 22:16 | 只看该作者

试了一下用汇编,还是没有达到手册上的速度

速度比手册里的例子大概慢一半,不知道怎么回事。代码如下,在循环中实现脉冲串,但是发现脉冲从低变高的时间是300ns左右,手册上最快的却是150ns左右。

__asm
    {
        mov r3, 0xE002801C//    IO1CLR
        mov R4, 0xE0028014//    IO1SET
        mov R5, 0x00040000
    }
    while(1)
    {
              __asm
              {
                  STR R5,[R3]  //Low level
                  STR R5,[R4]  //High level
              }

    }

使用特权

评论回复
10
tubie|  楼主 | 2008-3-11 23:52 | 只看该作者

嗯,知道问题在哪里了。

有个寄存器叫APBDIV,控制APB总线设备的速度,这个寄存器的默认值(0)会导致APB总线的频率为系统频率的1/4,所以速度很慢。我改了一下寄存器,让其值为1,结果就和手册中的例子的结果一样了。

使用特权

评论回复
11
mms| | 2009-6-30 22:21 | 只看该作者

我也有同样的问题

非常感谢

使用特权

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

本版积分规则

135

主题

428

帖子

0

粉丝