打印
[ZLG-ARM]

LPC2366 SPI(SSP0)速度低问题

[复制链接]
1946|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mrbbsp|  楼主 | 2011-8-26 11:21 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
spi, LPC, tmp, TE, AD
用LPC2366的SSP0连接一个SPI fash(SST25VF032B),能读写到,发现速度不理想,看SCLK波形,如下:


发一串用了2.5us但是等待bus空闲发了3.5us;觉得这3.5us太浪费了
请问怎么缩短等待的时间呢,多谢

我的代码:

/************************************************************
函数功能: SPI操作 读一个字节数据
入口参数:
出口参数:返回读到的字节
返回说明:
其    他: 对于SPI读和写是同时进行的 全双工
************************************************************/
U8 ReadSpi2(U8 dat)
{
    U8 temp;
    SSP0DR = 0x55;
while ( !(SSP0SR & SSPSR_RNE) );
//while ( (SSP0SR & SSPSR_BSY) );
temp = SSP0DR;
    return  temp;
}


/************************************************************
函数功能: 连续读取指定长度的字节数
入口参数:
出口参数:
返回说明:
其    他:
************************************************************/
void ReadByteLen(U32 addr,U8 *readbuf,U16 len)
{
    U8 tmp;
    U16 tmp1;
U8 i;
volatile U8 dummy;
   
    //SST25_CS = 0;
    SSTT25_CS_L();
    WriteSpi2(0x0b);
                       
    tmp = (U8)(addr >> 16);         //写地址
    WriteSpi2(tmp);
    tmp = (U8)(addr >> 8);     
    WriteSpi2(tmp);
    tmp = (U8)addr;     
    WriteSpi2(tmp);   
    WriteSpi2(tmp);     //dummy addr   
for(tmp=0; tmp <8; tmp++)
{
  dummy =  SSP0DR;   //clear the RxFIFO
}
    for (tmp1 = 0; tmp1 < len; tmp1++)   //读数据
    {
        *readbuf =  ReadSpi2(0x55);
        readbuf++;
    }
    //SST25_CS = 1;
SSTT25_CS_H();
}

相关帖子

沙发
yoyowodeai| | 2011-8-29 19:12 | 只看该作者
你的SPI波特率多少了?

使用特权

评论回复
板凳
shuaibaobao| | 2011-11-24 13:06 | 只看该作者
tmp = (U8)addr 这儿看不懂。

使用特权

评论回复
地板
lzyyoumuren| | 2014-11-20 09:42 | 只看该作者
楼主:速度最后快了吗?

使用特权

评论回复
5
lzyyoumuren| | 2014-11-20 09:43 | 只看该作者
我现在用1768一个spi接液晶屏,用一个ssp口接外部flash不知道这个方案可行吗?

使用特权

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

本版积分规则

12

主题

39

帖子

1

粉丝